Home | History | Annotate | Download | only in include
      1 /*** Autogenerated by WIDL 1.6 from include/strmif.idl - Do not edit ***/
      2 
      3 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      4 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      5 #endif
      6 
      7 #include <rpc.h>
      8 #include <rpcndr.h>
      9 
     10 #ifndef COM_NO_WINDOWS_H
     11 #include <windows.h>
     12 #include <ole2.h>
     13 #endif
     14 
     15 #ifndef __strmif_h__
     16 #define __strmif_h__
     17 
     18 /* Forward declarations */
     19 
     20 #ifndef __ICreateDevEnum_FWD_DEFINED__
     21 #define __ICreateDevEnum_FWD_DEFINED__
     22 typedef interface ICreateDevEnum ICreateDevEnum;
     23 #endif
     24 
     25 #ifndef __IPin_FWD_DEFINED__
     26 #define __IPin_FWD_DEFINED__
     27 typedef interface IPin IPin;
     28 #endif
     29 
     30 #ifndef __IEnumPins_FWD_DEFINED__
     31 #define __IEnumPins_FWD_DEFINED__
     32 typedef interface IEnumPins IEnumPins;
     33 #endif
     34 
     35 #ifndef __IEnumMediaTypes_FWD_DEFINED__
     36 #define __IEnumMediaTypes_FWD_DEFINED__
     37 typedef interface IEnumMediaTypes IEnumMediaTypes;
     38 #endif
     39 
     40 #ifndef __IFilterGraph_FWD_DEFINED__
     41 #define __IFilterGraph_FWD_DEFINED__
     42 typedef interface IFilterGraph IFilterGraph;
     43 #endif
     44 
     45 #ifndef __IEnumFilters_FWD_DEFINED__
     46 #define __IEnumFilters_FWD_DEFINED__
     47 typedef interface IEnumFilters IEnumFilters;
     48 #endif
     49 
     50 #ifndef __IMediaFilter_FWD_DEFINED__
     51 #define __IMediaFilter_FWD_DEFINED__
     52 typedef interface IMediaFilter IMediaFilter;
     53 #endif
     54 
     55 #ifndef __IBaseFilter_FWD_DEFINED__
     56 #define __IBaseFilter_FWD_DEFINED__
     57 typedef interface IBaseFilter IBaseFilter;
     58 #endif
     59 
     60 #ifndef __IReferenceClock_FWD_DEFINED__
     61 #define __IReferenceClock_FWD_DEFINED__
     62 typedef interface IReferenceClock IReferenceClock;
     63 #endif
     64 
     65 #ifndef __IReferenceClockTimerControl_FWD_DEFINED__
     66 #define __IReferenceClockTimerControl_FWD_DEFINED__
     67 typedef interface IReferenceClockTimerControl IReferenceClockTimerControl;
     68 #endif
     69 
     70 #ifndef __IReferenceClock2_FWD_DEFINED__
     71 #define __IReferenceClock2_FWD_DEFINED__
     72 typedef interface IReferenceClock2 IReferenceClock2;
     73 #endif
     74 
     75 #ifndef __IMediaSample_FWD_DEFINED__
     76 #define __IMediaSample_FWD_DEFINED__
     77 typedef interface IMediaSample IMediaSample;
     78 #endif
     79 
     80 #ifndef __IMediaSample2_FWD_DEFINED__
     81 #define __IMediaSample2_FWD_DEFINED__
     82 typedef interface IMediaSample2 IMediaSample2;
     83 #endif
     84 
     85 #ifndef __IMediaSample2Config_FWD_DEFINED__
     86 #define __IMediaSample2Config_FWD_DEFINED__
     87 typedef interface IMediaSample2Config IMediaSample2Config;
     88 #endif
     89 
     90 #ifndef __IMemAllocator_FWD_DEFINED__
     91 #define __IMemAllocator_FWD_DEFINED__
     92 typedef interface IMemAllocator IMemAllocator;
     93 #endif
     94 
     95 #ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__
     96 #define __IMemAllocatorCallbackTemp_FWD_DEFINED__
     97 typedef interface IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp;
     98 #endif
     99 
    100 #ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
    101 #define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
    102 typedef interface IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp;
    103 #endif
    104 
    105 #ifndef __IMemInputPin_FWD_DEFINED__
    106 #define __IMemInputPin_FWD_DEFINED__
    107 typedef interface IMemInputPin IMemInputPin;
    108 #endif
    109 
    110 #ifndef __IAMovieSetup_FWD_DEFINED__
    111 #define __IAMovieSetup_FWD_DEFINED__
    112 typedef interface IAMovieSetup IAMovieSetup;
    113 #endif
    114 
    115 #ifndef __IMediaSeeking_FWD_DEFINED__
    116 #define __IMediaSeeking_FWD_DEFINED__
    117 typedef interface IMediaSeeking IMediaSeeking;
    118 #endif
    119 
    120 #ifndef __IEnumRegFilters_FWD_DEFINED__
    121 #define __IEnumRegFilters_FWD_DEFINED__
    122 typedef interface IEnumRegFilters IEnumRegFilters;
    123 #endif
    124 
    125 #ifndef __IFilterMapper_FWD_DEFINED__
    126 #define __IFilterMapper_FWD_DEFINED__
    127 typedef interface IFilterMapper IFilterMapper;
    128 #endif
    129 
    130 #ifndef __IFilterMapper2_FWD_DEFINED__
    131 #define __IFilterMapper2_FWD_DEFINED__
    132 typedef interface IFilterMapper2 IFilterMapper2;
    133 #endif
    134 
    135 #ifndef __IFilterMapper3_FWD_DEFINED__
    136 #define __IFilterMapper3_FWD_DEFINED__
    137 typedef interface IFilterMapper3 IFilterMapper3;
    138 #endif
    139 
    140 #ifndef __IQualityControl_FWD_DEFINED__
    141 #define __IQualityControl_FWD_DEFINED__
    142 typedef interface IQualityControl IQualityControl;
    143 #endif
    144 
    145 #ifndef __IOverlayNotify_FWD_DEFINED__
    146 #define __IOverlayNotify_FWD_DEFINED__
    147 typedef interface IOverlayNotify IOverlayNotify;
    148 #endif
    149 
    150 #ifndef __IOverlayNotify2_FWD_DEFINED__
    151 #define __IOverlayNotify2_FWD_DEFINED__
    152 typedef interface IOverlayNotify2 IOverlayNotify2;
    153 #endif
    154 
    155 #ifndef __IOverlay_FWD_DEFINED__
    156 #define __IOverlay_FWD_DEFINED__
    157 typedef interface IOverlay IOverlay;
    158 #endif
    159 
    160 #ifndef __IMediaEventSink_FWD_DEFINED__
    161 #define __IMediaEventSink_FWD_DEFINED__
    162 typedef interface IMediaEventSink IMediaEventSink;
    163 #endif
    164 
    165 #ifndef __IFileSourceFilter_FWD_DEFINED__
    166 #define __IFileSourceFilter_FWD_DEFINED__
    167 typedef interface IFileSourceFilter IFileSourceFilter;
    168 #endif
    169 
    170 #ifndef __IFileSinkFilter_FWD_DEFINED__
    171 #define __IFileSinkFilter_FWD_DEFINED__
    172 typedef interface IFileSinkFilter IFileSinkFilter;
    173 #endif
    174 
    175 #ifndef __IFileSinkFilter2_FWD_DEFINED__
    176 #define __IFileSinkFilter2_FWD_DEFINED__
    177 typedef interface IFileSinkFilter2 IFileSinkFilter2;
    178 #endif
    179 
    180 #ifndef __IGraphBuilder_FWD_DEFINED__
    181 #define __IGraphBuilder_FWD_DEFINED__
    182 typedef interface IGraphBuilder IGraphBuilder;
    183 #endif
    184 
    185 #ifndef __ICaptureGraphBuilder_FWD_DEFINED__
    186 #define __ICaptureGraphBuilder_FWD_DEFINED__
    187 typedef interface ICaptureGraphBuilder ICaptureGraphBuilder;
    188 #endif
    189 
    190 #ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__
    191 #define __IAMCopyCaptureFileProgress_FWD_DEFINED__
    192 typedef interface IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
    193 #endif
    194 
    195 #ifndef __ICaptureGraphBuilder2_FWD_DEFINED__
    196 #define __ICaptureGraphBuilder2_FWD_DEFINED__
    197 typedef interface ICaptureGraphBuilder2 ICaptureGraphBuilder2;
    198 #endif
    199 
    200 #ifndef __IConfigAviMux_FWD_DEFINED__
    201 #define __IConfigAviMux_FWD_DEFINED__
    202 typedef interface IConfigAviMux IConfigAviMux;
    203 #endif
    204 
    205 #ifndef __IConfigInterleaving_FWD_DEFINED__
    206 #define __IConfigInterleaving_FWD_DEFINED__
    207 typedef interface IConfigInterleaving IConfigInterleaving;
    208 #endif
    209 
    210 #ifndef __IAMClockSlave_FWD_DEFINED__
    211 #define __IAMClockSlave_FWD_DEFINED__
    212 typedef interface IAMClockSlave IAMClockSlave;
    213 #endif
    214 
    215 #ifndef __IAMCertifiedOutputProtection_FWD_DEFINED__
    216 #define __IAMCertifiedOutputProtection_FWD_DEFINED__
    217 typedef interface IAMCertifiedOutputProtection IAMCertifiedOutputProtection;
    218 #endif
    219 
    220 #ifndef __IFilterGraph2_FWD_DEFINED__
    221 #define __IFilterGraph2_FWD_DEFINED__
    222 typedef interface IFilterGraph2 IFilterGraph2;
    223 #endif
    224 
    225 #ifndef __IStreamBuilder_FWD_DEFINED__
    226 #define __IStreamBuilder_FWD_DEFINED__
    227 typedef interface IStreamBuilder IStreamBuilder;
    228 #endif
    229 
    230 #ifndef __IAMStreamConfig_FWD_DEFINED__
    231 #define __IAMStreamConfig_FWD_DEFINED__
    232 typedef interface IAMStreamConfig IAMStreamConfig;
    233 #endif
    234 
    235 #ifndef __IAMVideoProcAmp_FWD_DEFINED__
    236 #define __IAMVideoProcAmp_FWD_DEFINED__
    237 typedef interface IAMVideoProcAmp IAMVideoProcAmp;
    238 #endif
    239 
    240 #ifndef __IAsyncReader_FWD_DEFINED__
    241 #define __IAsyncReader_FWD_DEFINED__
    242 typedef interface IAsyncReader IAsyncReader;
    243 #endif
    244 
    245 #ifndef __IGraphVersion_FWD_DEFINED__
    246 #define __IGraphVersion_FWD_DEFINED__
    247 typedef interface IGraphVersion IGraphVersion;
    248 #endif
    249 
    250 #ifndef __IResourceConsumer_FWD_DEFINED__
    251 #define __IResourceConsumer_FWD_DEFINED__
    252 typedef interface IResourceConsumer IResourceConsumer;
    253 #endif
    254 
    255 #ifndef __IResourceManager_FWD_DEFINED__
    256 #define __IResourceManager_FWD_DEFINED__
    257 typedef interface IResourceManager IResourceManager;
    258 #endif
    259 
    260 #ifndef __IAMStreamControl_FWD_DEFINED__
    261 #define __IAMStreamControl_FWD_DEFINED__
    262 typedef interface IAMStreamControl IAMStreamControl;
    263 #endif
    264 
    265 #ifndef __IKsPropertySet_FWD_DEFINED__
    266 #define __IKsPropertySet_FWD_DEFINED__
    267 typedef interface IKsPropertySet IKsPropertySet;
    268 #endif
    269 
    270 #ifndef __IMediaPropertyBag_FWD_DEFINED__
    271 #define __IMediaPropertyBag_FWD_DEFINED__
    272 typedef interface IMediaPropertyBag IMediaPropertyBag;
    273 #endif
    274 
    275 #ifndef __IPersistMediaPropertyBag_FWD_DEFINED__
    276 #define __IPersistMediaPropertyBag_FWD_DEFINED__
    277 typedef interface IPersistMediaPropertyBag IPersistMediaPropertyBag;
    278 #endif
    279 
    280 #ifndef __ISeekingPassThru_FWD_DEFINED__
    281 #define __ISeekingPassThru_FWD_DEFINED__
    282 typedef interface ISeekingPassThru ISeekingPassThru;
    283 #endif
    284 
    285 #ifndef __IAMFilterMiscFlags_FWD_DEFINED__
    286 #define __IAMFilterMiscFlags_FWD_DEFINED__
    287 typedef interface IAMFilterMiscFlags IAMFilterMiscFlags;
    288 #endif
    289 
    290 #ifndef __IAMGraphBuilderCallback_FWD_DEFINED__
    291 #define __IAMGraphBuilderCallback_FWD_DEFINED__
    292 typedef interface IAMGraphBuilderCallback IAMGraphBuilderCallback;
    293 #endif
    294 
    295 #ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__
    296 #define __IAMVfwCaptureDialogs_FWD_DEFINED__
    297 typedef interface IAMVfwCaptureDialogs IAMVfwCaptureDialogs;
    298 #endif
    299 
    300 /* Headers for imported files */
    301 
    302 #include <unknwn.h>
    303 #include <objidl.h>
    304 #include <oaidl.h>
    305 
    306 #ifdef __cplusplus
    307 extern "C" {
    308 #endif
    309 
    310 /**
    311  * This file is part of the mingw-w64 runtime package.
    312  * No warranty is given; refer to the file DISCLAIMER within this package.
    313  */
    314 
    315 #include <winapifamily.h>
    316 
    317 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
    318 
    319 #define CDEF_CLASS_DEFAULT 0x1
    320 #define CDEF_BYPASS_CLASS_MANAGER 0x2
    321 #define CDEF_MERIT_ABOVE_DO_NOT_USE 0x8
    322 #define CDEF_DEVMON_CMGR_DEVICE 0x10
    323 #define CDEF_DEVMON_DMO 0x20
    324 #define CDEF_DEVMON_PNP_DEVICE 0x40
    325 #define CDEF_DEVMON_FILTER 0x80
    326 
    327 #define CDEF_DEVMON_SELECTIVE_MASK 0xf0
    328 
    329 
    330 /*****************************************************************************
    331  * ICreateDevEnum interface
    332  */
    333 #ifndef __ICreateDevEnum_INTERFACE_DEFINED__
    334 #define __ICreateDevEnum_INTERFACE_DEFINED__
    335 
    336 DEFINE_GUID(IID_ICreateDevEnum, 0x29840822, 0x5b84, 0x11d0, 0xbd,0x3b, 0x00,0xa0,0xc9,0x11,0xce,0x86);
    337 #if defined(__cplusplus) && !defined(CINTERFACE)
    338 MIDL_INTERFACE("29840822-5b84-11d0-bd3b-00a0c911ce86")
    339 ICreateDevEnum : public IUnknown
    340 {
    341     virtual HRESULT STDMETHODCALLTYPE CreateClassEnumerator(
    342         REFCLSID clsidDeviceClass,
    343         IEnumMoniker **ppEnumMoniker,
    344         DWORD dwFlags) = 0;
    345 
    346 };
    347 #ifdef __CRT_UUID_DECL
    348 __CRT_UUID_DECL(ICreateDevEnum, 0x29840822, 0x5b84, 0x11d0, 0xbd,0x3b, 0x00,0xa0,0xc9,0x11,0xce,0x86)
    349 #endif
    350 #else
    351 typedef struct ICreateDevEnumVtbl {
    352     BEGIN_INTERFACE
    353 
    354     /*** IUnknown methods ***/
    355     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    356         ICreateDevEnum* This,
    357         REFIID riid,
    358         void **ppvObject);
    359 
    360     ULONG (STDMETHODCALLTYPE *AddRef)(
    361         ICreateDevEnum* This);
    362 
    363     ULONG (STDMETHODCALLTYPE *Release)(
    364         ICreateDevEnum* This);
    365 
    366     /*** ICreateDevEnum methods ***/
    367     HRESULT (STDMETHODCALLTYPE *CreateClassEnumerator)(
    368         ICreateDevEnum* This,
    369         REFCLSID clsidDeviceClass,
    370         IEnumMoniker **ppEnumMoniker,
    371         DWORD dwFlags);
    372 
    373     END_INTERFACE
    374 } ICreateDevEnumVtbl;
    375 interface ICreateDevEnum {
    376     CONST_VTBL ICreateDevEnumVtbl* lpVtbl;
    377 };
    378 
    379 #ifdef COBJMACROS
    380 #ifndef WIDL_C_INLINE_WRAPPERS
    381 /*** IUnknown methods ***/
    382 #define ICreateDevEnum_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    383 #define ICreateDevEnum_AddRef(This) (This)->lpVtbl->AddRef(This)
    384 #define ICreateDevEnum_Release(This) (This)->lpVtbl->Release(This)
    385 /*** ICreateDevEnum methods ***/
    386 #define ICreateDevEnum_CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags) (This)->lpVtbl->CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags)
    387 #else
    388 /*** IUnknown methods ***/
    389 static FORCEINLINE HRESULT ICreateDevEnum_QueryInterface(ICreateDevEnum* This,REFIID riid,void **ppvObject) {
    390     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    391 }
    392 static FORCEINLINE ULONG ICreateDevEnum_AddRef(ICreateDevEnum* This) {
    393     return This->lpVtbl->AddRef(This);
    394 }
    395 static FORCEINLINE ULONG ICreateDevEnum_Release(ICreateDevEnum* This) {
    396     return This->lpVtbl->Release(This);
    397 }
    398 /*** ICreateDevEnum methods ***/
    399 static FORCEINLINE HRESULT ICreateDevEnum_CreateClassEnumerator(ICreateDevEnum* This,REFCLSID clsidDeviceClass,IEnumMoniker **ppEnumMoniker,DWORD dwFlags) {
    400     return This->lpVtbl->CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags);
    401 }
    402 #endif
    403 #endif
    404 
    405 #endif
    406 
    407 HRESULT STDMETHODCALLTYPE ICreateDevEnum_CreateClassEnumerator_Proxy(
    408     ICreateDevEnum* This,
    409     REFCLSID clsidDeviceClass,
    410     IEnumMoniker **ppEnumMoniker,
    411     DWORD dwFlags);
    412 void __RPC_STUB ICreateDevEnum_CreateClassEnumerator_Stub(
    413     IRpcStubBuffer* This,
    414     IRpcChannelBuffer* pRpcChannelBuffer,
    415     PRPC_MESSAGE pRpcMessage,
    416     DWORD* pdwStubPhase);
    417 
    418 #endif  /* __ICreateDevEnum_INTERFACE_DEFINED__ */
    419 
    420 #endif
    421 /**
    422  * This file is part of the mingw-w64 runtime package.
    423  * No warranty is given; refer to the file DISCLAIMER within this package.
    424  */
    425 
    426 #include <winapifamily.h>
    427 
    428 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
    429 
    430 #define CHARS_IN_GUID 39
    431 
    432 #ifdef WINE_NO_UNICODE_MACROS
    433 #undef GetTimeFormat
    434 #endif
    435 
    436 typedef struct _AMMediaType {
    437     GUID majortype;
    438     GUID subtype;
    439     WINBOOL bFixedSizeSamples;
    440     WINBOOL bTemporalCompression;
    441     ULONG lSampleSize;
    442     GUID formattype;
    443     IUnknown *pUnk;
    444     ULONG cbFormat;
    445     BYTE *pbFormat;
    446 } AM_MEDIA_TYPE;
    447 
    448 typedef enum _PinDirection {
    449     PINDIR_INPUT = 0,
    450     PINDIR_OUTPUT = 1
    451 } PIN_DIRECTION;
    452 
    453 #define MAX_PIN_NAME 128
    454 #define MAX_FILTER_NAME 128
    455 
    456 #ifndef REFERENCE_TIME_DEFINED
    457 #define REFERENCE_TIME_DEFINED
    458 typedef LONGLONG REFERENCE_TIME;
    459 #endif
    460 
    461 #ifndef REFTIME_DEFINED
    462 #define REFTIME_DEFINED
    463 typedef double REFTIME;
    464 #endif
    465 
    466 typedef DWORD_PTR HSEMAPHORE;
    467 typedef DWORD_PTR HEVENT;
    468 
    469 typedef struct _AllocatorProperties {
    470     LONG cBuffers;
    471     LONG cbBuffer;
    472     LONG cbAlign;
    473     LONG cbPrefix;
    474 } ALLOCATOR_PROPERTIES;
    475 
    476 #ifndef __IAMovieSetup_FWD_DEFINED__
    477 #define __IAMovieSetup_FWD_DEFINED__
    478 typedef interface IAMovieSetup IAMovieSetup;
    479 #endif
    480 
    481 #ifndef __IEnumFilters_FWD_DEFINED__
    482 #define __IEnumFilters_FWD_DEFINED__
    483 typedef interface IEnumFilters IEnumFilters;
    484 #endif
    485 
    486 #ifndef __IEnumMediaTypes_FWD_DEFINED__
    487 #define __IEnumMediaTypes_FWD_DEFINED__
    488 typedef interface IEnumMediaTypes IEnumMediaTypes;
    489 #endif
    490 
    491 #ifndef __IEnumPins_FWD_DEFINED__
    492 #define __IEnumPins_FWD_DEFINED__
    493 typedef interface IEnumPins IEnumPins;
    494 #endif
    495 
    496 #ifndef __IBaseFilter_FWD_DEFINED__
    497 #define __IBaseFilter_FWD_DEFINED__
    498 typedef interface IBaseFilter IBaseFilter;
    499 #endif
    500 
    501 #ifndef __IFilterGraph_FWD_DEFINED__
    502 #define __IFilterGraph_FWD_DEFINED__
    503 typedef interface IFilterGraph IFilterGraph;
    504 #endif
    505 
    506 #ifndef __IMediaFilter_FWD_DEFINED__
    507 #define __IMediaFilter_FWD_DEFINED__
    508 typedef interface IMediaFilter IMediaFilter;
    509 #endif
    510 
    511 #ifndef __IMediaSample_FWD_DEFINED__
    512 #define __IMediaSample_FWD_DEFINED__
    513 typedef interface IMediaSample IMediaSample;
    514 #endif
    515 
    516 #ifndef __IMemAllocator_FWD_DEFINED__
    517 #define __IMemAllocator_FWD_DEFINED__
    518 typedef interface IMemAllocator IMemAllocator;
    519 #endif
    520 
    521 #ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__
    522 #define __IMemAllocatorCallbackTemp_FWD_DEFINED__
    523 typedef interface IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp;
    524 #endif
    525 
    526 #ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
    527 #define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
    528 typedef interface IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp;
    529 #endif
    530 
    531 #ifndef __IMemInputPin_FWD_DEFINED__
    532 #define __IMemInputPin_FWD_DEFINED__
    533 typedef interface IMemInputPin IMemInputPin;
    534 #endif
    535 
    536 #ifndef __IPin_FWD_DEFINED__
    537 #define __IPin_FWD_DEFINED__
    538 typedef interface IPin IPin;
    539 #endif
    540 
    541 #ifndef __IReferenceClock_FWD_DEFINED__
    542 #define __IReferenceClock_FWD_DEFINED__
    543 typedef interface IReferenceClock IReferenceClock;
    544 #endif
    545 
    546 
    547 /*****************************************************************************
    548  * IPin interface
    549  */
    550 #ifndef __IPin_INTERFACE_DEFINED__
    551 #define __IPin_INTERFACE_DEFINED__
    552 
    553 typedef struct _PinInfo {
    554     IBaseFilter *pFilter;
    555     PIN_DIRECTION dir;
    556     WCHAR achName[128];
    557 } PIN_INFO;
    558 
    559 DEFINE_GUID(IID_IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
    560 #if defined(__cplusplus) && !defined(CINTERFACE)
    561 MIDL_INTERFACE("56a86891-0ad4-11ce-b03a-0020af0ba770")
    562 IPin : public IUnknown
    563 {
    564     virtual HRESULT STDMETHODCALLTYPE Connect(
    565         IPin *pReceivePin,
    566         const AM_MEDIA_TYPE *pmt) = 0;
    567 
    568     virtual HRESULT STDMETHODCALLTYPE ReceiveConnection(
    569         IPin *pConnector,
    570         const AM_MEDIA_TYPE *pmt) = 0;
    571 
    572     virtual HRESULT STDMETHODCALLTYPE Disconnect(
    573         ) = 0;
    574 
    575     virtual HRESULT STDMETHODCALLTYPE ConnectedTo(
    576         IPin **pPin) = 0;
    577 
    578     virtual HRESULT STDMETHODCALLTYPE ConnectionMediaType(
    579         AM_MEDIA_TYPE *pmt) = 0;
    580 
    581     virtual HRESULT STDMETHODCALLTYPE QueryPinInfo(
    582         PIN_INFO *pInfo) = 0;
    583 
    584     virtual HRESULT STDMETHODCALLTYPE QueryDirection(
    585         PIN_DIRECTION *pPinDir) = 0;
    586 
    587     virtual HRESULT STDMETHODCALLTYPE QueryId(
    588         LPWSTR *Id) = 0;
    589 
    590     virtual HRESULT STDMETHODCALLTYPE QueryAccept(
    591         const AM_MEDIA_TYPE *pmt) = 0;
    592 
    593     virtual HRESULT STDMETHODCALLTYPE EnumMediaTypes(
    594         IEnumMediaTypes **ppEnum) = 0;
    595 
    596     virtual HRESULT STDMETHODCALLTYPE QueryInternalConnections(
    597         IPin **apPin,
    598         ULONG *nPin) = 0;
    599 
    600     virtual HRESULT STDMETHODCALLTYPE EndOfStream(
    601         ) = 0;
    602 
    603     virtual HRESULT STDMETHODCALLTYPE BeginFlush(
    604         ) = 0;
    605 
    606     virtual HRESULT STDMETHODCALLTYPE EndFlush(
    607         ) = 0;
    608 
    609     virtual HRESULT STDMETHODCALLTYPE NewSegment(
    610         REFERENCE_TIME tStart,
    611         REFERENCE_TIME tStop,
    612         double dRate) = 0;
    613 
    614 };
    615 #ifdef __CRT_UUID_DECL
    616 __CRT_UUID_DECL(IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
    617 #endif
    618 #else
    619 typedef struct IPinVtbl {
    620     BEGIN_INTERFACE
    621 
    622     /*** IUnknown methods ***/
    623     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    624         IPin* This,
    625         REFIID riid,
    626         void **ppvObject);
    627 
    628     ULONG (STDMETHODCALLTYPE *AddRef)(
    629         IPin* This);
    630 
    631     ULONG (STDMETHODCALLTYPE *Release)(
    632         IPin* This);
    633 
    634     /*** IPin methods ***/
    635     HRESULT (STDMETHODCALLTYPE *Connect)(
    636         IPin* This,
    637         IPin *pReceivePin,
    638         const AM_MEDIA_TYPE *pmt);
    639 
    640     HRESULT (STDMETHODCALLTYPE *ReceiveConnection)(
    641         IPin* This,
    642         IPin *pConnector,
    643         const AM_MEDIA_TYPE *pmt);
    644 
    645     HRESULT (STDMETHODCALLTYPE *Disconnect)(
    646         IPin* This);
    647 
    648     HRESULT (STDMETHODCALLTYPE *ConnectedTo)(
    649         IPin* This,
    650         IPin **pPin);
    651 
    652     HRESULT (STDMETHODCALLTYPE *ConnectionMediaType)(
    653         IPin* This,
    654         AM_MEDIA_TYPE *pmt);
    655 
    656     HRESULT (STDMETHODCALLTYPE *QueryPinInfo)(
    657         IPin* This,
    658         PIN_INFO *pInfo);
    659 
    660     HRESULT (STDMETHODCALLTYPE *QueryDirection)(
    661         IPin* This,
    662         PIN_DIRECTION *pPinDir);
    663 
    664     HRESULT (STDMETHODCALLTYPE *QueryId)(
    665         IPin* This,
    666         LPWSTR *Id);
    667 
    668     HRESULT (STDMETHODCALLTYPE *QueryAccept)(
    669         IPin* This,
    670         const AM_MEDIA_TYPE *pmt);
    671 
    672     HRESULT (STDMETHODCALLTYPE *EnumMediaTypes)(
    673         IPin* This,
    674         IEnumMediaTypes **ppEnum);
    675 
    676     HRESULT (STDMETHODCALLTYPE *QueryInternalConnections)(
    677         IPin* This,
    678         IPin **apPin,
    679         ULONG *nPin);
    680 
    681     HRESULT (STDMETHODCALLTYPE *EndOfStream)(
    682         IPin* This);
    683 
    684     HRESULT (STDMETHODCALLTYPE *BeginFlush)(
    685         IPin* This);
    686 
    687     HRESULT (STDMETHODCALLTYPE *EndFlush)(
    688         IPin* This);
    689 
    690     HRESULT (STDMETHODCALLTYPE *NewSegment)(
    691         IPin* This,
    692         REFERENCE_TIME tStart,
    693         REFERENCE_TIME tStop,
    694         double dRate);
    695 
    696     END_INTERFACE
    697 } IPinVtbl;
    698 interface IPin {
    699     CONST_VTBL IPinVtbl* lpVtbl;
    700 };
    701 
    702 #ifdef COBJMACROS
    703 #ifndef WIDL_C_INLINE_WRAPPERS
    704 /*** IUnknown methods ***/
    705 #define IPin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    706 #define IPin_AddRef(This) (This)->lpVtbl->AddRef(This)
    707 #define IPin_Release(This) (This)->lpVtbl->Release(This)
    708 /*** IPin methods ***/
    709 #define IPin_Connect(This,pReceivePin,pmt) (This)->lpVtbl->Connect(This,pReceivePin,pmt)
    710 #define IPin_ReceiveConnection(This,pConnector,pmt) (This)->lpVtbl->ReceiveConnection(This,pConnector,pmt)
    711 #define IPin_Disconnect(This) (This)->lpVtbl->Disconnect(This)
    712 #define IPin_ConnectedTo(This,pPin) (This)->lpVtbl->ConnectedTo(This,pPin)
    713 #define IPin_ConnectionMediaType(This,pmt) (This)->lpVtbl->ConnectionMediaType(This,pmt)
    714 #define IPin_QueryPinInfo(This,pInfo) (This)->lpVtbl->QueryPinInfo(This,pInfo)
    715 #define IPin_QueryDirection(This,pPinDir) (This)->lpVtbl->QueryDirection(This,pPinDir)
    716 #define IPin_QueryId(This,Id) (This)->lpVtbl->QueryId(This,Id)
    717 #define IPin_QueryAccept(This,pmt) (This)->lpVtbl->QueryAccept(This,pmt)
    718 #define IPin_EnumMediaTypes(This,ppEnum) (This)->lpVtbl->EnumMediaTypes(This,ppEnum)
    719 #define IPin_QueryInternalConnections(This,apPin,nPin) (This)->lpVtbl->QueryInternalConnections(This,apPin,nPin)
    720 #define IPin_EndOfStream(This) (This)->lpVtbl->EndOfStream(This)
    721 #define IPin_BeginFlush(This) (This)->lpVtbl->BeginFlush(This)
    722 #define IPin_EndFlush(This) (This)->lpVtbl->EndFlush(This)
    723 #define IPin_NewSegment(This,tStart,tStop,dRate) (This)->lpVtbl->NewSegment(This,tStart,tStop,dRate)
    724 #else
    725 /*** IUnknown methods ***/
    726 static FORCEINLINE HRESULT IPin_QueryInterface(IPin* This,REFIID riid,void **ppvObject) {
    727     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    728 }
    729 static FORCEINLINE ULONG IPin_AddRef(IPin* This) {
    730     return This->lpVtbl->AddRef(This);
    731 }
    732 static FORCEINLINE ULONG IPin_Release(IPin* This) {
    733     return This->lpVtbl->Release(This);
    734 }
    735 /*** IPin methods ***/
    736 static FORCEINLINE HRESULT IPin_Connect(IPin* This,IPin *pReceivePin,const AM_MEDIA_TYPE *pmt) {
    737     return This->lpVtbl->Connect(This,pReceivePin,pmt);
    738 }
    739 static FORCEINLINE HRESULT IPin_ReceiveConnection(IPin* This,IPin *pConnector,const AM_MEDIA_TYPE *pmt) {
    740     return This->lpVtbl->ReceiveConnection(This,pConnector,pmt);
    741 }
    742 static FORCEINLINE HRESULT IPin_Disconnect(IPin* This) {
    743     return This->lpVtbl->Disconnect(This);
    744 }
    745 static FORCEINLINE HRESULT IPin_ConnectedTo(IPin* This,IPin **pPin) {
    746     return This->lpVtbl->ConnectedTo(This,pPin);
    747 }
    748 static FORCEINLINE HRESULT IPin_ConnectionMediaType(IPin* This,AM_MEDIA_TYPE *pmt) {
    749     return This->lpVtbl->ConnectionMediaType(This,pmt);
    750 }
    751 static FORCEINLINE HRESULT IPin_QueryPinInfo(IPin* This,PIN_INFO *pInfo) {
    752     return This->lpVtbl->QueryPinInfo(This,pInfo);
    753 }
    754 static FORCEINLINE HRESULT IPin_QueryDirection(IPin* This,PIN_DIRECTION *pPinDir) {
    755     return This->lpVtbl->QueryDirection(This,pPinDir);
    756 }
    757 static FORCEINLINE HRESULT IPin_QueryId(IPin* This,LPWSTR *Id) {
    758     return This->lpVtbl->QueryId(This,Id);
    759 }
    760 static FORCEINLINE HRESULT IPin_QueryAccept(IPin* This,const AM_MEDIA_TYPE *pmt) {
    761     return This->lpVtbl->QueryAccept(This,pmt);
    762 }
    763 static FORCEINLINE HRESULT IPin_EnumMediaTypes(IPin* This,IEnumMediaTypes **ppEnum) {
    764     return This->lpVtbl->EnumMediaTypes(This,ppEnum);
    765 }
    766 static FORCEINLINE HRESULT IPin_QueryInternalConnections(IPin* This,IPin **apPin,ULONG *nPin) {
    767     return This->lpVtbl->QueryInternalConnections(This,apPin,nPin);
    768 }
    769 static FORCEINLINE HRESULT IPin_EndOfStream(IPin* This) {
    770     return This->lpVtbl->EndOfStream(This);
    771 }
    772 static FORCEINLINE HRESULT IPin_BeginFlush(IPin* This) {
    773     return This->lpVtbl->BeginFlush(This);
    774 }
    775 static FORCEINLINE HRESULT IPin_EndFlush(IPin* This) {
    776     return This->lpVtbl->EndFlush(This);
    777 }
    778 static FORCEINLINE HRESULT IPin_NewSegment(IPin* This,REFERENCE_TIME tStart,REFERENCE_TIME tStop,double dRate) {
    779     return This->lpVtbl->NewSegment(This,tStart,tStop,dRate);
    780 }
    781 #endif
    782 #endif
    783 
    784 #endif
    785 
    786 HRESULT STDMETHODCALLTYPE IPin_Connect_Proxy(
    787     IPin* This,
    788     IPin *pReceivePin,
    789     const AM_MEDIA_TYPE *pmt);
    790 void __RPC_STUB IPin_Connect_Stub(
    791     IRpcStubBuffer* This,
    792     IRpcChannelBuffer* pRpcChannelBuffer,
    793     PRPC_MESSAGE pRpcMessage,
    794     DWORD* pdwStubPhase);
    795 HRESULT STDMETHODCALLTYPE IPin_ReceiveConnection_Proxy(
    796     IPin* This,
    797     IPin *pConnector,
    798     const AM_MEDIA_TYPE *pmt);
    799 void __RPC_STUB IPin_ReceiveConnection_Stub(
    800     IRpcStubBuffer* This,
    801     IRpcChannelBuffer* pRpcChannelBuffer,
    802     PRPC_MESSAGE pRpcMessage,
    803     DWORD* pdwStubPhase);
    804 HRESULT STDMETHODCALLTYPE IPin_Disconnect_Proxy(
    805     IPin* This);
    806 void __RPC_STUB IPin_Disconnect_Stub(
    807     IRpcStubBuffer* This,
    808     IRpcChannelBuffer* pRpcChannelBuffer,
    809     PRPC_MESSAGE pRpcMessage,
    810     DWORD* pdwStubPhase);
    811 HRESULT STDMETHODCALLTYPE IPin_ConnectedTo_Proxy(
    812     IPin* This,
    813     IPin **pPin);
    814 void __RPC_STUB IPin_ConnectedTo_Stub(
    815     IRpcStubBuffer* This,
    816     IRpcChannelBuffer* pRpcChannelBuffer,
    817     PRPC_MESSAGE pRpcMessage,
    818     DWORD* pdwStubPhase);
    819 HRESULT STDMETHODCALLTYPE IPin_ConnectionMediaType_Proxy(
    820     IPin* This,
    821     AM_MEDIA_TYPE *pmt);
    822 void __RPC_STUB IPin_ConnectionMediaType_Stub(
    823     IRpcStubBuffer* This,
    824     IRpcChannelBuffer* pRpcChannelBuffer,
    825     PRPC_MESSAGE pRpcMessage,
    826     DWORD* pdwStubPhase);
    827 HRESULT STDMETHODCALLTYPE IPin_QueryPinInfo_Proxy(
    828     IPin* This,
    829     PIN_INFO *pInfo);
    830 void __RPC_STUB IPin_QueryPinInfo_Stub(
    831     IRpcStubBuffer* This,
    832     IRpcChannelBuffer* pRpcChannelBuffer,
    833     PRPC_MESSAGE pRpcMessage,
    834     DWORD* pdwStubPhase);
    835 HRESULT STDMETHODCALLTYPE IPin_QueryDirection_Proxy(
    836     IPin* This,
    837     PIN_DIRECTION *pPinDir);
    838 void __RPC_STUB IPin_QueryDirection_Stub(
    839     IRpcStubBuffer* This,
    840     IRpcChannelBuffer* pRpcChannelBuffer,
    841     PRPC_MESSAGE pRpcMessage,
    842     DWORD* pdwStubPhase);
    843 HRESULT STDMETHODCALLTYPE IPin_QueryId_Proxy(
    844     IPin* This,
    845     LPWSTR *Id);
    846 void __RPC_STUB IPin_QueryId_Stub(
    847     IRpcStubBuffer* This,
    848     IRpcChannelBuffer* pRpcChannelBuffer,
    849     PRPC_MESSAGE pRpcMessage,
    850     DWORD* pdwStubPhase);
    851 HRESULT STDMETHODCALLTYPE IPin_QueryAccept_Proxy(
    852     IPin* This,
    853     const AM_MEDIA_TYPE *pmt);
    854 void __RPC_STUB IPin_QueryAccept_Stub(
    855     IRpcStubBuffer* This,
    856     IRpcChannelBuffer* pRpcChannelBuffer,
    857     PRPC_MESSAGE pRpcMessage,
    858     DWORD* pdwStubPhase);
    859 HRESULT STDMETHODCALLTYPE IPin_EnumMediaTypes_Proxy(
    860     IPin* This,
    861     IEnumMediaTypes **ppEnum);
    862 void __RPC_STUB IPin_EnumMediaTypes_Stub(
    863     IRpcStubBuffer* This,
    864     IRpcChannelBuffer* pRpcChannelBuffer,
    865     PRPC_MESSAGE pRpcMessage,
    866     DWORD* pdwStubPhase);
    867 HRESULT STDMETHODCALLTYPE IPin_QueryInternalConnections_Proxy(
    868     IPin* This,
    869     IPin **apPin,
    870     ULONG *nPin);
    871 void __RPC_STUB IPin_QueryInternalConnections_Stub(
    872     IRpcStubBuffer* This,
    873     IRpcChannelBuffer* pRpcChannelBuffer,
    874     PRPC_MESSAGE pRpcMessage,
    875     DWORD* pdwStubPhase);
    876 HRESULT STDMETHODCALLTYPE IPin_EndOfStream_Proxy(
    877     IPin* This);
    878 void __RPC_STUB IPin_EndOfStream_Stub(
    879     IRpcStubBuffer* This,
    880     IRpcChannelBuffer* pRpcChannelBuffer,
    881     PRPC_MESSAGE pRpcMessage,
    882     DWORD* pdwStubPhase);
    883 HRESULT STDMETHODCALLTYPE IPin_BeginFlush_Proxy(
    884     IPin* This);
    885 void __RPC_STUB IPin_BeginFlush_Stub(
    886     IRpcStubBuffer* This,
    887     IRpcChannelBuffer* pRpcChannelBuffer,
    888     PRPC_MESSAGE pRpcMessage,
    889     DWORD* pdwStubPhase);
    890 HRESULT STDMETHODCALLTYPE IPin_EndFlush_Proxy(
    891     IPin* This);
    892 void __RPC_STUB IPin_EndFlush_Stub(
    893     IRpcStubBuffer* This,
    894     IRpcChannelBuffer* pRpcChannelBuffer,
    895     PRPC_MESSAGE pRpcMessage,
    896     DWORD* pdwStubPhase);
    897 HRESULT STDMETHODCALLTYPE IPin_NewSegment_Proxy(
    898     IPin* This,
    899     REFERENCE_TIME tStart,
    900     REFERENCE_TIME tStop,
    901     double dRate);
    902 void __RPC_STUB IPin_NewSegment_Stub(
    903     IRpcStubBuffer* This,
    904     IRpcChannelBuffer* pRpcChannelBuffer,
    905     PRPC_MESSAGE pRpcMessage,
    906     DWORD* pdwStubPhase);
    907 
    908 #endif  /* __IPin_INTERFACE_DEFINED__ */
    909 
    910 typedef IPin *PPIN;
    911 
    912 /*****************************************************************************
    913  * IEnumPins interface
    914  */
    915 #ifndef __IEnumPins_INTERFACE_DEFINED__
    916 #define __IEnumPins_INTERFACE_DEFINED__
    917 
    918 DEFINE_GUID(IID_IEnumPins, 0x56a86892, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
    919 #if defined(__cplusplus) && !defined(CINTERFACE)
    920 MIDL_INTERFACE("56a86892-0ad4-11ce-b03a-0020af0ba770")
    921 IEnumPins : public IUnknown
    922 {
    923     virtual HRESULT STDMETHODCALLTYPE Next(
    924         ULONG cPins,
    925         IPin **ppPins,
    926         ULONG *pcFetched) = 0;
    927 
    928     virtual HRESULT STDMETHODCALLTYPE Skip(
    929         ULONG cPins) = 0;
    930 
    931     virtual HRESULT STDMETHODCALLTYPE Reset(
    932         ) = 0;
    933 
    934     virtual HRESULT STDMETHODCALLTYPE Clone(
    935         IEnumPins **ppEnum) = 0;
    936 
    937 };
    938 #ifdef __CRT_UUID_DECL
    939 __CRT_UUID_DECL(IEnumPins, 0x56a86892, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
    940 #endif
    941 #else
    942 typedef struct IEnumPinsVtbl {
    943     BEGIN_INTERFACE
    944 
    945     /*** IUnknown methods ***/
    946     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    947         IEnumPins* This,
    948         REFIID riid,
    949         void **ppvObject);
    950 
    951     ULONG (STDMETHODCALLTYPE *AddRef)(
    952         IEnumPins* This);
    953 
    954     ULONG (STDMETHODCALLTYPE *Release)(
    955         IEnumPins* This);
    956 
    957     /*** IEnumPins methods ***/
    958     HRESULT (STDMETHODCALLTYPE *Next)(
    959         IEnumPins* This,
    960         ULONG cPins,
    961         IPin **ppPins,
    962         ULONG *pcFetched);
    963 
    964     HRESULT (STDMETHODCALLTYPE *Skip)(
    965         IEnumPins* This,
    966         ULONG cPins);
    967 
    968     HRESULT (STDMETHODCALLTYPE *Reset)(
    969         IEnumPins* This);
    970 
    971     HRESULT (STDMETHODCALLTYPE *Clone)(
    972         IEnumPins* This,
    973         IEnumPins **ppEnum);
    974 
    975     END_INTERFACE
    976 } IEnumPinsVtbl;
    977 interface IEnumPins {
    978     CONST_VTBL IEnumPinsVtbl* lpVtbl;
    979 };
    980 
    981 #ifdef COBJMACROS
    982 #ifndef WIDL_C_INLINE_WRAPPERS
    983 /*** IUnknown methods ***/
    984 #define IEnumPins_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    985 #define IEnumPins_AddRef(This) (This)->lpVtbl->AddRef(This)
    986 #define IEnumPins_Release(This) (This)->lpVtbl->Release(This)
    987 /*** IEnumPins methods ***/
    988 #define IEnumPins_Next(This,cPins,ppPins,pcFetched) (This)->lpVtbl->Next(This,cPins,ppPins,pcFetched)
    989 #define IEnumPins_Skip(This,cPins) (This)->lpVtbl->Skip(This,cPins)
    990 #define IEnumPins_Reset(This) (This)->lpVtbl->Reset(This)
    991 #define IEnumPins_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
    992 #else
    993 /*** IUnknown methods ***/
    994 static FORCEINLINE HRESULT IEnumPins_QueryInterface(IEnumPins* This,REFIID riid,void **ppvObject) {
    995     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    996 }
    997 static FORCEINLINE ULONG IEnumPins_AddRef(IEnumPins* This) {
    998     return This->lpVtbl->AddRef(This);
    999 }
   1000 static FORCEINLINE ULONG IEnumPins_Release(IEnumPins* This) {
   1001     return This->lpVtbl->Release(This);
   1002 }
   1003 /*** IEnumPins methods ***/
   1004 static FORCEINLINE HRESULT IEnumPins_Next(IEnumPins* This,ULONG cPins,IPin **ppPins,ULONG *pcFetched) {
   1005     return This->lpVtbl->Next(This,cPins,ppPins,pcFetched);
   1006 }
   1007 static FORCEINLINE HRESULT IEnumPins_Skip(IEnumPins* This,ULONG cPins) {
   1008     return This->lpVtbl->Skip(This,cPins);
   1009 }
   1010 static FORCEINLINE HRESULT IEnumPins_Reset(IEnumPins* This) {
   1011     return This->lpVtbl->Reset(This);
   1012 }
   1013 static FORCEINLINE HRESULT IEnumPins_Clone(IEnumPins* This,IEnumPins **ppEnum) {
   1014     return This->lpVtbl->Clone(This,ppEnum);
   1015 }
   1016 #endif
   1017 #endif
   1018 
   1019 #endif
   1020 
   1021 HRESULT STDMETHODCALLTYPE IEnumPins_Next_Proxy(
   1022     IEnumPins* This,
   1023     ULONG cPins,
   1024     IPin **ppPins,
   1025     ULONG *pcFetched);
   1026 void __RPC_STUB IEnumPins_Next_Stub(
   1027     IRpcStubBuffer* This,
   1028     IRpcChannelBuffer* pRpcChannelBuffer,
   1029     PRPC_MESSAGE pRpcMessage,
   1030     DWORD* pdwStubPhase);
   1031 HRESULT STDMETHODCALLTYPE IEnumPins_Skip_Proxy(
   1032     IEnumPins* This,
   1033     ULONG cPins);
   1034 void __RPC_STUB IEnumPins_Skip_Stub(
   1035     IRpcStubBuffer* This,
   1036     IRpcChannelBuffer* pRpcChannelBuffer,
   1037     PRPC_MESSAGE pRpcMessage,
   1038     DWORD* pdwStubPhase);
   1039 HRESULT STDMETHODCALLTYPE IEnumPins_Reset_Proxy(
   1040     IEnumPins* This);
   1041 void __RPC_STUB IEnumPins_Reset_Stub(
   1042     IRpcStubBuffer* This,
   1043     IRpcChannelBuffer* pRpcChannelBuffer,
   1044     PRPC_MESSAGE pRpcMessage,
   1045     DWORD* pdwStubPhase);
   1046 HRESULT STDMETHODCALLTYPE IEnumPins_Clone_Proxy(
   1047     IEnumPins* This,
   1048     IEnumPins **ppEnum);
   1049 void __RPC_STUB IEnumPins_Clone_Stub(
   1050     IRpcStubBuffer* This,
   1051     IRpcChannelBuffer* pRpcChannelBuffer,
   1052     PRPC_MESSAGE pRpcMessage,
   1053     DWORD* pdwStubPhase);
   1054 
   1055 #endif  /* __IEnumPins_INTERFACE_DEFINED__ */
   1056 
   1057 typedef IEnumPins *PENUMPINS;
   1058 
   1059 /*****************************************************************************
   1060  * IEnumMediaTypes interface
   1061  */
   1062 #ifndef __IEnumMediaTypes_INTERFACE_DEFINED__
   1063 #define __IEnumMediaTypes_INTERFACE_DEFINED__
   1064 
   1065 DEFINE_GUID(IID_IEnumMediaTypes, 0x89c31040, 0x846b, 0x11ce, 0x97,0xd3, 0x00,0xaa,0x00,0x55,0x59,0x5a);
   1066 #if defined(__cplusplus) && !defined(CINTERFACE)
   1067 MIDL_INTERFACE("89c31040-846b-11ce-97d3-00aa0055595a")
   1068 IEnumMediaTypes : public IUnknown
   1069 {
   1070     virtual HRESULT STDMETHODCALLTYPE Next(
   1071         ULONG cMediaTypes,
   1072         AM_MEDIA_TYPE **ppMediaTypes,
   1073         ULONG *pcFetched) = 0;
   1074 
   1075     virtual HRESULT STDMETHODCALLTYPE Skip(
   1076         ULONG cMediaTypes) = 0;
   1077 
   1078     virtual HRESULT STDMETHODCALLTYPE Reset(
   1079         ) = 0;
   1080 
   1081     virtual HRESULT STDMETHODCALLTYPE Clone(
   1082         IEnumMediaTypes **ppEnum) = 0;
   1083 
   1084 };
   1085 #ifdef __CRT_UUID_DECL
   1086 __CRT_UUID_DECL(IEnumMediaTypes, 0x89c31040, 0x846b, 0x11ce, 0x97,0xd3, 0x00,0xaa,0x00,0x55,0x59,0x5a)
   1087 #endif
   1088 #else
   1089 typedef struct IEnumMediaTypesVtbl {
   1090     BEGIN_INTERFACE
   1091 
   1092     /*** IUnknown methods ***/
   1093     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1094         IEnumMediaTypes* This,
   1095         REFIID riid,
   1096         void **ppvObject);
   1097 
   1098     ULONG (STDMETHODCALLTYPE *AddRef)(
   1099         IEnumMediaTypes* This);
   1100 
   1101     ULONG (STDMETHODCALLTYPE *Release)(
   1102         IEnumMediaTypes* This);
   1103 
   1104     /*** IEnumMediaTypes methods ***/
   1105     HRESULT (STDMETHODCALLTYPE *Next)(
   1106         IEnumMediaTypes* This,
   1107         ULONG cMediaTypes,
   1108         AM_MEDIA_TYPE **ppMediaTypes,
   1109         ULONG *pcFetched);
   1110 
   1111     HRESULT (STDMETHODCALLTYPE *Skip)(
   1112         IEnumMediaTypes* This,
   1113         ULONG cMediaTypes);
   1114 
   1115     HRESULT (STDMETHODCALLTYPE *Reset)(
   1116         IEnumMediaTypes* This);
   1117 
   1118     HRESULT (STDMETHODCALLTYPE *Clone)(
   1119         IEnumMediaTypes* This,
   1120         IEnumMediaTypes **ppEnum);
   1121 
   1122     END_INTERFACE
   1123 } IEnumMediaTypesVtbl;
   1124 interface IEnumMediaTypes {
   1125     CONST_VTBL IEnumMediaTypesVtbl* lpVtbl;
   1126 };
   1127 
   1128 #ifdef COBJMACROS
   1129 #ifndef WIDL_C_INLINE_WRAPPERS
   1130 /*** IUnknown methods ***/
   1131 #define IEnumMediaTypes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1132 #define IEnumMediaTypes_AddRef(This) (This)->lpVtbl->AddRef(This)
   1133 #define IEnumMediaTypes_Release(This) (This)->lpVtbl->Release(This)
   1134 /*** IEnumMediaTypes methods ***/
   1135 #define IEnumMediaTypes_Next(This,cMediaTypes,ppMediaTypes,pcFetched) (This)->lpVtbl->Next(This,cMediaTypes,ppMediaTypes,pcFetched)
   1136 #define IEnumMediaTypes_Skip(This,cMediaTypes) (This)->lpVtbl->Skip(This,cMediaTypes)
   1137 #define IEnumMediaTypes_Reset(This) (This)->lpVtbl->Reset(This)
   1138 #define IEnumMediaTypes_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
   1139 #else
   1140 /*** IUnknown methods ***/
   1141 static FORCEINLINE HRESULT IEnumMediaTypes_QueryInterface(IEnumMediaTypes* This,REFIID riid,void **ppvObject) {
   1142     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1143 }
   1144 static FORCEINLINE ULONG IEnumMediaTypes_AddRef(IEnumMediaTypes* This) {
   1145     return This->lpVtbl->AddRef(This);
   1146 }
   1147 static FORCEINLINE ULONG IEnumMediaTypes_Release(IEnumMediaTypes* This) {
   1148     return This->lpVtbl->Release(This);
   1149 }
   1150 /*** IEnumMediaTypes methods ***/
   1151 static FORCEINLINE HRESULT IEnumMediaTypes_Next(IEnumMediaTypes* This,ULONG cMediaTypes,AM_MEDIA_TYPE **ppMediaTypes,ULONG *pcFetched) {
   1152     return This->lpVtbl->Next(This,cMediaTypes,ppMediaTypes,pcFetched);
   1153 }
   1154 static FORCEINLINE HRESULT IEnumMediaTypes_Skip(IEnumMediaTypes* This,ULONG cMediaTypes) {
   1155     return This->lpVtbl->Skip(This,cMediaTypes);
   1156 }
   1157 static FORCEINLINE HRESULT IEnumMediaTypes_Reset(IEnumMediaTypes* This) {
   1158     return This->lpVtbl->Reset(This);
   1159 }
   1160 static FORCEINLINE HRESULT IEnumMediaTypes_Clone(IEnumMediaTypes* This,IEnumMediaTypes **ppEnum) {
   1161     return This->lpVtbl->Clone(This,ppEnum);
   1162 }
   1163 #endif
   1164 #endif
   1165 
   1166 #endif
   1167 
   1168 HRESULT STDMETHODCALLTYPE IEnumMediaTypes_Next_Proxy(
   1169     IEnumMediaTypes* This,
   1170     ULONG cMediaTypes,
   1171     AM_MEDIA_TYPE **ppMediaTypes,
   1172     ULONG *pcFetched);
   1173 void __RPC_STUB IEnumMediaTypes_Next_Stub(
   1174     IRpcStubBuffer* This,
   1175     IRpcChannelBuffer* pRpcChannelBuffer,
   1176     PRPC_MESSAGE pRpcMessage,
   1177     DWORD* pdwStubPhase);
   1178 HRESULT STDMETHODCALLTYPE IEnumMediaTypes_Skip_Proxy(
   1179     IEnumMediaTypes* This,
   1180     ULONG cMediaTypes);
   1181 void __RPC_STUB IEnumMediaTypes_Skip_Stub(
   1182     IRpcStubBuffer* This,
   1183     IRpcChannelBuffer* pRpcChannelBuffer,
   1184     PRPC_MESSAGE pRpcMessage,
   1185     DWORD* pdwStubPhase);
   1186 HRESULT STDMETHODCALLTYPE IEnumMediaTypes_Reset_Proxy(
   1187     IEnumMediaTypes* This);
   1188 void __RPC_STUB IEnumMediaTypes_Reset_Stub(
   1189     IRpcStubBuffer* This,
   1190     IRpcChannelBuffer* pRpcChannelBuffer,
   1191     PRPC_MESSAGE pRpcMessage,
   1192     DWORD* pdwStubPhase);
   1193 HRESULT STDMETHODCALLTYPE IEnumMediaTypes_Clone_Proxy(
   1194     IEnumMediaTypes* This,
   1195     IEnumMediaTypes **ppEnum);
   1196 void __RPC_STUB IEnumMediaTypes_Clone_Stub(
   1197     IRpcStubBuffer* This,
   1198     IRpcChannelBuffer* pRpcChannelBuffer,
   1199     PRPC_MESSAGE pRpcMessage,
   1200     DWORD* pdwStubPhase);
   1201 
   1202 #endif  /* __IEnumMediaTypes_INTERFACE_DEFINED__ */
   1203 
   1204 typedef IEnumMediaTypes *PENUMMEDIATYPES;
   1205 
   1206 /*****************************************************************************
   1207  * IFilterGraph interface
   1208  */
   1209 #ifndef __IFilterGraph_INTERFACE_DEFINED__
   1210 #define __IFilterGraph_INTERFACE_DEFINED__
   1211 
   1212 DEFINE_GUID(IID_IFilterGraph, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   1213 #if defined(__cplusplus) && !defined(CINTERFACE)
   1214 MIDL_INTERFACE("56a8689f-0ad4-11ce-b03a-0020af0ba770")
   1215 IFilterGraph : public IUnknown
   1216 {
   1217     virtual HRESULT STDMETHODCALLTYPE AddFilter(
   1218         IBaseFilter *pFilter,
   1219         LPCWSTR pName) = 0;
   1220 
   1221     virtual HRESULT STDMETHODCALLTYPE RemoveFilter(
   1222         IBaseFilter *pFilter) = 0;
   1223 
   1224     virtual HRESULT STDMETHODCALLTYPE EnumFilters(
   1225         IEnumFilters **ppEnum) = 0;
   1226 
   1227     virtual HRESULT STDMETHODCALLTYPE FindFilterByName(
   1228         LPCWSTR pName,
   1229         IBaseFilter **ppFilter) = 0;
   1230 
   1231     virtual HRESULT STDMETHODCALLTYPE ConnectDirect(
   1232         IPin *ppinOut,
   1233         IPin *ppinIn,
   1234         const AM_MEDIA_TYPE *pmt) = 0;
   1235 
   1236     virtual HRESULT STDMETHODCALLTYPE Reconnect(
   1237         IPin *ppin) = 0;
   1238 
   1239     virtual HRESULT STDMETHODCALLTYPE Disconnect(
   1240         IPin *ppin) = 0;
   1241 
   1242     virtual HRESULT STDMETHODCALLTYPE SetDefaultSyncSource(
   1243         ) = 0;
   1244 
   1245 };
   1246 #ifdef __CRT_UUID_DECL
   1247 __CRT_UUID_DECL(IFilterGraph, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   1248 #endif
   1249 #else
   1250 typedef struct IFilterGraphVtbl {
   1251     BEGIN_INTERFACE
   1252 
   1253     /*** IUnknown methods ***/
   1254     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1255         IFilterGraph* This,
   1256         REFIID riid,
   1257         void **ppvObject);
   1258 
   1259     ULONG (STDMETHODCALLTYPE *AddRef)(
   1260         IFilterGraph* This);
   1261 
   1262     ULONG (STDMETHODCALLTYPE *Release)(
   1263         IFilterGraph* This);
   1264 
   1265     /*** IFilterGraph methods ***/
   1266     HRESULT (STDMETHODCALLTYPE *AddFilter)(
   1267         IFilterGraph* This,
   1268         IBaseFilter *pFilter,
   1269         LPCWSTR pName);
   1270 
   1271     HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
   1272         IFilterGraph* This,
   1273         IBaseFilter *pFilter);
   1274 
   1275     HRESULT (STDMETHODCALLTYPE *EnumFilters)(
   1276         IFilterGraph* This,
   1277         IEnumFilters **ppEnum);
   1278 
   1279     HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
   1280         IFilterGraph* This,
   1281         LPCWSTR pName,
   1282         IBaseFilter **ppFilter);
   1283 
   1284     HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
   1285         IFilterGraph* This,
   1286         IPin *ppinOut,
   1287         IPin *ppinIn,
   1288         const AM_MEDIA_TYPE *pmt);
   1289 
   1290     HRESULT (STDMETHODCALLTYPE *Reconnect)(
   1291         IFilterGraph* This,
   1292         IPin *ppin);
   1293 
   1294     HRESULT (STDMETHODCALLTYPE *Disconnect)(
   1295         IFilterGraph* This,
   1296         IPin *ppin);
   1297 
   1298     HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
   1299         IFilterGraph* This);
   1300 
   1301     END_INTERFACE
   1302 } IFilterGraphVtbl;
   1303 interface IFilterGraph {
   1304     CONST_VTBL IFilterGraphVtbl* lpVtbl;
   1305 };
   1306 
   1307 #ifdef COBJMACROS
   1308 #ifndef WIDL_C_INLINE_WRAPPERS
   1309 /*** IUnknown methods ***/
   1310 #define IFilterGraph_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1311 #define IFilterGraph_AddRef(This) (This)->lpVtbl->AddRef(This)
   1312 #define IFilterGraph_Release(This) (This)->lpVtbl->Release(This)
   1313 /*** IFilterGraph methods ***/
   1314 #define IFilterGraph_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
   1315 #define IFilterGraph_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
   1316 #define IFilterGraph_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
   1317 #define IFilterGraph_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
   1318 #define IFilterGraph_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
   1319 #define IFilterGraph_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
   1320 #define IFilterGraph_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
   1321 #define IFilterGraph_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
   1322 #else
   1323 /*** IUnknown methods ***/
   1324 static FORCEINLINE HRESULT IFilterGraph_QueryInterface(IFilterGraph* This,REFIID riid,void **ppvObject) {
   1325     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1326 }
   1327 static FORCEINLINE ULONG IFilterGraph_AddRef(IFilterGraph* This) {
   1328     return This->lpVtbl->AddRef(This);
   1329 }
   1330 static FORCEINLINE ULONG IFilterGraph_Release(IFilterGraph* This) {
   1331     return This->lpVtbl->Release(This);
   1332 }
   1333 /*** IFilterGraph methods ***/
   1334 static FORCEINLINE HRESULT IFilterGraph_AddFilter(IFilterGraph* This,IBaseFilter *pFilter,LPCWSTR pName) {
   1335     return This->lpVtbl->AddFilter(This,pFilter,pName);
   1336 }
   1337 static FORCEINLINE HRESULT IFilterGraph_RemoveFilter(IFilterGraph* This,IBaseFilter *pFilter) {
   1338     return This->lpVtbl->RemoveFilter(This,pFilter);
   1339 }
   1340 static FORCEINLINE HRESULT IFilterGraph_EnumFilters(IFilterGraph* This,IEnumFilters **ppEnum) {
   1341     return This->lpVtbl->EnumFilters(This,ppEnum);
   1342 }
   1343 static FORCEINLINE HRESULT IFilterGraph_FindFilterByName(IFilterGraph* This,LPCWSTR pName,IBaseFilter **ppFilter) {
   1344     return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
   1345 }
   1346 static FORCEINLINE HRESULT IFilterGraph_ConnectDirect(IFilterGraph* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) {
   1347     return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt);
   1348 }
   1349 static FORCEINLINE HRESULT IFilterGraph_Reconnect(IFilterGraph* This,IPin *ppin) {
   1350     return This->lpVtbl->Reconnect(This,ppin);
   1351 }
   1352 static FORCEINLINE HRESULT IFilterGraph_Disconnect(IFilterGraph* This,IPin *ppin) {
   1353     return This->lpVtbl->Disconnect(This,ppin);
   1354 }
   1355 static FORCEINLINE HRESULT IFilterGraph_SetDefaultSyncSource(IFilterGraph* This) {
   1356     return This->lpVtbl->SetDefaultSyncSource(This);
   1357 }
   1358 #endif
   1359 #endif
   1360 
   1361 #endif
   1362 
   1363 HRESULT STDMETHODCALLTYPE IFilterGraph_AddFilter_Proxy(
   1364     IFilterGraph* This,
   1365     IBaseFilter *pFilter,
   1366     LPCWSTR pName);
   1367 void __RPC_STUB IFilterGraph_AddFilter_Stub(
   1368     IRpcStubBuffer* This,
   1369     IRpcChannelBuffer* pRpcChannelBuffer,
   1370     PRPC_MESSAGE pRpcMessage,
   1371     DWORD* pdwStubPhase);
   1372 HRESULT STDMETHODCALLTYPE IFilterGraph_RemoveFilter_Proxy(
   1373     IFilterGraph* This,
   1374     IBaseFilter *pFilter);
   1375 void __RPC_STUB IFilterGraph_RemoveFilter_Stub(
   1376     IRpcStubBuffer* This,
   1377     IRpcChannelBuffer* pRpcChannelBuffer,
   1378     PRPC_MESSAGE pRpcMessage,
   1379     DWORD* pdwStubPhase);
   1380 HRESULT STDMETHODCALLTYPE IFilterGraph_EnumFilters_Proxy(
   1381     IFilterGraph* This,
   1382     IEnumFilters **ppEnum);
   1383 void __RPC_STUB IFilterGraph_EnumFilters_Stub(
   1384     IRpcStubBuffer* This,
   1385     IRpcChannelBuffer* pRpcChannelBuffer,
   1386     PRPC_MESSAGE pRpcMessage,
   1387     DWORD* pdwStubPhase);
   1388 HRESULT STDMETHODCALLTYPE IFilterGraph_FindFilterByName_Proxy(
   1389     IFilterGraph* This,
   1390     LPCWSTR pName,
   1391     IBaseFilter **ppFilter);
   1392 void __RPC_STUB IFilterGraph_FindFilterByName_Stub(
   1393     IRpcStubBuffer* This,
   1394     IRpcChannelBuffer* pRpcChannelBuffer,
   1395     PRPC_MESSAGE pRpcMessage,
   1396     DWORD* pdwStubPhase);
   1397 HRESULT STDMETHODCALLTYPE IFilterGraph_ConnectDirect_Proxy(
   1398     IFilterGraph* This,
   1399     IPin *ppinOut,
   1400     IPin *ppinIn,
   1401     const AM_MEDIA_TYPE *pmt);
   1402 void __RPC_STUB IFilterGraph_ConnectDirect_Stub(
   1403     IRpcStubBuffer* This,
   1404     IRpcChannelBuffer* pRpcChannelBuffer,
   1405     PRPC_MESSAGE pRpcMessage,
   1406     DWORD* pdwStubPhase);
   1407 HRESULT STDMETHODCALLTYPE IFilterGraph_Reconnect_Proxy(
   1408     IFilterGraph* This,
   1409     IPin *ppin);
   1410 void __RPC_STUB IFilterGraph_Reconnect_Stub(
   1411     IRpcStubBuffer* This,
   1412     IRpcChannelBuffer* pRpcChannelBuffer,
   1413     PRPC_MESSAGE pRpcMessage,
   1414     DWORD* pdwStubPhase);
   1415 HRESULT STDMETHODCALLTYPE IFilterGraph_Disconnect_Proxy(
   1416     IFilterGraph* This,
   1417     IPin *ppin);
   1418 void __RPC_STUB IFilterGraph_Disconnect_Stub(
   1419     IRpcStubBuffer* This,
   1420     IRpcChannelBuffer* pRpcChannelBuffer,
   1421     PRPC_MESSAGE pRpcMessage,
   1422     DWORD* pdwStubPhase);
   1423 HRESULT STDMETHODCALLTYPE IFilterGraph_SetDefaultSyncSource_Proxy(
   1424     IFilterGraph* This);
   1425 void __RPC_STUB IFilterGraph_SetDefaultSyncSource_Stub(
   1426     IRpcStubBuffer* This,
   1427     IRpcChannelBuffer* pRpcChannelBuffer,
   1428     PRPC_MESSAGE pRpcMessage,
   1429     DWORD* pdwStubPhase);
   1430 
   1431 #endif  /* __IFilterGraph_INTERFACE_DEFINED__ */
   1432 
   1433 typedef IFilterGraph *PFILTERGRAPH;
   1434 
   1435 /*****************************************************************************
   1436  * IEnumFilters interface
   1437  */
   1438 #ifndef __IEnumFilters_INTERFACE_DEFINED__
   1439 #define __IEnumFilters_INTERFACE_DEFINED__
   1440 
   1441 DEFINE_GUID(IID_IEnumFilters, 0x56a86893, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   1442 #if defined(__cplusplus) && !defined(CINTERFACE)
   1443 MIDL_INTERFACE("56a86893-0ad4-11ce-b03a-0020af0ba770")
   1444 IEnumFilters : public IUnknown
   1445 {
   1446     virtual HRESULT STDMETHODCALLTYPE Next(
   1447         ULONG cFilters,
   1448         IBaseFilter **ppFilter,
   1449         ULONG *pcFetched) = 0;
   1450 
   1451     virtual HRESULT STDMETHODCALLTYPE Skip(
   1452         ULONG cFilters) = 0;
   1453 
   1454     virtual HRESULT STDMETHODCALLTYPE Reset(
   1455         ) = 0;
   1456 
   1457     virtual HRESULT STDMETHODCALLTYPE Clone(
   1458         IEnumFilters **ppEnum) = 0;
   1459 
   1460 };
   1461 #ifdef __CRT_UUID_DECL
   1462 __CRT_UUID_DECL(IEnumFilters, 0x56a86893, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   1463 #endif
   1464 #else
   1465 typedef struct IEnumFiltersVtbl {
   1466     BEGIN_INTERFACE
   1467 
   1468     /*** IUnknown methods ***/
   1469     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1470         IEnumFilters* This,
   1471         REFIID riid,
   1472         void **ppvObject);
   1473 
   1474     ULONG (STDMETHODCALLTYPE *AddRef)(
   1475         IEnumFilters* This);
   1476 
   1477     ULONG (STDMETHODCALLTYPE *Release)(
   1478         IEnumFilters* This);
   1479 
   1480     /*** IEnumFilters methods ***/
   1481     HRESULT (STDMETHODCALLTYPE *Next)(
   1482         IEnumFilters* This,
   1483         ULONG cFilters,
   1484         IBaseFilter **ppFilter,
   1485         ULONG *pcFetched);
   1486 
   1487     HRESULT (STDMETHODCALLTYPE *Skip)(
   1488         IEnumFilters* This,
   1489         ULONG cFilters);
   1490 
   1491     HRESULT (STDMETHODCALLTYPE *Reset)(
   1492         IEnumFilters* This);
   1493 
   1494     HRESULT (STDMETHODCALLTYPE *Clone)(
   1495         IEnumFilters* This,
   1496         IEnumFilters **ppEnum);
   1497 
   1498     END_INTERFACE
   1499 } IEnumFiltersVtbl;
   1500 interface IEnumFilters {
   1501     CONST_VTBL IEnumFiltersVtbl* lpVtbl;
   1502 };
   1503 
   1504 #ifdef COBJMACROS
   1505 #ifndef WIDL_C_INLINE_WRAPPERS
   1506 /*** IUnknown methods ***/
   1507 #define IEnumFilters_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1508 #define IEnumFilters_AddRef(This) (This)->lpVtbl->AddRef(This)
   1509 #define IEnumFilters_Release(This) (This)->lpVtbl->Release(This)
   1510 /*** IEnumFilters methods ***/
   1511 #define IEnumFilters_Next(This,cFilters,ppFilter,pcFetched) (This)->lpVtbl->Next(This,cFilters,ppFilter,pcFetched)
   1512 #define IEnumFilters_Skip(This,cFilters) (This)->lpVtbl->Skip(This,cFilters)
   1513 #define IEnumFilters_Reset(This) (This)->lpVtbl->Reset(This)
   1514 #define IEnumFilters_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
   1515 #else
   1516 /*** IUnknown methods ***/
   1517 static FORCEINLINE HRESULT IEnumFilters_QueryInterface(IEnumFilters* This,REFIID riid,void **ppvObject) {
   1518     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1519 }
   1520 static FORCEINLINE ULONG IEnumFilters_AddRef(IEnumFilters* This) {
   1521     return This->lpVtbl->AddRef(This);
   1522 }
   1523 static FORCEINLINE ULONG IEnumFilters_Release(IEnumFilters* This) {
   1524     return This->lpVtbl->Release(This);
   1525 }
   1526 /*** IEnumFilters methods ***/
   1527 static FORCEINLINE HRESULT IEnumFilters_Next(IEnumFilters* This,ULONG cFilters,IBaseFilter **ppFilter,ULONG *pcFetched) {
   1528     return This->lpVtbl->Next(This,cFilters,ppFilter,pcFetched);
   1529 }
   1530 static FORCEINLINE HRESULT IEnumFilters_Skip(IEnumFilters* This,ULONG cFilters) {
   1531     return This->lpVtbl->Skip(This,cFilters);
   1532 }
   1533 static FORCEINLINE HRESULT IEnumFilters_Reset(IEnumFilters* This) {
   1534     return This->lpVtbl->Reset(This);
   1535 }
   1536 static FORCEINLINE HRESULT IEnumFilters_Clone(IEnumFilters* This,IEnumFilters **ppEnum) {
   1537     return This->lpVtbl->Clone(This,ppEnum);
   1538 }
   1539 #endif
   1540 #endif
   1541 
   1542 #endif
   1543 
   1544 HRESULT STDMETHODCALLTYPE IEnumFilters_Next_Proxy(
   1545     IEnumFilters* This,
   1546     ULONG cFilters,
   1547     IBaseFilter **ppFilter,
   1548     ULONG *pcFetched);
   1549 void __RPC_STUB IEnumFilters_Next_Stub(
   1550     IRpcStubBuffer* This,
   1551     IRpcChannelBuffer* pRpcChannelBuffer,
   1552     PRPC_MESSAGE pRpcMessage,
   1553     DWORD* pdwStubPhase);
   1554 HRESULT STDMETHODCALLTYPE IEnumFilters_Skip_Proxy(
   1555     IEnumFilters* This,
   1556     ULONG cFilters);
   1557 void __RPC_STUB IEnumFilters_Skip_Stub(
   1558     IRpcStubBuffer* This,
   1559     IRpcChannelBuffer* pRpcChannelBuffer,
   1560     PRPC_MESSAGE pRpcMessage,
   1561     DWORD* pdwStubPhase);
   1562 HRESULT STDMETHODCALLTYPE IEnumFilters_Reset_Proxy(
   1563     IEnumFilters* This);
   1564 void __RPC_STUB IEnumFilters_Reset_Stub(
   1565     IRpcStubBuffer* This,
   1566     IRpcChannelBuffer* pRpcChannelBuffer,
   1567     PRPC_MESSAGE pRpcMessage,
   1568     DWORD* pdwStubPhase);
   1569 HRESULT STDMETHODCALLTYPE IEnumFilters_Clone_Proxy(
   1570     IEnumFilters* This,
   1571     IEnumFilters **ppEnum);
   1572 void __RPC_STUB IEnumFilters_Clone_Stub(
   1573     IRpcStubBuffer* This,
   1574     IRpcChannelBuffer* pRpcChannelBuffer,
   1575     PRPC_MESSAGE pRpcMessage,
   1576     DWORD* pdwStubPhase);
   1577 
   1578 #endif  /* __IEnumFilters_INTERFACE_DEFINED__ */
   1579 
   1580 typedef IEnumFilters *PENUMFILTERS;
   1581 
   1582 /*****************************************************************************
   1583  * IMediaFilter interface
   1584  */
   1585 #ifndef __IMediaFilter_INTERFACE_DEFINED__
   1586 #define __IMediaFilter_INTERFACE_DEFINED__
   1587 
   1588 typedef enum _FilterState {
   1589     State_Stopped = 0,
   1590     State_Paused = 1,
   1591     State_Running = 2
   1592 } FILTER_STATE;
   1593 
   1594 DEFINE_GUID(IID_IMediaFilter, 0x56a86899, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   1595 #if defined(__cplusplus) && !defined(CINTERFACE)
   1596 MIDL_INTERFACE("56a86899-0ad4-11ce-b03a-0020af0ba770")
   1597 IMediaFilter : public IPersist
   1598 {
   1599     virtual HRESULT STDMETHODCALLTYPE Stop(
   1600         ) = 0;
   1601 
   1602     virtual HRESULT STDMETHODCALLTYPE Pause(
   1603         ) = 0;
   1604 
   1605     virtual HRESULT STDMETHODCALLTYPE Run(
   1606         REFERENCE_TIME tStart) = 0;
   1607 
   1608     virtual HRESULT STDMETHODCALLTYPE GetState(
   1609         DWORD dwMilliSecsTimeout,
   1610         FILTER_STATE *State) = 0;
   1611 
   1612     virtual HRESULT STDMETHODCALLTYPE SetSyncSource(
   1613         IReferenceClock *pClock) = 0;
   1614 
   1615     virtual HRESULT STDMETHODCALLTYPE GetSyncSource(
   1616         IReferenceClock **pClock) = 0;
   1617 
   1618 };
   1619 #ifdef __CRT_UUID_DECL
   1620 __CRT_UUID_DECL(IMediaFilter, 0x56a86899, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   1621 #endif
   1622 #else
   1623 typedef struct IMediaFilterVtbl {
   1624     BEGIN_INTERFACE
   1625 
   1626     /*** IUnknown methods ***/
   1627     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1628         IMediaFilter* This,
   1629         REFIID riid,
   1630         void **ppvObject);
   1631 
   1632     ULONG (STDMETHODCALLTYPE *AddRef)(
   1633         IMediaFilter* This);
   1634 
   1635     ULONG (STDMETHODCALLTYPE *Release)(
   1636         IMediaFilter* This);
   1637 
   1638     /*** IPersist methods ***/
   1639     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   1640         IMediaFilter* This,
   1641         CLSID *pClassID);
   1642 
   1643     /*** IMediaFilter methods ***/
   1644     HRESULT (STDMETHODCALLTYPE *Stop)(
   1645         IMediaFilter* This);
   1646 
   1647     HRESULT (STDMETHODCALLTYPE *Pause)(
   1648         IMediaFilter* This);
   1649 
   1650     HRESULT (STDMETHODCALLTYPE *Run)(
   1651         IMediaFilter* This,
   1652         REFERENCE_TIME tStart);
   1653 
   1654     HRESULT (STDMETHODCALLTYPE *GetState)(
   1655         IMediaFilter* This,
   1656         DWORD dwMilliSecsTimeout,
   1657         FILTER_STATE *State);
   1658 
   1659     HRESULT (STDMETHODCALLTYPE *SetSyncSource)(
   1660         IMediaFilter* This,
   1661         IReferenceClock *pClock);
   1662 
   1663     HRESULT (STDMETHODCALLTYPE *GetSyncSource)(
   1664         IMediaFilter* This,
   1665         IReferenceClock **pClock);
   1666 
   1667     END_INTERFACE
   1668 } IMediaFilterVtbl;
   1669 interface IMediaFilter {
   1670     CONST_VTBL IMediaFilterVtbl* lpVtbl;
   1671 };
   1672 
   1673 #ifdef COBJMACROS
   1674 #ifndef WIDL_C_INLINE_WRAPPERS
   1675 /*** IUnknown methods ***/
   1676 #define IMediaFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1677 #define IMediaFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
   1678 #define IMediaFilter_Release(This) (This)->lpVtbl->Release(This)
   1679 /*** IPersist methods ***/
   1680 #define IMediaFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   1681 /*** IMediaFilter methods ***/
   1682 #define IMediaFilter_Stop(This) (This)->lpVtbl->Stop(This)
   1683 #define IMediaFilter_Pause(This) (This)->lpVtbl->Pause(This)
   1684 #define IMediaFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
   1685 #define IMediaFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State)
   1686 #define IMediaFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
   1687 #define IMediaFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock)
   1688 #else
   1689 /*** IUnknown methods ***/
   1690 static FORCEINLINE HRESULT IMediaFilter_QueryInterface(IMediaFilter* This,REFIID riid,void **ppvObject) {
   1691     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1692 }
   1693 static FORCEINLINE ULONG IMediaFilter_AddRef(IMediaFilter* This) {
   1694     return This->lpVtbl->AddRef(This);
   1695 }
   1696 static FORCEINLINE ULONG IMediaFilter_Release(IMediaFilter* This) {
   1697     return This->lpVtbl->Release(This);
   1698 }
   1699 /*** IPersist methods ***/
   1700 static FORCEINLINE HRESULT IMediaFilter_GetClassID(IMediaFilter* This,CLSID *pClassID) {
   1701     return This->lpVtbl->GetClassID(This,pClassID);
   1702 }
   1703 /*** IMediaFilter methods ***/
   1704 static FORCEINLINE HRESULT IMediaFilter_Stop(IMediaFilter* This) {
   1705     return This->lpVtbl->Stop(This);
   1706 }
   1707 static FORCEINLINE HRESULT IMediaFilter_Pause(IMediaFilter* This) {
   1708     return This->lpVtbl->Pause(This);
   1709 }
   1710 static FORCEINLINE HRESULT IMediaFilter_Run(IMediaFilter* This,REFERENCE_TIME tStart) {
   1711     return This->lpVtbl->Run(This,tStart);
   1712 }
   1713 static FORCEINLINE HRESULT IMediaFilter_GetState(IMediaFilter* This,DWORD dwMilliSecsTimeout,FILTER_STATE *State) {
   1714     return This->lpVtbl->GetState(This,dwMilliSecsTimeout,State);
   1715 }
   1716 static FORCEINLINE HRESULT IMediaFilter_SetSyncSource(IMediaFilter* This,IReferenceClock *pClock) {
   1717     return This->lpVtbl->SetSyncSource(This,pClock);
   1718 }
   1719 static FORCEINLINE HRESULT IMediaFilter_GetSyncSource(IMediaFilter* This,IReferenceClock **pClock) {
   1720     return This->lpVtbl->GetSyncSource(This,pClock);
   1721 }
   1722 #endif
   1723 #endif
   1724 
   1725 #endif
   1726 
   1727 HRESULT STDMETHODCALLTYPE IMediaFilter_Stop_Proxy(
   1728     IMediaFilter* This);
   1729 void __RPC_STUB IMediaFilter_Stop_Stub(
   1730     IRpcStubBuffer* This,
   1731     IRpcChannelBuffer* pRpcChannelBuffer,
   1732     PRPC_MESSAGE pRpcMessage,
   1733     DWORD* pdwStubPhase);
   1734 HRESULT STDMETHODCALLTYPE IMediaFilter_Pause_Proxy(
   1735     IMediaFilter* This);
   1736 void __RPC_STUB IMediaFilter_Pause_Stub(
   1737     IRpcStubBuffer* This,
   1738     IRpcChannelBuffer* pRpcChannelBuffer,
   1739     PRPC_MESSAGE pRpcMessage,
   1740     DWORD* pdwStubPhase);
   1741 HRESULT STDMETHODCALLTYPE IMediaFilter_Run_Proxy(
   1742     IMediaFilter* This,
   1743     REFERENCE_TIME tStart);
   1744 void __RPC_STUB IMediaFilter_Run_Stub(
   1745     IRpcStubBuffer* This,
   1746     IRpcChannelBuffer* pRpcChannelBuffer,
   1747     PRPC_MESSAGE pRpcMessage,
   1748     DWORD* pdwStubPhase);
   1749 HRESULT STDMETHODCALLTYPE IMediaFilter_GetState_Proxy(
   1750     IMediaFilter* This,
   1751     DWORD dwMilliSecsTimeout,
   1752     FILTER_STATE *State);
   1753 void __RPC_STUB IMediaFilter_GetState_Stub(
   1754     IRpcStubBuffer* This,
   1755     IRpcChannelBuffer* pRpcChannelBuffer,
   1756     PRPC_MESSAGE pRpcMessage,
   1757     DWORD* pdwStubPhase);
   1758 HRESULT STDMETHODCALLTYPE IMediaFilter_SetSyncSource_Proxy(
   1759     IMediaFilter* This,
   1760     IReferenceClock *pClock);
   1761 void __RPC_STUB IMediaFilter_SetSyncSource_Stub(
   1762     IRpcStubBuffer* This,
   1763     IRpcChannelBuffer* pRpcChannelBuffer,
   1764     PRPC_MESSAGE pRpcMessage,
   1765     DWORD* pdwStubPhase);
   1766 HRESULT STDMETHODCALLTYPE IMediaFilter_GetSyncSource_Proxy(
   1767     IMediaFilter* This,
   1768     IReferenceClock **pClock);
   1769 void __RPC_STUB IMediaFilter_GetSyncSource_Stub(
   1770     IRpcStubBuffer* This,
   1771     IRpcChannelBuffer* pRpcChannelBuffer,
   1772     PRPC_MESSAGE pRpcMessage,
   1773     DWORD* pdwStubPhase);
   1774 
   1775 #endif  /* __IMediaFilter_INTERFACE_DEFINED__ */
   1776 
   1777 typedef IMediaFilter *PMEDIAFILTER;
   1778 
   1779 /*****************************************************************************
   1780  * IBaseFilter interface
   1781  */
   1782 #ifndef __IBaseFilter_INTERFACE_DEFINED__
   1783 #define __IBaseFilter_INTERFACE_DEFINED__
   1784 
   1785 typedef struct _FilterInfo {
   1786     WCHAR achName[128];
   1787     IFilterGraph *pGraph;
   1788 } FILTER_INFO;
   1789 
   1790 DEFINE_GUID(IID_IBaseFilter, 0x56a86895, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   1791 #if defined(__cplusplus) && !defined(CINTERFACE)
   1792 MIDL_INTERFACE("56a86895-0ad4-11ce-b03a-0020af0ba770")
   1793 IBaseFilter : public IMediaFilter
   1794 {
   1795     virtual HRESULT STDMETHODCALLTYPE EnumPins(
   1796         IEnumPins **ppEnum) = 0;
   1797 
   1798     virtual HRESULT STDMETHODCALLTYPE FindPin(
   1799         LPCWSTR Id,
   1800         IPin **ppPin) = 0;
   1801 
   1802     virtual HRESULT STDMETHODCALLTYPE QueryFilterInfo(
   1803         FILTER_INFO *pInfo) = 0;
   1804 
   1805     virtual HRESULT STDMETHODCALLTYPE JoinFilterGraph(
   1806         IFilterGraph *pGraph,
   1807         LPCWSTR pName) = 0;
   1808 
   1809     virtual HRESULT STDMETHODCALLTYPE QueryVendorInfo(
   1810         LPWSTR *pVendorInfo) = 0;
   1811 
   1812 };
   1813 #ifdef __CRT_UUID_DECL
   1814 __CRT_UUID_DECL(IBaseFilter, 0x56a86895, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   1815 #endif
   1816 #else
   1817 typedef struct IBaseFilterVtbl {
   1818     BEGIN_INTERFACE
   1819 
   1820     /*** IUnknown methods ***/
   1821     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1822         IBaseFilter* This,
   1823         REFIID riid,
   1824         void **ppvObject);
   1825 
   1826     ULONG (STDMETHODCALLTYPE *AddRef)(
   1827         IBaseFilter* This);
   1828 
   1829     ULONG (STDMETHODCALLTYPE *Release)(
   1830         IBaseFilter* This);
   1831 
   1832     /*** IPersist methods ***/
   1833     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   1834         IBaseFilter* This,
   1835         CLSID *pClassID);
   1836 
   1837     /*** IMediaFilter methods ***/
   1838     HRESULT (STDMETHODCALLTYPE *Stop)(
   1839         IBaseFilter* This);
   1840 
   1841     HRESULT (STDMETHODCALLTYPE *Pause)(
   1842         IBaseFilter* This);
   1843 
   1844     HRESULT (STDMETHODCALLTYPE *Run)(
   1845         IBaseFilter* This,
   1846         REFERENCE_TIME tStart);
   1847 
   1848     HRESULT (STDMETHODCALLTYPE *GetState)(
   1849         IBaseFilter* This,
   1850         DWORD dwMilliSecsTimeout,
   1851         FILTER_STATE *State);
   1852 
   1853     HRESULT (STDMETHODCALLTYPE *SetSyncSource)(
   1854         IBaseFilter* This,
   1855         IReferenceClock *pClock);
   1856 
   1857     HRESULT (STDMETHODCALLTYPE *GetSyncSource)(
   1858         IBaseFilter* This,
   1859         IReferenceClock **pClock);
   1860 
   1861     /*** IBaseFilter methods ***/
   1862     HRESULT (STDMETHODCALLTYPE *EnumPins)(
   1863         IBaseFilter* This,
   1864         IEnumPins **ppEnum);
   1865 
   1866     HRESULT (STDMETHODCALLTYPE *FindPin)(
   1867         IBaseFilter* This,
   1868         LPCWSTR Id,
   1869         IPin **ppPin);
   1870 
   1871     HRESULT (STDMETHODCALLTYPE *QueryFilterInfo)(
   1872         IBaseFilter* This,
   1873         FILTER_INFO *pInfo);
   1874 
   1875     HRESULT (STDMETHODCALLTYPE *JoinFilterGraph)(
   1876         IBaseFilter* This,
   1877         IFilterGraph *pGraph,
   1878         LPCWSTR pName);
   1879 
   1880     HRESULT (STDMETHODCALLTYPE *QueryVendorInfo)(
   1881         IBaseFilter* This,
   1882         LPWSTR *pVendorInfo);
   1883 
   1884     END_INTERFACE
   1885 } IBaseFilterVtbl;
   1886 interface IBaseFilter {
   1887     CONST_VTBL IBaseFilterVtbl* lpVtbl;
   1888 };
   1889 
   1890 #ifdef COBJMACROS
   1891 #ifndef WIDL_C_INLINE_WRAPPERS
   1892 /*** IUnknown methods ***/
   1893 #define IBaseFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1894 #define IBaseFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
   1895 #define IBaseFilter_Release(This) (This)->lpVtbl->Release(This)
   1896 /*** IPersist methods ***/
   1897 #define IBaseFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   1898 /*** IMediaFilter methods ***/
   1899 #define IBaseFilter_Stop(This) (This)->lpVtbl->Stop(This)
   1900 #define IBaseFilter_Pause(This) (This)->lpVtbl->Pause(This)
   1901 #define IBaseFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
   1902 #define IBaseFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State)
   1903 #define IBaseFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
   1904 #define IBaseFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock)
   1905 /*** IBaseFilter methods ***/
   1906 #define IBaseFilter_EnumPins(This,ppEnum) (This)->lpVtbl->EnumPins(This,ppEnum)
   1907 #define IBaseFilter_FindPin(This,Id,ppPin) (This)->lpVtbl->FindPin(This,Id,ppPin)
   1908 #define IBaseFilter_QueryFilterInfo(This,pInfo) (This)->lpVtbl->QueryFilterInfo(This,pInfo)
   1909 #define IBaseFilter_JoinFilterGraph(This,pGraph,pName) (This)->lpVtbl->JoinFilterGraph(This,pGraph,pName)
   1910 #define IBaseFilter_QueryVendorInfo(This,pVendorInfo) (This)->lpVtbl->QueryVendorInfo(This,pVendorInfo)
   1911 #else
   1912 /*** IUnknown methods ***/
   1913 static FORCEINLINE HRESULT IBaseFilter_QueryInterface(IBaseFilter* This,REFIID riid,void **ppvObject) {
   1914     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1915 }
   1916 static FORCEINLINE ULONG IBaseFilter_AddRef(IBaseFilter* This) {
   1917     return This->lpVtbl->AddRef(This);
   1918 }
   1919 static FORCEINLINE ULONG IBaseFilter_Release(IBaseFilter* This) {
   1920     return This->lpVtbl->Release(This);
   1921 }
   1922 /*** IPersist methods ***/
   1923 static FORCEINLINE HRESULT IBaseFilter_GetClassID(IBaseFilter* This,CLSID *pClassID) {
   1924     return This->lpVtbl->GetClassID(This,pClassID);
   1925 }
   1926 /*** IMediaFilter methods ***/
   1927 static FORCEINLINE HRESULT IBaseFilter_Stop(IBaseFilter* This) {
   1928     return This->lpVtbl->Stop(This);
   1929 }
   1930 static FORCEINLINE HRESULT IBaseFilter_Pause(IBaseFilter* This) {
   1931     return This->lpVtbl->Pause(This);
   1932 }
   1933 static FORCEINLINE HRESULT IBaseFilter_Run(IBaseFilter* This,REFERENCE_TIME tStart) {
   1934     return This->lpVtbl->Run(This,tStart);
   1935 }
   1936 static FORCEINLINE HRESULT IBaseFilter_GetState(IBaseFilter* This,DWORD dwMilliSecsTimeout,FILTER_STATE *State) {
   1937     return This->lpVtbl->GetState(This,dwMilliSecsTimeout,State);
   1938 }
   1939 static FORCEINLINE HRESULT IBaseFilter_SetSyncSource(IBaseFilter* This,IReferenceClock *pClock) {
   1940     return This->lpVtbl->SetSyncSource(This,pClock);
   1941 }
   1942 static FORCEINLINE HRESULT IBaseFilter_GetSyncSource(IBaseFilter* This,IReferenceClock **pClock) {
   1943     return This->lpVtbl->GetSyncSource(This,pClock);
   1944 }
   1945 /*** IBaseFilter methods ***/
   1946 static FORCEINLINE HRESULT IBaseFilter_EnumPins(IBaseFilter* This,IEnumPins **ppEnum) {
   1947     return This->lpVtbl->EnumPins(This,ppEnum);
   1948 }
   1949 static FORCEINLINE HRESULT IBaseFilter_FindPin(IBaseFilter* This,LPCWSTR Id,IPin **ppPin) {
   1950     return This->lpVtbl->FindPin(This,Id,ppPin);
   1951 }
   1952 static FORCEINLINE HRESULT IBaseFilter_QueryFilterInfo(IBaseFilter* This,FILTER_INFO *pInfo) {
   1953     return This->lpVtbl->QueryFilterInfo(This,pInfo);
   1954 }
   1955 static FORCEINLINE HRESULT IBaseFilter_JoinFilterGraph(IBaseFilter* This,IFilterGraph *pGraph,LPCWSTR pName) {
   1956     return This->lpVtbl->JoinFilterGraph(This,pGraph,pName);
   1957 }
   1958 static FORCEINLINE HRESULT IBaseFilter_QueryVendorInfo(IBaseFilter* This,LPWSTR *pVendorInfo) {
   1959     return This->lpVtbl->QueryVendorInfo(This,pVendorInfo);
   1960 }
   1961 #endif
   1962 #endif
   1963 
   1964 #endif
   1965 
   1966 HRESULT STDMETHODCALLTYPE IBaseFilter_EnumPins_Proxy(
   1967     IBaseFilter* This,
   1968     IEnumPins **ppEnum);
   1969 void __RPC_STUB IBaseFilter_EnumPins_Stub(
   1970     IRpcStubBuffer* This,
   1971     IRpcChannelBuffer* pRpcChannelBuffer,
   1972     PRPC_MESSAGE pRpcMessage,
   1973     DWORD* pdwStubPhase);
   1974 HRESULT STDMETHODCALLTYPE IBaseFilter_FindPin_Proxy(
   1975     IBaseFilter* This,
   1976     LPCWSTR Id,
   1977     IPin **ppPin);
   1978 void __RPC_STUB IBaseFilter_FindPin_Stub(
   1979     IRpcStubBuffer* This,
   1980     IRpcChannelBuffer* pRpcChannelBuffer,
   1981     PRPC_MESSAGE pRpcMessage,
   1982     DWORD* pdwStubPhase);
   1983 HRESULT STDMETHODCALLTYPE IBaseFilter_QueryFilterInfo_Proxy(
   1984     IBaseFilter* This,
   1985     FILTER_INFO *pInfo);
   1986 void __RPC_STUB IBaseFilter_QueryFilterInfo_Stub(
   1987     IRpcStubBuffer* This,
   1988     IRpcChannelBuffer* pRpcChannelBuffer,
   1989     PRPC_MESSAGE pRpcMessage,
   1990     DWORD* pdwStubPhase);
   1991 HRESULT STDMETHODCALLTYPE IBaseFilter_JoinFilterGraph_Proxy(
   1992     IBaseFilter* This,
   1993     IFilterGraph *pGraph,
   1994     LPCWSTR pName);
   1995 void __RPC_STUB IBaseFilter_JoinFilterGraph_Stub(
   1996     IRpcStubBuffer* This,
   1997     IRpcChannelBuffer* pRpcChannelBuffer,
   1998     PRPC_MESSAGE pRpcMessage,
   1999     DWORD* pdwStubPhase);
   2000 HRESULT STDMETHODCALLTYPE IBaseFilter_QueryVendorInfo_Proxy(
   2001     IBaseFilter* This,
   2002     LPWSTR *pVendorInfo);
   2003 void __RPC_STUB IBaseFilter_QueryVendorInfo_Stub(
   2004     IRpcStubBuffer* This,
   2005     IRpcChannelBuffer* pRpcChannelBuffer,
   2006     PRPC_MESSAGE pRpcMessage,
   2007     DWORD* pdwStubPhase);
   2008 
   2009 #endif  /* __IBaseFilter_INTERFACE_DEFINED__ */
   2010 
   2011 typedef IBaseFilter *PFILTER;
   2012 
   2013 /*****************************************************************************
   2014  * IReferenceClock interface
   2015  */
   2016 #ifndef __IReferenceClock_INTERFACE_DEFINED__
   2017 #define __IReferenceClock_INTERFACE_DEFINED__
   2018 
   2019 DEFINE_GUID(IID_IReferenceClock, 0x56a86897, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   2020 #if defined(__cplusplus) && !defined(CINTERFACE)
   2021 MIDL_INTERFACE("56a86897-0ad4-11ce-b03a-0020af0ba770")
   2022 IReferenceClock : public IUnknown
   2023 {
   2024     virtual HRESULT STDMETHODCALLTYPE GetTime(
   2025         REFERENCE_TIME *pTime) = 0;
   2026 
   2027     virtual HRESULT STDMETHODCALLTYPE AdviseTime(
   2028         REFERENCE_TIME baseTime,
   2029         REFERENCE_TIME streamTime,
   2030         HEVENT hEvent,
   2031         DWORD_PTR *pdwAdviseCookie) = 0;
   2032 
   2033     virtual HRESULT STDMETHODCALLTYPE AdvisePeriodic(
   2034         REFERENCE_TIME startTime,
   2035         REFERENCE_TIME periodTime,
   2036         HSEMAPHORE hSemaphore,
   2037         DWORD_PTR *pdwAdviseCookie) = 0;
   2038 
   2039     virtual HRESULT STDMETHODCALLTYPE Unadvise(
   2040         DWORD_PTR dwAdviseCookie) = 0;
   2041 
   2042 };
   2043 #ifdef __CRT_UUID_DECL
   2044 __CRT_UUID_DECL(IReferenceClock, 0x56a86897, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   2045 #endif
   2046 #else
   2047 typedef struct IReferenceClockVtbl {
   2048     BEGIN_INTERFACE
   2049 
   2050     /*** IUnknown methods ***/
   2051     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2052         IReferenceClock* This,
   2053         REFIID riid,
   2054         void **ppvObject);
   2055 
   2056     ULONG (STDMETHODCALLTYPE *AddRef)(
   2057         IReferenceClock* This);
   2058 
   2059     ULONG (STDMETHODCALLTYPE *Release)(
   2060         IReferenceClock* This);
   2061 
   2062     /*** IReferenceClock methods ***/
   2063     HRESULT (STDMETHODCALLTYPE *GetTime)(
   2064         IReferenceClock* This,
   2065         REFERENCE_TIME *pTime);
   2066 
   2067     HRESULT (STDMETHODCALLTYPE *AdviseTime)(
   2068         IReferenceClock* This,
   2069         REFERENCE_TIME baseTime,
   2070         REFERENCE_TIME streamTime,
   2071         HEVENT hEvent,
   2072         DWORD_PTR *pdwAdviseCookie);
   2073 
   2074     HRESULT (STDMETHODCALLTYPE *AdvisePeriodic)(
   2075         IReferenceClock* This,
   2076         REFERENCE_TIME startTime,
   2077         REFERENCE_TIME periodTime,
   2078         HSEMAPHORE hSemaphore,
   2079         DWORD_PTR *pdwAdviseCookie);
   2080 
   2081     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   2082         IReferenceClock* This,
   2083         DWORD_PTR dwAdviseCookie);
   2084 
   2085     END_INTERFACE
   2086 } IReferenceClockVtbl;
   2087 interface IReferenceClock {
   2088     CONST_VTBL IReferenceClockVtbl* lpVtbl;
   2089 };
   2090 
   2091 #ifdef COBJMACROS
   2092 #ifndef WIDL_C_INLINE_WRAPPERS
   2093 /*** IUnknown methods ***/
   2094 #define IReferenceClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2095 #define IReferenceClock_AddRef(This) (This)->lpVtbl->AddRef(This)
   2096 #define IReferenceClock_Release(This) (This)->lpVtbl->Release(This)
   2097 /*** IReferenceClock methods ***/
   2098 #define IReferenceClock_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
   2099 #define IReferenceClock_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
   2100 #define IReferenceClock_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
   2101 #define IReferenceClock_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
   2102 #else
   2103 /*** IUnknown methods ***/
   2104 static FORCEINLINE HRESULT IReferenceClock_QueryInterface(IReferenceClock* This,REFIID riid,void **ppvObject) {
   2105     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2106 }
   2107 static FORCEINLINE ULONG IReferenceClock_AddRef(IReferenceClock* This) {
   2108     return This->lpVtbl->AddRef(This);
   2109 }
   2110 static FORCEINLINE ULONG IReferenceClock_Release(IReferenceClock* This) {
   2111     return This->lpVtbl->Release(This);
   2112 }
   2113 /*** IReferenceClock methods ***/
   2114 static FORCEINLINE HRESULT IReferenceClock_GetTime(IReferenceClock* This,REFERENCE_TIME *pTime) {
   2115     return This->lpVtbl->GetTime(This,pTime);
   2116 }
   2117 static FORCEINLINE HRESULT IReferenceClock_AdviseTime(IReferenceClock* This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie) {
   2118     return This->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie);
   2119 }
   2120 static FORCEINLINE HRESULT IReferenceClock_AdvisePeriodic(IReferenceClock* This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie) {
   2121     return This->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie);
   2122 }
   2123 static FORCEINLINE HRESULT IReferenceClock_Unadvise(IReferenceClock* This,DWORD_PTR dwAdviseCookie) {
   2124     return This->lpVtbl->Unadvise(This,dwAdviseCookie);
   2125 }
   2126 #endif
   2127 #endif
   2128 
   2129 #endif
   2130 
   2131 HRESULT STDMETHODCALLTYPE IReferenceClock_GetTime_Proxy(
   2132     IReferenceClock* This,
   2133     REFERENCE_TIME *pTime);
   2134 void __RPC_STUB IReferenceClock_GetTime_Stub(
   2135     IRpcStubBuffer* This,
   2136     IRpcChannelBuffer* pRpcChannelBuffer,
   2137     PRPC_MESSAGE pRpcMessage,
   2138     DWORD* pdwStubPhase);
   2139 HRESULT STDMETHODCALLTYPE IReferenceClock_AdviseTime_Proxy(
   2140     IReferenceClock* This,
   2141     REFERENCE_TIME baseTime,
   2142     REFERENCE_TIME streamTime,
   2143     HEVENT hEvent,
   2144     DWORD_PTR *pdwAdviseCookie);
   2145 void __RPC_STUB IReferenceClock_AdviseTime_Stub(
   2146     IRpcStubBuffer* This,
   2147     IRpcChannelBuffer* pRpcChannelBuffer,
   2148     PRPC_MESSAGE pRpcMessage,
   2149     DWORD* pdwStubPhase);
   2150 HRESULT STDMETHODCALLTYPE IReferenceClock_AdvisePeriodic_Proxy(
   2151     IReferenceClock* This,
   2152     REFERENCE_TIME startTime,
   2153     REFERENCE_TIME periodTime,
   2154     HSEMAPHORE hSemaphore,
   2155     DWORD_PTR *pdwAdviseCookie);
   2156 void __RPC_STUB IReferenceClock_AdvisePeriodic_Stub(
   2157     IRpcStubBuffer* This,
   2158     IRpcChannelBuffer* pRpcChannelBuffer,
   2159     PRPC_MESSAGE pRpcMessage,
   2160     DWORD* pdwStubPhase);
   2161 HRESULT STDMETHODCALLTYPE IReferenceClock_Unadvise_Proxy(
   2162     IReferenceClock* This,
   2163     DWORD_PTR dwAdviseCookie);
   2164 void __RPC_STUB IReferenceClock_Unadvise_Stub(
   2165     IRpcStubBuffer* This,
   2166     IRpcChannelBuffer* pRpcChannelBuffer,
   2167     PRPC_MESSAGE pRpcMessage,
   2168     DWORD* pdwStubPhase);
   2169 
   2170 #endif  /* __IReferenceClock_INTERFACE_DEFINED__ */
   2171 
   2172 typedef IReferenceClock *PREFERENCECLOCK;
   2173 
   2174 /*****************************************************************************
   2175  * IReferenceClockTimerControl interface
   2176  */
   2177 #ifndef __IReferenceClockTimerControl_INTERFACE_DEFINED__
   2178 #define __IReferenceClockTimerControl_INTERFACE_DEFINED__
   2179 
   2180 DEFINE_GUID(IID_IReferenceClockTimerControl, 0xebec459c, 0x2eca, 0x4d42, 0xa8,0xaf, 0x30,0xdf,0x55,0x76,0x14,0xb8);
   2181 #if defined(__cplusplus) && !defined(CINTERFACE)
   2182 MIDL_INTERFACE("ebec459c-2eca-4d42-a8af-30df557614b8")
   2183 IReferenceClockTimerControl : public IUnknown
   2184 {
   2185     virtual HRESULT STDMETHODCALLTYPE SetDefaultTimerResolution(
   2186         REFERENCE_TIME timerResolution) = 0;
   2187 
   2188     virtual HRESULT STDMETHODCALLTYPE GetDefaultTimerResolution(
   2189         REFERENCE_TIME *pTimerResolution) = 0;
   2190 
   2191 };
   2192 #ifdef __CRT_UUID_DECL
   2193 __CRT_UUID_DECL(IReferenceClockTimerControl, 0xebec459c, 0x2eca, 0x4d42, 0xa8,0xaf, 0x30,0xdf,0x55,0x76,0x14,0xb8)
   2194 #endif
   2195 #else
   2196 typedef struct IReferenceClockTimerControlVtbl {
   2197     BEGIN_INTERFACE
   2198 
   2199     /*** IUnknown methods ***/
   2200     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2201         IReferenceClockTimerControl* This,
   2202         REFIID riid,
   2203         void **ppvObject);
   2204 
   2205     ULONG (STDMETHODCALLTYPE *AddRef)(
   2206         IReferenceClockTimerControl* This);
   2207 
   2208     ULONG (STDMETHODCALLTYPE *Release)(
   2209         IReferenceClockTimerControl* This);
   2210 
   2211     /*** IReferenceClockTimerControl methods ***/
   2212     HRESULT (STDMETHODCALLTYPE *SetDefaultTimerResolution)(
   2213         IReferenceClockTimerControl* This,
   2214         REFERENCE_TIME timerResolution);
   2215 
   2216     HRESULT (STDMETHODCALLTYPE *GetDefaultTimerResolution)(
   2217         IReferenceClockTimerControl* This,
   2218         REFERENCE_TIME *pTimerResolution);
   2219 
   2220     END_INTERFACE
   2221 } IReferenceClockTimerControlVtbl;
   2222 interface IReferenceClockTimerControl {
   2223     CONST_VTBL IReferenceClockTimerControlVtbl* lpVtbl;
   2224 };
   2225 
   2226 #ifdef COBJMACROS
   2227 #ifndef WIDL_C_INLINE_WRAPPERS
   2228 /*** IUnknown methods ***/
   2229 #define IReferenceClockTimerControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2230 #define IReferenceClockTimerControl_AddRef(This) (This)->lpVtbl->AddRef(This)
   2231 #define IReferenceClockTimerControl_Release(This) (This)->lpVtbl->Release(This)
   2232 /*** IReferenceClockTimerControl methods ***/
   2233 #define IReferenceClockTimerControl_SetDefaultTimerResolution(This,timerResolution) (This)->lpVtbl->SetDefaultTimerResolution(This,timerResolution)
   2234 #define IReferenceClockTimerControl_GetDefaultTimerResolution(This,pTimerResolution) (This)->lpVtbl->GetDefaultTimerResolution(This,pTimerResolution)
   2235 #else
   2236 /*** IUnknown methods ***/
   2237 static FORCEINLINE HRESULT IReferenceClockTimerControl_QueryInterface(IReferenceClockTimerControl* This,REFIID riid,void **ppvObject) {
   2238     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2239 }
   2240 static FORCEINLINE ULONG IReferenceClockTimerControl_AddRef(IReferenceClockTimerControl* This) {
   2241     return This->lpVtbl->AddRef(This);
   2242 }
   2243 static FORCEINLINE ULONG IReferenceClockTimerControl_Release(IReferenceClockTimerControl* This) {
   2244     return This->lpVtbl->Release(This);
   2245 }
   2246 /*** IReferenceClockTimerControl methods ***/
   2247 static FORCEINLINE HRESULT IReferenceClockTimerControl_SetDefaultTimerResolution(IReferenceClockTimerControl* This,REFERENCE_TIME timerResolution) {
   2248     return This->lpVtbl->SetDefaultTimerResolution(This,timerResolution);
   2249 }
   2250 static FORCEINLINE HRESULT IReferenceClockTimerControl_GetDefaultTimerResolution(IReferenceClockTimerControl* This,REFERENCE_TIME *pTimerResolution) {
   2251     return This->lpVtbl->GetDefaultTimerResolution(This,pTimerResolution);
   2252 }
   2253 #endif
   2254 #endif
   2255 
   2256 #endif
   2257 
   2258 HRESULT STDMETHODCALLTYPE IReferenceClockTimerControl_SetDefaultTimerResolution_Proxy(
   2259     IReferenceClockTimerControl* This,
   2260     REFERENCE_TIME timerResolution);
   2261 void __RPC_STUB IReferenceClockTimerControl_SetDefaultTimerResolution_Stub(
   2262     IRpcStubBuffer* This,
   2263     IRpcChannelBuffer* pRpcChannelBuffer,
   2264     PRPC_MESSAGE pRpcMessage,
   2265     DWORD* pdwStubPhase);
   2266 HRESULT STDMETHODCALLTYPE IReferenceClockTimerControl_GetDefaultTimerResolution_Proxy(
   2267     IReferenceClockTimerControl* This,
   2268     REFERENCE_TIME *pTimerResolution);
   2269 void __RPC_STUB IReferenceClockTimerControl_GetDefaultTimerResolution_Stub(
   2270     IRpcStubBuffer* This,
   2271     IRpcChannelBuffer* pRpcChannelBuffer,
   2272     PRPC_MESSAGE pRpcMessage,
   2273     DWORD* pdwStubPhase);
   2274 
   2275 #endif  /* __IReferenceClockTimerControl_INTERFACE_DEFINED__ */
   2276 
   2277 
   2278 /*****************************************************************************
   2279  * IReferenceClock2 interface
   2280  */
   2281 #ifndef __IReferenceClock2_INTERFACE_DEFINED__
   2282 #define __IReferenceClock2_INTERFACE_DEFINED__
   2283 
   2284 DEFINE_GUID(IID_IReferenceClock2, 0x36b73885, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
   2285 #if defined(__cplusplus) && !defined(CINTERFACE)
   2286 MIDL_INTERFACE("36b73885-c2c8-11cf-8b46-00805f6cef60")
   2287 IReferenceClock2 : public IReferenceClock
   2288 {
   2289 };
   2290 #ifdef __CRT_UUID_DECL
   2291 __CRT_UUID_DECL(IReferenceClock2, 0x36b73885, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
   2292 #endif
   2293 #else
   2294 typedef struct IReferenceClock2Vtbl {
   2295     BEGIN_INTERFACE
   2296 
   2297     /*** IUnknown methods ***/
   2298     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2299         IReferenceClock2* This,
   2300         REFIID riid,
   2301         void **ppvObject);
   2302 
   2303     ULONG (STDMETHODCALLTYPE *AddRef)(
   2304         IReferenceClock2* This);
   2305 
   2306     ULONG (STDMETHODCALLTYPE *Release)(
   2307         IReferenceClock2* This);
   2308 
   2309     /*** IReferenceClock methods ***/
   2310     HRESULT (STDMETHODCALLTYPE *GetTime)(
   2311         IReferenceClock2* This,
   2312         REFERENCE_TIME *pTime);
   2313 
   2314     HRESULT (STDMETHODCALLTYPE *AdviseTime)(
   2315         IReferenceClock2* This,
   2316         REFERENCE_TIME baseTime,
   2317         REFERENCE_TIME streamTime,
   2318         HEVENT hEvent,
   2319         DWORD_PTR *pdwAdviseCookie);
   2320 
   2321     HRESULT (STDMETHODCALLTYPE *AdvisePeriodic)(
   2322         IReferenceClock2* This,
   2323         REFERENCE_TIME startTime,
   2324         REFERENCE_TIME periodTime,
   2325         HSEMAPHORE hSemaphore,
   2326         DWORD_PTR *pdwAdviseCookie);
   2327 
   2328     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   2329         IReferenceClock2* This,
   2330         DWORD_PTR dwAdviseCookie);
   2331 
   2332     END_INTERFACE
   2333 } IReferenceClock2Vtbl;
   2334 interface IReferenceClock2 {
   2335     CONST_VTBL IReferenceClock2Vtbl* lpVtbl;
   2336 };
   2337 
   2338 #ifdef COBJMACROS
   2339 #ifndef WIDL_C_INLINE_WRAPPERS
   2340 /*** IUnknown methods ***/
   2341 #define IReferenceClock2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2342 #define IReferenceClock2_AddRef(This) (This)->lpVtbl->AddRef(This)
   2343 #define IReferenceClock2_Release(This) (This)->lpVtbl->Release(This)
   2344 /*** IReferenceClock methods ***/
   2345 #define IReferenceClock2_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
   2346 #define IReferenceClock2_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
   2347 #define IReferenceClock2_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
   2348 #define IReferenceClock2_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
   2349 #else
   2350 /*** IUnknown methods ***/
   2351 static FORCEINLINE HRESULT IReferenceClock2_QueryInterface(IReferenceClock2* This,REFIID riid,void **ppvObject) {
   2352     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2353 }
   2354 static FORCEINLINE ULONG IReferenceClock2_AddRef(IReferenceClock2* This) {
   2355     return This->lpVtbl->AddRef(This);
   2356 }
   2357 static FORCEINLINE ULONG IReferenceClock2_Release(IReferenceClock2* This) {
   2358     return This->lpVtbl->Release(This);
   2359 }
   2360 /*** IReferenceClock methods ***/
   2361 static FORCEINLINE HRESULT IReferenceClock2_GetTime(IReferenceClock2* This,REFERENCE_TIME *pTime) {
   2362     return This->lpVtbl->GetTime(This,pTime);
   2363 }
   2364 static FORCEINLINE HRESULT IReferenceClock2_AdviseTime(IReferenceClock2* This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie) {
   2365     return This->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie);
   2366 }
   2367 static FORCEINLINE HRESULT IReferenceClock2_AdvisePeriodic(IReferenceClock2* This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie) {
   2368     return This->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie);
   2369 }
   2370 static FORCEINLINE HRESULT IReferenceClock2_Unadvise(IReferenceClock2* This,DWORD_PTR dwAdviseCookie) {
   2371     return This->lpVtbl->Unadvise(This,dwAdviseCookie);
   2372 }
   2373 #endif
   2374 #endif
   2375 
   2376 #endif
   2377 
   2378 
   2379 #endif  /* __IReferenceClock2_INTERFACE_DEFINED__ */
   2380 
   2381 typedef IReferenceClock2 *PREFERENCECLOCK2;
   2382 
   2383 /*****************************************************************************
   2384  * IMediaSample interface
   2385  */
   2386 #ifndef __IMediaSample_INTERFACE_DEFINED__
   2387 #define __IMediaSample_INTERFACE_DEFINED__
   2388 
   2389 DEFINE_GUID(IID_IMediaSample, 0x56a8689a, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   2390 #if defined(__cplusplus) && !defined(CINTERFACE)
   2391 MIDL_INTERFACE("56a8689a-0ad4-11ce-b03a-0020af0ba770")
   2392 IMediaSample : public IUnknown
   2393 {
   2394     virtual HRESULT STDMETHODCALLTYPE GetPointer(
   2395         BYTE **ppBuffer) = 0;
   2396 
   2397     virtual LONG STDMETHODCALLTYPE GetSize(
   2398         ) = 0;
   2399 
   2400     virtual HRESULT STDMETHODCALLTYPE GetTime(
   2401         REFERENCE_TIME *pTimeStart,
   2402         REFERENCE_TIME *pTimeEnd) = 0;
   2403 
   2404     virtual HRESULT STDMETHODCALLTYPE SetTime(
   2405         REFERENCE_TIME *pTimeStart,
   2406         REFERENCE_TIME *pTimeEnd) = 0;
   2407 
   2408     virtual HRESULT STDMETHODCALLTYPE IsSyncPoint(
   2409         ) = 0;
   2410 
   2411     virtual HRESULT STDMETHODCALLTYPE SetSyncPoint(
   2412         WINBOOL bIsSyncPoint) = 0;
   2413 
   2414     virtual HRESULT STDMETHODCALLTYPE IsPreroll(
   2415         ) = 0;
   2416 
   2417     virtual HRESULT STDMETHODCALLTYPE SetPreroll(
   2418         WINBOOL bIsPreroll) = 0;
   2419 
   2420     virtual LONG STDMETHODCALLTYPE GetActualDataLength(
   2421         ) = 0;
   2422 
   2423     virtual HRESULT STDMETHODCALLTYPE SetActualDataLength(
   2424         LONG a) = 0;
   2425 
   2426     virtual HRESULT STDMETHODCALLTYPE GetMediaType(
   2427         AM_MEDIA_TYPE **ppMediaType) = 0;
   2428 
   2429     virtual HRESULT STDMETHODCALLTYPE SetMediaType(
   2430         AM_MEDIA_TYPE *pMediaType) = 0;
   2431 
   2432     virtual HRESULT STDMETHODCALLTYPE IsDiscontinuity(
   2433         ) = 0;
   2434 
   2435     virtual HRESULT STDMETHODCALLTYPE SetDiscontinuity(
   2436         WINBOOL bDiscontinuity) = 0;
   2437 
   2438     virtual HRESULT STDMETHODCALLTYPE GetMediaTime(
   2439         LONGLONG *pTimeStart,
   2440         LONGLONG *pTimeEnd) = 0;
   2441 
   2442     virtual HRESULT STDMETHODCALLTYPE SetMediaTime(
   2443         LONGLONG *pTimeStart,
   2444         LONGLONG *pTimeEnd) = 0;
   2445 
   2446 };
   2447 #ifdef __CRT_UUID_DECL
   2448 __CRT_UUID_DECL(IMediaSample, 0x56a8689a, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   2449 #endif
   2450 #else
   2451 typedef struct IMediaSampleVtbl {
   2452     BEGIN_INTERFACE
   2453 
   2454     /*** IUnknown methods ***/
   2455     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2456         IMediaSample* This,
   2457         REFIID riid,
   2458         void **ppvObject);
   2459 
   2460     ULONG (STDMETHODCALLTYPE *AddRef)(
   2461         IMediaSample* This);
   2462 
   2463     ULONG (STDMETHODCALLTYPE *Release)(
   2464         IMediaSample* This);
   2465 
   2466     /*** IMediaSample methods ***/
   2467     HRESULT (STDMETHODCALLTYPE *GetPointer)(
   2468         IMediaSample* This,
   2469         BYTE **ppBuffer);
   2470 
   2471     LONG (STDMETHODCALLTYPE *GetSize)(
   2472         IMediaSample* This);
   2473 
   2474     HRESULT (STDMETHODCALLTYPE *GetTime)(
   2475         IMediaSample* This,
   2476         REFERENCE_TIME *pTimeStart,
   2477         REFERENCE_TIME *pTimeEnd);
   2478 
   2479     HRESULT (STDMETHODCALLTYPE *SetTime)(
   2480         IMediaSample* This,
   2481         REFERENCE_TIME *pTimeStart,
   2482         REFERENCE_TIME *pTimeEnd);
   2483 
   2484     HRESULT (STDMETHODCALLTYPE *IsSyncPoint)(
   2485         IMediaSample* This);
   2486 
   2487     HRESULT (STDMETHODCALLTYPE *SetSyncPoint)(
   2488         IMediaSample* This,
   2489         WINBOOL bIsSyncPoint);
   2490 
   2491     HRESULT (STDMETHODCALLTYPE *IsPreroll)(
   2492         IMediaSample* This);
   2493 
   2494     HRESULT (STDMETHODCALLTYPE *SetPreroll)(
   2495         IMediaSample* This,
   2496         WINBOOL bIsPreroll);
   2497 
   2498     LONG (STDMETHODCALLTYPE *GetActualDataLength)(
   2499         IMediaSample* This);
   2500 
   2501     HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
   2502         IMediaSample* This,
   2503         LONG a);
   2504 
   2505     HRESULT (STDMETHODCALLTYPE *GetMediaType)(
   2506         IMediaSample* This,
   2507         AM_MEDIA_TYPE **ppMediaType);
   2508 
   2509     HRESULT (STDMETHODCALLTYPE *SetMediaType)(
   2510         IMediaSample* This,
   2511         AM_MEDIA_TYPE *pMediaType);
   2512 
   2513     HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)(
   2514         IMediaSample* This);
   2515 
   2516     HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)(
   2517         IMediaSample* This,
   2518         WINBOOL bDiscontinuity);
   2519 
   2520     HRESULT (STDMETHODCALLTYPE *GetMediaTime)(
   2521         IMediaSample* This,
   2522         LONGLONG *pTimeStart,
   2523         LONGLONG *pTimeEnd);
   2524 
   2525     HRESULT (STDMETHODCALLTYPE *SetMediaTime)(
   2526         IMediaSample* This,
   2527         LONGLONG *pTimeStart,
   2528         LONGLONG *pTimeEnd);
   2529 
   2530     END_INTERFACE
   2531 } IMediaSampleVtbl;
   2532 interface IMediaSample {
   2533     CONST_VTBL IMediaSampleVtbl* lpVtbl;
   2534 };
   2535 
   2536 #ifdef COBJMACROS
   2537 #ifndef WIDL_C_INLINE_WRAPPERS
   2538 /*** IUnknown methods ***/
   2539 #define IMediaSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2540 #define IMediaSample_AddRef(This) (This)->lpVtbl->AddRef(This)
   2541 #define IMediaSample_Release(This) (This)->lpVtbl->Release(This)
   2542 /*** IMediaSample methods ***/
   2543 #define IMediaSample_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer)
   2544 #define IMediaSample_GetSize(This) (This)->lpVtbl->GetSize(This)
   2545 #define IMediaSample_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd)
   2546 #define IMediaSample_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd)
   2547 #define IMediaSample_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This)
   2548 #define IMediaSample_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint)
   2549 #define IMediaSample_IsPreroll(This) (This)->lpVtbl->IsPreroll(This)
   2550 #define IMediaSample_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll)
   2551 #define IMediaSample_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This)
   2552 #define IMediaSample_SetActualDataLength(This,a) (This)->lpVtbl->SetActualDataLength(This,a)
   2553 #define IMediaSample_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType)
   2554 #define IMediaSample_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType)
   2555 #define IMediaSample_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This)
   2556 #define IMediaSample_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity)
   2557 #define IMediaSample_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd)
   2558 #define IMediaSample_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd)
   2559 #else
   2560 /*** IUnknown methods ***/
   2561 static FORCEINLINE HRESULT IMediaSample_QueryInterface(IMediaSample* This,REFIID riid,void **ppvObject) {
   2562     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2563 }
   2564 static FORCEINLINE ULONG IMediaSample_AddRef(IMediaSample* This) {
   2565     return This->lpVtbl->AddRef(This);
   2566 }
   2567 static FORCEINLINE ULONG IMediaSample_Release(IMediaSample* This) {
   2568     return This->lpVtbl->Release(This);
   2569 }
   2570 /*** IMediaSample methods ***/
   2571 static FORCEINLINE HRESULT IMediaSample_GetPointer(IMediaSample* This,BYTE **ppBuffer) {
   2572     return This->lpVtbl->GetPointer(This,ppBuffer);
   2573 }
   2574 static FORCEINLINE LONG IMediaSample_GetSize(IMediaSample* This) {
   2575     return This->lpVtbl->GetSize(This);
   2576 }
   2577 static FORCEINLINE HRESULT IMediaSample_GetTime(IMediaSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
   2578     return This->lpVtbl->GetTime(This,pTimeStart,pTimeEnd);
   2579 }
   2580 static FORCEINLINE HRESULT IMediaSample_SetTime(IMediaSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
   2581     return This->lpVtbl->SetTime(This,pTimeStart,pTimeEnd);
   2582 }
   2583 static FORCEINLINE HRESULT IMediaSample_IsSyncPoint(IMediaSample* This) {
   2584     return This->lpVtbl->IsSyncPoint(This);
   2585 }
   2586 static FORCEINLINE HRESULT IMediaSample_SetSyncPoint(IMediaSample* This,WINBOOL bIsSyncPoint) {
   2587     return This->lpVtbl->SetSyncPoint(This,bIsSyncPoint);
   2588 }
   2589 static FORCEINLINE HRESULT IMediaSample_IsPreroll(IMediaSample* This) {
   2590     return This->lpVtbl->IsPreroll(This);
   2591 }
   2592 static FORCEINLINE HRESULT IMediaSample_SetPreroll(IMediaSample* This,WINBOOL bIsPreroll) {
   2593     return This->lpVtbl->SetPreroll(This,bIsPreroll);
   2594 }
   2595 static FORCEINLINE LONG IMediaSample_GetActualDataLength(IMediaSample* This) {
   2596     return This->lpVtbl->GetActualDataLength(This);
   2597 }
   2598 static FORCEINLINE HRESULT IMediaSample_SetActualDataLength(IMediaSample* This,LONG a) {
   2599     return This->lpVtbl->SetActualDataLength(This,a);
   2600 }
   2601 static FORCEINLINE HRESULT IMediaSample_GetMediaType(IMediaSample* This,AM_MEDIA_TYPE **ppMediaType) {
   2602     return This->lpVtbl->GetMediaType(This,ppMediaType);
   2603 }
   2604 static FORCEINLINE HRESULT IMediaSample_SetMediaType(IMediaSample* This,AM_MEDIA_TYPE *pMediaType) {
   2605     return This->lpVtbl->SetMediaType(This,pMediaType);
   2606 }
   2607 static FORCEINLINE HRESULT IMediaSample_IsDiscontinuity(IMediaSample* This) {
   2608     return This->lpVtbl->IsDiscontinuity(This);
   2609 }
   2610 static FORCEINLINE HRESULT IMediaSample_SetDiscontinuity(IMediaSample* This,WINBOOL bDiscontinuity) {
   2611     return This->lpVtbl->SetDiscontinuity(This,bDiscontinuity);
   2612 }
   2613 static FORCEINLINE HRESULT IMediaSample_GetMediaTime(IMediaSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
   2614     return This->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd);
   2615 }
   2616 static FORCEINLINE HRESULT IMediaSample_SetMediaTime(IMediaSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
   2617     return This->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd);
   2618 }
   2619 #endif
   2620 #endif
   2621 
   2622 #endif
   2623 
   2624 HRESULT STDMETHODCALLTYPE IMediaSample_GetPointer_Proxy(
   2625     IMediaSample* This,
   2626     BYTE **ppBuffer);
   2627 void __RPC_STUB IMediaSample_GetPointer_Stub(
   2628     IRpcStubBuffer* This,
   2629     IRpcChannelBuffer* pRpcChannelBuffer,
   2630     PRPC_MESSAGE pRpcMessage,
   2631     DWORD* pdwStubPhase);
   2632 LONG STDMETHODCALLTYPE IMediaSample_GetSize_Proxy(
   2633     IMediaSample* This);
   2634 void __RPC_STUB IMediaSample_GetSize_Stub(
   2635     IRpcStubBuffer* This,
   2636     IRpcChannelBuffer* pRpcChannelBuffer,
   2637     PRPC_MESSAGE pRpcMessage,
   2638     DWORD* pdwStubPhase);
   2639 HRESULT STDMETHODCALLTYPE IMediaSample_GetTime_Proxy(
   2640     IMediaSample* This,
   2641     REFERENCE_TIME *pTimeStart,
   2642     REFERENCE_TIME *pTimeEnd);
   2643 void __RPC_STUB IMediaSample_GetTime_Stub(
   2644     IRpcStubBuffer* This,
   2645     IRpcChannelBuffer* pRpcChannelBuffer,
   2646     PRPC_MESSAGE pRpcMessage,
   2647     DWORD* pdwStubPhase);
   2648 HRESULT STDMETHODCALLTYPE IMediaSample_SetTime_Proxy(
   2649     IMediaSample* This,
   2650     REFERENCE_TIME *pTimeStart,
   2651     REFERENCE_TIME *pTimeEnd);
   2652 void __RPC_STUB IMediaSample_SetTime_Stub(
   2653     IRpcStubBuffer* This,
   2654     IRpcChannelBuffer* pRpcChannelBuffer,
   2655     PRPC_MESSAGE pRpcMessage,
   2656     DWORD* pdwStubPhase);
   2657 HRESULT STDMETHODCALLTYPE IMediaSample_IsSyncPoint_Proxy(
   2658     IMediaSample* This);
   2659 void __RPC_STUB IMediaSample_IsSyncPoint_Stub(
   2660     IRpcStubBuffer* This,
   2661     IRpcChannelBuffer* pRpcChannelBuffer,
   2662     PRPC_MESSAGE pRpcMessage,
   2663     DWORD* pdwStubPhase);
   2664 HRESULT STDMETHODCALLTYPE IMediaSample_SetSyncPoint_Proxy(
   2665     IMediaSample* This,
   2666     WINBOOL bIsSyncPoint);
   2667 void __RPC_STUB IMediaSample_SetSyncPoint_Stub(
   2668     IRpcStubBuffer* This,
   2669     IRpcChannelBuffer* pRpcChannelBuffer,
   2670     PRPC_MESSAGE pRpcMessage,
   2671     DWORD* pdwStubPhase);
   2672 HRESULT STDMETHODCALLTYPE IMediaSample_IsPreroll_Proxy(
   2673     IMediaSample* This);
   2674 void __RPC_STUB IMediaSample_IsPreroll_Stub(
   2675     IRpcStubBuffer* This,
   2676     IRpcChannelBuffer* pRpcChannelBuffer,
   2677     PRPC_MESSAGE pRpcMessage,
   2678     DWORD* pdwStubPhase);
   2679 HRESULT STDMETHODCALLTYPE IMediaSample_SetPreroll_Proxy(
   2680     IMediaSample* This,
   2681     WINBOOL bIsPreroll);
   2682 void __RPC_STUB IMediaSample_SetPreroll_Stub(
   2683     IRpcStubBuffer* This,
   2684     IRpcChannelBuffer* pRpcChannelBuffer,
   2685     PRPC_MESSAGE pRpcMessage,
   2686     DWORD* pdwStubPhase);
   2687 LONG STDMETHODCALLTYPE IMediaSample_GetActualDataLength_Proxy(
   2688     IMediaSample* This);
   2689 void __RPC_STUB IMediaSample_GetActualDataLength_Stub(
   2690     IRpcStubBuffer* This,
   2691     IRpcChannelBuffer* pRpcChannelBuffer,
   2692     PRPC_MESSAGE pRpcMessage,
   2693     DWORD* pdwStubPhase);
   2694 HRESULT STDMETHODCALLTYPE IMediaSample_SetActualDataLength_Proxy(
   2695     IMediaSample* This,
   2696     LONG a);
   2697 void __RPC_STUB IMediaSample_SetActualDataLength_Stub(
   2698     IRpcStubBuffer* This,
   2699     IRpcChannelBuffer* pRpcChannelBuffer,
   2700     PRPC_MESSAGE pRpcMessage,
   2701     DWORD* pdwStubPhase);
   2702 HRESULT STDMETHODCALLTYPE IMediaSample_GetMediaType_Proxy(
   2703     IMediaSample* This,
   2704     AM_MEDIA_TYPE **ppMediaType);
   2705 void __RPC_STUB IMediaSample_GetMediaType_Stub(
   2706     IRpcStubBuffer* This,
   2707     IRpcChannelBuffer* pRpcChannelBuffer,
   2708     PRPC_MESSAGE pRpcMessage,
   2709     DWORD* pdwStubPhase);
   2710 HRESULT STDMETHODCALLTYPE IMediaSample_SetMediaType_Proxy(
   2711     IMediaSample* This,
   2712     AM_MEDIA_TYPE *pMediaType);
   2713 void __RPC_STUB IMediaSample_SetMediaType_Stub(
   2714     IRpcStubBuffer* This,
   2715     IRpcChannelBuffer* pRpcChannelBuffer,
   2716     PRPC_MESSAGE pRpcMessage,
   2717     DWORD* pdwStubPhase);
   2718 HRESULT STDMETHODCALLTYPE IMediaSample_IsDiscontinuity_Proxy(
   2719     IMediaSample* This);
   2720 void __RPC_STUB IMediaSample_IsDiscontinuity_Stub(
   2721     IRpcStubBuffer* This,
   2722     IRpcChannelBuffer* pRpcChannelBuffer,
   2723     PRPC_MESSAGE pRpcMessage,
   2724     DWORD* pdwStubPhase);
   2725 HRESULT STDMETHODCALLTYPE IMediaSample_SetDiscontinuity_Proxy(
   2726     IMediaSample* This,
   2727     WINBOOL bDiscontinuity);
   2728 void __RPC_STUB IMediaSample_SetDiscontinuity_Stub(
   2729     IRpcStubBuffer* This,
   2730     IRpcChannelBuffer* pRpcChannelBuffer,
   2731     PRPC_MESSAGE pRpcMessage,
   2732     DWORD* pdwStubPhase);
   2733 HRESULT STDMETHODCALLTYPE IMediaSample_GetMediaTime_Proxy(
   2734     IMediaSample* This,
   2735     LONGLONG *pTimeStart,
   2736     LONGLONG *pTimeEnd);
   2737 void __RPC_STUB IMediaSample_GetMediaTime_Stub(
   2738     IRpcStubBuffer* This,
   2739     IRpcChannelBuffer* pRpcChannelBuffer,
   2740     PRPC_MESSAGE pRpcMessage,
   2741     DWORD* pdwStubPhase);
   2742 HRESULT STDMETHODCALLTYPE IMediaSample_SetMediaTime_Proxy(
   2743     IMediaSample* This,
   2744     LONGLONG *pTimeStart,
   2745     LONGLONG *pTimeEnd);
   2746 void __RPC_STUB IMediaSample_SetMediaTime_Stub(
   2747     IRpcStubBuffer* This,
   2748     IRpcChannelBuffer* pRpcChannelBuffer,
   2749     PRPC_MESSAGE pRpcMessage,
   2750     DWORD* pdwStubPhase);
   2751 
   2752 #endif  /* __IMediaSample_INTERFACE_DEFINED__ */
   2753 
   2754 typedef IMediaSample *PMEDIASAMPLE;
   2755 
   2756 enum tagAM_SAMPLE_PROPERTY_FLAGS {
   2757     AM_SAMPLE_SPLICEPOINT = 0x1,
   2758     AM_SAMPLE_PREROLL = 0x2,
   2759     AM_SAMPLE_DATADISCONTINUITY = 0x4,
   2760     AM_SAMPLE_TYPECHANGED = 0x8,
   2761     AM_SAMPLE_TIMEVALID = 0x10,
   2762     AM_SAMPLE_TIMEDISCONTINUITY = 0x40,
   2763     AM_SAMPLE_FLUSH_ON_PAUSE = 0x80,
   2764     AM_SAMPLE_STOPVALID = 0x100,
   2765     AM_SAMPLE_ENDOFSTREAM = 0x200,
   2766     AM_STREAM_MEDIA = 0,
   2767     AM_STREAM_CONTROL = 1
   2768 };
   2769 
   2770 
   2771 typedef struct tagAM_SAMPLE2_PROPERTIES {
   2772     DWORD cbData;
   2773     DWORD dwTypeSpecificFlags;
   2774     DWORD dwSampleFlags;
   2775     LONG lActual;
   2776     REFERENCE_TIME tStart;
   2777     REFERENCE_TIME tStop;
   2778     DWORD dwStreamId;
   2779     AM_MEDIA_TYPE *pMediaType;
   2780     BYTE *pbBuffer;
   2781     LONG cbBuffer;
   2782 } AM_SAMPLE2_PROPERTIES;
   2783 
   2784 /*****************************************************************************
   2785  * IMediaSample2 interface
   2786  */
   2787 #ifndef __IMediaSample2_INTERFACE_DEFINED__
   2788 #define __IMediaSample2_INTERFACE_DEFINED__
   2789 
   2790 DEFINE_GUID(IID_IMediaSample2, 0x36b73884, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
   2791 #if defined(__cplusplus) && !defined(CINTERFACE)
   2792 MIDL_INTERFACE("36b73884-c2c8-11cf-8b46-00805f6cef60")
   2793 IMediaSample2 : public IMediaSample
   2794 {
   2795     virtual HRESULT STDMETHODCALLTYPE GetProperties(
   2796         DWORD cbProperties,
   2797         BYTE *pbProperties) = 0;
   2798 
   2799     virtual HRESULT STDMETHODCALLTYPE SetProperties(
   2800         DWORD cbProperties,
   2801         const BYTE *pbProperties) = 0;
   2802 
   2803 };
   2804 #ifdef __CRT_UUID_DECL
   2805 __CRT_UUID_DECL(IMediaSample2, 0x36b73884, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
   2806 #endif
   2807 #else
   2808 typedef struct IMediaSample2Vtbl {
   2809     BEGIN_INTERFACE
   2810 
   2811     /*** IUnknown methods ***/
   2812     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2813         IMediaSample2* This,
   2814         REFIID riid,
   2815         void **ppvObject);
   2816 
   2817     ULONG (STDMETHODCALLTYPE *AddRef)(
   2818         IMediaSample2* This);
   2819 
   2820     ULONG (STDMETHODCALLTYPE *Release)(
   2821         IMediaSample2* This);
   2822 
   2823     /*** IMediaSample methods ***/
   2824     HRESULT (STDMETHODCALLTYPE *GetPointer)(
   2825         IMediaSample2* This,
   2826         BYTE **ppBuffer);
   2827 
   2828     LONG (STDMETHODCALLTYPE *GetSize)(
   2829         IMediaSample2* This);
   2830 
   2831     HRESULT (STDMETHODCALLTYPE *GetTime)(
   2832         IMediaSample2* This,
   2833         REFERENCE_TIME *pTimeStart,
   2834         REFERENCE_TIME *pTimeEnd);
   2835 
   2836     HRESULT (STDMETHODCALLTYPE *SetTime)(
   2837         IMediaSample2* This,
   2838         REFERENCE_TIME *pTimeStart,
   2839         REFERENCE_TIME *pTimeEnd);
   2840 
   2841     HRESULT (STDMETHODCALLTYPE *IsSyncPoint)(
   2842         IMediaSample2* This);
   2843 
   2844     HRESULT (STDMETHODCALLTYPE *SetSyncPoint)(
   2845         IMediaSample2* This,
   2846         WINBOOL bIsSyncPoint);
   2847 
   2848     HRESULT (STDMETHODCALLTYPE *IsPreroll)(
   2849         IMediaSample2* This);
   2850 
   2851     HRESULT (STDMETHODCALLTYPE *SetPreroll)(
   2852         IMediaSample2* This,
   2853         WINBOOL bIsPreroll);
   2854 
   2855     LONG (STDMETHODCALLTYPE *GetActualDataLength)(
   2856         IMediaSample2* This);
   2857 
   2858     HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
   2859         IMediaSample2* This,
   2860         LONG a);
   2861 
   2862     HRESULT (STDMETHODCALLTYPE *GetMediaType)(
   2863         IMediaSample2* This,
   2864         AM_MEDIA_TYPE **ppMediaType);
   2865 
   2866     HRESULT (STDMETHODCALLTYPE *SetMediaType)(
   2867         IMediaSample2* This,
   2868         AM_MEDIA_TYPE *pMediaType);
   2869 
   2870     HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)(
   2871         IMediaSample2* This);
   2872 
   2873     HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)(
   2874         IMediaSample2* This,
   2875         WINBOOL bDiscontinuity);
   2876 
   2877     HRESULT (STDMETHODCALLTYPE *GetMediaTime)(
   2878         IMediaSample2* This,
   2879         LONGLONG *pTimeStart,
   2880         LONGLONG *pTimeEnd);
   2881 
   2882     HRESULT (STDMETHODCALLTYPE *SetMediaTime)(
   2883         IMediaSample2* This,
   2884         LONGLONG *pTimeStart,
   2885         LONGLONG *pTimeEnd);
   2886 
   2887     /*** IMediaSample2 methods ***/
   2888     HRESULT (STDMETHODCALLTYPE *GetProperties)(
   2889         IMediaSample2* This,
   2890         DWORD cbProperties,
   2891         BYTE *pbProperties);
   2892 
   2893     HRESULT (STDMETHODCALLTYPE *SetProperties)(
   2894         IMediaSample2* This,
   2895         DWORD cbProperties,
   2896         const BYTE *pbProperties);
   2897 
   2898     END_INTERFACE
   2899 } IMediaSample2Vtbl;
   2900 interface IMediaSample2 {
   2901     CONST_VTBL IMediaSample2Vtbl* lpVtbl;
   2902 };
   2903 
   2904 #ifdef COBJMACROS
   2905 #ifndef WIDL_C_INLINE_WRAPPERS
   2906 /*** IUnknown methods ***/
   2907 #define IMediaSample2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2908 #define IMediaSample2_AddRef(This) (This)->lpVtbl->AddRef(This)
   2909 #define IMediaSample2_Release(This) (This)->lpVtbl->Release(This)
   2910 /*** IMediaSample methods ***/
   2911 #define IMediaSample2_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer)
   2912 #define IMediaSample2_GetSize(This) (This)->lpVtbl->GetSize(This)
   2913 #define IMediaSample2_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd)
   2914 #define IMediaSample2_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd)
   2915 #define IMediaSample2_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This)
   2916 #define IMediaSample2_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint)
   2917 #define IMediaSample2_IsPreroll(This) (This)->lpVtbl->IsPreroll(This)
   2918 #define IMediaSample2_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll)
   2919 #define IMediaSample2_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This)
   2920 #define IMediaSample2_SetActualDataLength(This,a) (This)->lpVtbl->SetActualDataLength(This,a)
   2921 #define IMediaSample2_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType)
   2922 #define IMediaSample2_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType)
   2923 #define IMediaSample2_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This)
   2924 #define IMediaSample2_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity)
   2925 #define IMediaSample2_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd)
   2926 #define IMediaSample2_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd)
   2927 /*** IMediaSample2 methods ***/
   2928 #define IMediaSample2_GetProperties(This,cbProperties,pbProperties) (This)->lpVtbl->GetProperties(This,cbProperties,pbProperties)
   2929 #define IMediaSample2_SetProperties(This,cbProperties,pbProperties) (This)->lpVtbl->SetProperties(This,cbProperties,pbProperties)
   2930 #else
   2931 /*** IUnknown methods ***/
   2932 static FORCEINLINE HRESULT IMediaSample2_QueryInterface(IMediaSample2* This,REFIID riid,void **ppvObject) {
   2933     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2934 }
   2935 static FORCEINLINE ULONG IMediaSample2_AddRef(IMediaSample2* This) {
   2936     return This->lpVtbl->AddRef(This);
   2937 }
   2938 static FORCEINLINE ULONG IMediaSample2_Release(IMediaSample2* This) {
   2939     return This->lpVtbl->Release(This);
   2940 }
   2941 /*** IMediaSample methods ***/
   2942 static FORCEINLINE HRESULT IMediaSample2_GetPointer(IMediaSample2* This,BYTE **ppBuffer) {
   2943     return This->lpVtbl->GetPointer(This,ppBuffer);
   2944 }
   2945 static FORCEINLINE LONG IMediaSample2_GetSize(IMediaSample2* This) {
   2946     return This->lpVtbl->GetSize(This);
   2947 }
   2948 static FORCEINLINE HRESULT IMediaSample2_GetTime(IMediaSample2* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
   2949     return This->lpVtbl->GetTime(This,pTimeStart,pTimeEnd);
   2950 }
   2951 static FORCEINLINE HRESULT IMediaSample2_SetTime(IMediaSample2* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
   2952     return This->lpVtbl->SetTime(This,pTimeStart,pTimeEnd);
   2953 }
   2954 static FORCEINLINE HRESULT IMediaSample2_IsSyncPoint(IMediaSample2* This) {
   2955     return This->lpVtbl->IsSyncPoint(This);
   2956 }
   2957 static FORCEINLINE HRESULT IMediaSample2_SetSyncPoint(IMediaSample2* This,WINBOOL bIsSyncPoint) {
   2958     return This->lpVtbl->SetSyncPoint(This,bIsSyncPoint);
   2959 }
   2960 static FORCEINLINE HRESULT IMediaSample2_IsPreroll(IMediaSample2* This) {
   2961     return This->lpVtbl->IsPreroll(This);
   2962 }
   2963 static FORCEINLINE HRESULT IMediaSample2_SetPreroll(IMediaSample2* This,WINBOOL bIsPreroll) {
   2964     return This->lpVtbl->SetPreroll(This,bIsPreroll);
   2965 }
   2966 static FORCEINLINE LONG IMediaSample2_GetActualDataLength(IMediaSample2* This) {
   2967     return This->lpVtbl->GetActualDataLength(This);
   2968 }
   2969 static FORCEINLINE HRESULT IMediaSample2_SetActualDataLength(IMediaSample2* This,LONG a) {
   2970     return This->lpVtbl->SetActualDataLength(This,a);
   2971 }
   2972 static FORCEINLINE HRESULT IMediaSample2_GetMediaType(IMediaSample2* This,AM_MEDIA_TYPE **ppMediaType) {
   2973     return This->lpVtbl->GetMediaType(This,ppMediaType);
   2974 }
   2975 static FORCEINLINE HRESULT IMediaSample2_SetMediaType(IMediaSample2* This,AM_MEDIA_TYPE *pMediaType) {
   2976     return This->lpVtbl->SetMediaType(This,pMediaType);
   2977 }
   2978 static FORCEINLINE HRESULT IMediaSample2_IsDiscontinuity(IMediaSample2* This) {
   2979     return This->lpVtbl->IsDiscontinuity(This);
   2980 }
   2981 static FORCEINLINE HRESULT IMediaSample2_SetDiscontinuity(IMediaSample2* This,WINBOOL bDiscontinuity) {
   2982     return This->lpVtbl->SetDiscontinuity(This,bDiscontinuity);
   2983 }
   2984 static FORCEINLINE HRESULT IMediaSample2_GetMediaTime(IMediaSample2* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
   2985     return This->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd);
   2986 }
   2987 static FORCEINLINE HRESULT IMediaSample2_SetMediaTime(IMediaSample2* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
   2988     return This->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd);
   2989 }
   2990 /*** IMediaSample2 methods ***/
   2991 static FORCEINLINE HRESULT IMediaSample2_GetProperties(IMediaSample2* This,DWORD cbProperties,BYTE *pbProperties) {
   2992     return This->lpVtbl->GetProperties(This,cbProperties,pbProperties);
   2993 }
   2994 static FORCEINLINE HRESULT IMediaSample2_SetProperties(IMediaSample2* This,DWORD cbProperties,const BYTE *pbProperties) {
   2995     return This->lpVtbl->SetProperties(This,cbProperties,pbProperties);
   2996 }
   2997 #endif
   2998 #endif
   2999 
   3000 #endif
   3001 
   3002 HRESULT STDMETHODCALLTYPE IMediaSample2_GetProperties_Proxy(
   3003     IMediaSample2* This,
   3004     DWORD cbProperties,
   3005     BYTE *pbProperties);
   3006 void __RPC_STUB IMediaSample2_GetProperties_Stub(
   3007     IRpcStubBuffer* This,
   3008     IRpcChannelBuffer* pRpcChannelBuffer,
   3009     PRPC_MESSAGE pRpcMessage,
   3010     DWORD* pdwStubPhase);
   3011 HRESULT STDMETHODCALLTYPE IMediaSample2_SetProperties_Proxy(
   3012     IMediaSample2* This,
   3013     DWORD cbProperties,
   3014     const BYTE *pbProperties);
   3015 void __RPC_STUB IMediaSample2_SetProperties_Stub(
   3016     IRpcStubBuffer* This,
   3017     IRpcChannelBuffer* pRpcChannelBuffer,
   3018     PRPC_MESSAGE pRpcMessage,
   3019     DWORD* pdwStubPhase);
   3020 
   3021 #endif  /* __IMediaSample2_INTERFACE_DEFINED__ */
   3022 
   3023 typedef IMediaSample2 *PMEDIASAMPLE2;
   3024 
   3025 /*****************************************************************************
   3026  * IMediaSample2Config interface
   3027  */
   3028 #ifndef __IMediaSample2Config_INTERFACE_DEFINED__
   3029 #define __IMediaSample2Config_INTERFACE_DEFINED__
   3030 
   3031 DEFINE_GUID(IID_IMediaSample2Config, 0x68961e68, 0x832b, 0x41ea, 0xbc,0x91, 0x63,0x59,0x3f,0x3e,0x70,0xe3);
   3032 #if defined(__cplusplus) && !defined(CINTERFACE)
   3033 MIDL_INTERFACE("68961e68-832b-41ea-bc91-63593f3e70e3")
   3034 IMediaSample2Config : public IUnknown
   3035 {
   3036     virtual HRESULT STDMETHODCALLTYPE GetSurface(
   3037         IUnknown **ppDirect3DSurface9) = 0;
   3038 
   3039 };
   3040 #ifdef __CRT_UUID_DECL
   3041 __CRT_UUID_DECL(IMediaSample2Config, 0x68961e68, 0x832b, 0x41ea, 0xbc,0x91, 0x63,0x59,0x3f,0x3e,0x70,0xe3)
   3042 #endif
   3043 #else
   3044 typedef struct IMediaSample2ConfigVtbl {
   3045     BEGIN_INTERFACE
   3046 
   3047     /*** IUnknown methods ***/
   3048     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3049         IMediaSample2Config* This,
   3050         REFIID riid,
   3051         void **ppvObject);
   3052 
   3053     ULONG (STDMETHODCALLTYPE *AddRef)(
   3054         IMediaSample2Config* This);
   3055 
   3056     ULONG (STDMETHODCALLTYPE *Release)(
   3057         IMediaSample2Config* This);
   3058 
   3059     /*** IMediaSample2Config methods ***/
   3060     HRESULT (STDMETHODCALLTYPE *GetSurface)(
   3061         IMediaSample2Config* This,
   3062         IUnknown **ppDirect3DSurface9);
   3063 
   3064     END_INTERFACE
   3065 } IMediaSample2ConfigVtbl;
   3066 interface IMediaSample2Config {
   3067     CONST_VTBL IMediaSample2ConfigVtbl* lpVtbl;
   3068 };
   3069 
   3070 #ifdef COBJMACROS
   3071 #ifndef WIDL_C_INLINE_WRAPPERS
   3072 /*** IUnknown methods ***/
   3073 #define IMediaSample2Config_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3074 #define IMediaSample2Config_AddRef(This) (This)->lpVtbl->AddRef(This)
   3075 #define IMediaSample2Config_Release(This) (This)->lpVtbl->Release(This)
   3076 /*** IMediaSample2Config methods ***/
   3077 #define IMediaSample2Config_GetSurface(This,ppDirect3DSurface9) (This)->lpVtbl->GetSurface(This,ppDirect3DSurface9)
   3078 #else
   3079 /*** IUnknown methods ***/
   3080 static FORCEINLINE HRESULT IMediaSample2Config_QueryInterface(IMediaSample2Config* This,REFIID riid,void **ppvObject) {
   3081     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3082 }
   3083 static FORCEINLINE ULONG IMediaSample2Config_AddRef(IMediaSample2Config* This) {
   3084     return This->lpVtbl->AddRef(This);
   3085 }
   3086 static FORCEINLINE ULONG IMediaSample2Config_Release(IMediaSample2Config* This) {
   3087     return This->lpVtbl->Release(This);
   3088 }
   3089 /*** IMediaSample2Config methods ***/
   3090 static FORCEINLINE HRESULT IMediaSample2Config_GetSurface(IMediaSample2Config* This,IUnknown **ppDirect3DSurface9) {
   3091     return This->lpVtbl->GetSurface(This,ppDirect3DSurface9);
   3092 }
   3093 #endif
   3094 #endif
   3095 
   3096 #endif
   3097 
   3098 HRESULT STDMETHODCALLTYPE IMediaSample2Config_GetSurface_Proxy(
   3099     IMediaSample2Config* This,
   3100     IUnknown **ppDirect3DSurface9);
   3101 void __RPC_STUB IMediaSample2Config_GetSurface_Stub(
   3102     IRpcStubBuffer* This,
   3103     IRpcChannelBuffer* pRpcChannelBuffer,
   3104     PRPC_MESSAGE pRpcMessage,
   3105     DWORD* pdwStubPhase);
   3106 
   3107 #endif  /* __IMediaSample2Config_INTERFACE_DEFINED__ */
   3108 
   3109 
   3110 #define AM_GBF_PREVFRAMESKIPPED 1
   3111 #define AM_GBF_NOTASYNCPOINT 2
   3112 #define AM_GBF_NOWAIT 4
   3113 #define AM_GBF_NODDSURFACELOCK 8
   3114 
   3115 /*****************************************************************************
   3116  * IMemAllocator interface
   3117  */
   3118 #ifndef __IMemAllocator_INTERFACE_DEFINED__
   3119 #define __IMemAllocator_INTERFACE_DEFINED__
   3120 
   3121 DEFINE_GUID(IID_IMemAllocator, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   3122 #if defined(__cplusplus) && !defined(CINTERFACE)
   3123 MIDL_INTERFACE("56a8689c-0ad4-11ce-b03a-0020af0ba770")
   3124 IMemAllocator : public IUnknown
   3125 {
   3126     virtual HRESULT STDMETHODCALLTYPE SetProperties(
   3127         ALLOCATOR_PROPERTIES *pRequest,
   3128         ALLOCATOR_PROPERTIES *pActual) = 0;
   3129 
   3130     virtual HRESULT STDMETHODCALLTYPE GetProperties(
   3131         ALLOCATOR_PROPERTIES *pProps) = 0;
   3132 
   3133     virtual HRESULT STDMETHODCALLTYPE Commit(
   3134         ) = 0;
   3135 
   3136     virtual HRESULT STDMETHODCALLTYPE Decommit(
   3137         ) = 0;
   3138 
   3139     virtual HRESULT STDMETHODCALLTYPE GetBuffer(
   3140         IMediaSample **ppBuffer,
   3141         REFERENCE_TIME *pStartTime,
   3142         REFERENCE_TIME *pEndTime,
   3143         DWORD dwFlags) = 0;
   3144 
   3145     virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
   3146         IMediaSample *pBuffer) = 0;
   3147 
   3148 };
   3149 #ifdef __CRT_UUID_DECL
   3150 __CRT_UUID_DECL(IMemAllocator, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   3151 #endif
   3152 #else
   3153 typedef struct IMemAllocatorVtbl {
   3154     BEGIN_INTERFACE
   3155 
   3156     /*** IUnknown methods ***/
   3157     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3158         IMemAllocator* This,
   3159         REFIID riid,
   3160         void **ppvObject);
   3161 
   3162     ULONG (STDMETHODCALLTYPE *AddRef)(
   3163         IMemAllocator* This);
   3164 
   3165     ULONG (STDMETHODCALLTYPE *Release)(
   3166         IMemAllocator* This);
   3167 
   3168     /*** IMemAllocator methods ***/
   3169     HRESULT (STDMETHODCALLTYPE *SetProperties)(
   3170         IMemAllocator* This,
   3171         ALLOCATOR_PROPERTIES *pRequest,
   3172         ALLOCATOR_PROPERTIES *pActual);
   3173 
   3174     HRESULT (STDMETHODCALLTYPE *GetProperties)(
   3175         IMemAllocator* This,
   3176         ALLOCATOR_PROPERTIES *pProps);
   3177 
   3178     HRESULT (STDMETHODCALLTYPE *Commit)(
   3179         IMemAllocator* This);
   3180 
   3181     HRESULT (STDMETHODCALLTYPE *Decommit)(
   3182         IMemAllocator* This);
   3183 
   3184     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
   3185         IMemAllocator* This,
   3186         IMediaSample **ppBuffer,
   3187         REFERENCE_TIME *pStartTime,
   3188         REFERENCE_TIME *pEndTime,
   3189         DWORD dwFlags);
   3190 
   3191     HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)(
   3192         IMemAllocator* This,
   3193         IMediaSample *pBuffer);
   3194 
   3195     END_INTERFACE
   3196 } IMemAllocatorVtbl;
   3197 interface IMemAllocator {
   3198     CONST_VTBL IMemAllocatorVtbl* lpVtbl;
   3199 };
   3200 
   3201 #ifdef COBJMACROS
   3202 #ifndef WIDL_C_INLINE_WRAPPERS
   3203 /*** IUnknown methods ***/
   3204 #define IMemAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3205 #define IMemAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
   3206 #define IMemAllocator_Release(This) (This)->lpVtbl->Release(This)
   3207 /*** IMemAllocator methods ***/
   3208 #define IMemAllocator_SetProperties(This,pRequest,pActual) (This)->lpVtbl->SetProperties(This,pRequest,pActual)
   3209 #define IMemAllocator_GetProperties(This,pProps) (This)->lpVtbl->GetProperties(This,pProps)
   3210 #define IMemAllocator_Commit(This) (This)->lpVtbl->Commit(This)
   3211 #define IMemAllocator_Decommit(This) (This)->lpVtbl->Decommit(This)
   3212 #define IMemAllocator_GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags) (This)->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags)
   3213 #define IMemAllocator_ReleaseBuffer(This,pBuffer) (This)->lpVtbl->ReleaseBuffer(This,pBuffer)
   3214 #else
   3215 /*** IUnknown methods ***/
   3216 static FORCEINLINE HRESULT IMemAllocator_QueryInterface(IMemAllocator* This,REFIID riid,void **ppvObject) {
   3217     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3218 }
   3219 static FORCEINLINE ULONG IMemAllocator_AddRef(IMemAllocator* This) {
   3220     return This->lpVtbl->AddRef(This);
   3221 }
   3222 static FORCEINLINE ULONG IMemAllocator_Release(IMemAllocator* This) {
   3223     return This->lpVtbl->Release(This);
   3224 }
   3225 /*** IMemAllocator methods ***/
   3226 static FORCEINLINE HRESULT IMemAllocator_SetProperties(IMemAllocator* This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual) {
   3227     return This->lpVtbl->SetProperties(This,pRequest,pActual);
   3228 }
   3229 static FORCEINLINE HRESULT IMemAllocator_GetProperties(IMemAllocator* This,ALLOCATOR_PROPERTIES *pProps) {
   3230     return This->lpVtbl->GetProperties(This,pProps);
   3231 }
   3232 static FORCEINLINE HRESULT IMemAllocator_Commit(IMemAllocator* This) {
   3233     return This->lpVtbl->Commit(This);
   3234 }
   3235 static FORCEINLINE HRESULT IMemAllocator_Decommit(IMemAllocator* This) {
   3236     return This->lpVtbl->Decommit(This);
   3237 }
   3238 static FORCEINLINE HRESULT IMemAllocator_GetBuffer(IMemAllocator* This,IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags) {
   3239     return This->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags);
   3240 }
   3241 static FORCEINLINE HRESULT IMemAllocator_ReleaseBuffer(IMemAllocator* This,IMediaSample *pBuffer) {
   3242     return This->lpVtbl->ReleaseBuffer(This,pBuffer);
   3243 }
   3244 #endif
   3245 #endif
   3246 
   3247 #endif
   3248 
   3249 HRESULT STDMETHODCALLTYPE IMemAllocator_SetProperties_Proxy(
   3250     IMemAllocator* This,
   3251     ALLOCATOR_PROPERTIES *pRequest,
   3252     ALLOCATOR_PROPERTIES *pActual);
   3253 void __RPC_STUB IMemAllocator_SetProperties_Stub(
   3254     IRpcStubBuffer* This,
   3255     IRpcChannelBuffer* pRpcChannelBuffer,
   3256     PRPC_MESSAGE pRpcMessage,
   3257     DWORD* pdwStubPhase);
   3258 HRESULT STDMETHODCALLTYPE IMemAllocator_GetProperties_Proxy(
   3259     IMemAllocator* This,
   3260     ALLOCATOR_PROPERTIES *pProps);
   3261 void __RPC_STUB IMemAllocator_GetProperties_Stub(
   3262     IRpcStubBuffer* This,
   3263     IRpcChannelBuffer* pRpcChannelBuffer,
   3264     PRPC_MESSAGE pRpcMessage,
   3265     DWORD* pdwStubPhase);
   3266 HRESULT STDMETHODCALLTYPE IMemAllocator_Commit_Proxy(
   3267     IMemAllocator* This);
   3268 void __RPC_STUB IMemAllocator_Commit_Stub(
   3269     IRpcStubBuffer* This,
   3270     IRpcChannelBuffer* pRpcChannelBuffer,
   3271     PRPC_MESSAGE pRpcMessage,
   3272     DWORD* pdwStubPhase);
   3273 HRESULT STDMETHODCALLTYPE IMemAllocator_Decommit_Proxy(
   3274     IMemAllocator* This);
   3275 void __RPC_STUB IMemAllocator_Decommit_Stub(
   3276     IRpcStubBuffer* This,
   3277     IRpcChannelBuffer* pRpcChannelBuffer,
   3278     PRPC_MESSAGE pRpcMessage,
   3279     DWORD* pdwStubPhase);
   3280 HRESULT STDMETHODCALLTYPE IMemAllocator_GetBuffer_Proxy(
   3281     IMemAllocator* This,
   3282     IMediaSample **ppBuffer,
   3283     REFERENCE_TIME *pStartTime,
   3284     REFERENCE_TIME *pEndTime,
   3285     DWORD dwFlags);
   3286 void __RPC_STUB IMemAllocator_GetBuffer_Stub(
   3287     IRpcStubBuffer* This,
   3288     IRpcChannelBuffer* pRpcChannelBuffer,
   3289     PRPC_MESSAGE pRpcMessage,
   3290     DWORD* pdwStubPhase);
   3291 HRESULT STDMETHODCALLTYPE IMemAllocator_ReleaseBuffer_Proxy(
   3292     IMemAllocator* This,
   3293     IMediaSample *pBuffer);
   3294 void __RPC_STUB IMemAllocator_ReleaseBuffer_Stub(
   3295     IRpcStubBuffer* This,
   3296     IRpcChannelBuffer* pRpcChannelBuffer,
   3297     PRPC_MESSAGE pRpcMessage,
   3298     DWORD* pdwStubPhase);
   3299 
   3300 #endif  /* __IMemAllocator_INTERFACE_DEFINED__ */
   3301 
   3302 typedef IMemAllocator *PMEMALLOCATOR;
   3303 
   3304 /*****************************************************************************
   3305  * IMemAllocatorCallbackTemp interface
   3306  */
   3307 #ifndef __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
   3308 #define __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
   3309 
   3310 DEFINE_GUID(IID_IMemAllocatorCallbackTemp, 0x379a0cf0, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
   3311 #if defined(__cplusplus) && !defined(CINTERFACE)
   3312 MIDL_INTERFACE("379a0cf0-c1de-11d2-abf5-00a0c905f375")
   3313 IMemAllocatorCallbackTemp : public IMemAllocator
   3314 {
   3315     virtual HRESULT STDMETHODCALLTYPE SetNotify(
   3316         IMemAllocatorNotifyCallbackTemp *pNotify) = 0;
   3317 
   3318     virtual HRESULT STDMETHODCALLTYPE GetFreeCount(
   3319         LONG *plBuffersFree) = 0;
   3320 
   3321 };
   3322 #ifdef __CRT_UUID_DECL
   3323 __CRT_UUID_DECL(IMemAllocatorCallbackTemp, 0x379a0cf0, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
   3324 #endif
   3325 #else
   3326 typedef struct IMemAllocatorCallbackTempVtbl {
   3327     BEGIN_INTERFACE
   3328 
   3329     /*** IUnknown methods ***/
   3330     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3331         IMemAllocatorCallbackTemp* This,
   3332         REFIID riid,
   3333         void **ppvObject);
   3334 
   3335     ULONG (STDMETHODCALLTYPE *AddRef)(
   3336         IMemAllocatorCallbackTemp* This);
   3337 
   3338     ULONG (STDMETHODCALLTYPE *Release)(
   3339         IMemAllocatorCallbackTemp* This);
   3340 
   3341     /*** IMemAllocator methods ***/
   3342     HRESULT (STDMETHODCALLTYPE *SetProperties)(
   3343         IMemAllocatorCallbackTemp* This,
   3344         ALLOCATOR_PROPERTIES *pRequest,
   3345         ALLOCATOR_PROPERTIES *pActual);
   3346 
   3347     HRESULT (STDMETHODCALLTYPE *GetProperties)(
   3348         IMemAllocatorCallbackTemp* This,
   3349         ALLOCATOR_PROPERTIES *pProps);
   3350 
   3351     HRESULT (STDMETHODCALLTYPE *Commit)(
   3352         IMemAllocatorCallbackTemp* This);
   3353 
   3354     HRESULT (STDMETHODCALLTYPE *Decommit)(
   3355         IMemAllocatorCallbackTemp* This);
   3356 
   3357     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
   3358         IMemAllocatorCallbackTemp* This,
   3359         IMediaSample **ppBuffer,
   3360         REFERENCE_TIME *pStartTime,
   3361         REFERENCE_TIME *pEndTime,
   3362         DWORD dwFlags);
   3363 
   3364     HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)(
   3365         IMemAllocatorCallbackTemp* This,
   3366         IMediaSample *pBuffer);
   3367 
   3368     /*** IMemAllocatorCallbackTemp methods ***/
   3369     HRESULT (STDMETHODCALLTYPE *SetNotify)(
   3370         IMemAllocatorCallbackTemp* This,
   3371         IMemAllocatorNotifyCallbackTemp *pNotify);
   3372 
   3373     HRESULT (STDMETHODCALLTYPE *GetFreeCount)(
   3374         IMemAllocatorCallbackTemp* This,
   3375         LONG *plBuffersFree);
   3376 
   3377     END_INTERFACE
   3378 } IMemAllocatorCallbackTempVtbl;
   3379 interface IMemAllocatorCallbackTemp {
   3380     CONST_VTBL IMemAllocatorCallbackTempVtbl* lpVtbl;
   3381 };
   3382 
   3383 #ifdef COBJMACROS
   3384 #ifndef WIDL_C_INLINE_WRAPPERS
   3385 /*** IUnknown methods ***/
   3386 #define IMemAllocatorCallbackTemp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3387 #define IMemAllocatorCallbackTemp_AddRef(This) (This)->lpVtbl->AddRef(This)
   3388 #define IMemAllocatorCallbackTemp_Release(This) (This)->lpVtbl->Release(This)
   3389 /*** IMemAllocator methods ***/
   3390 #define IMemAllocatorCallbackTemp_SetProperties(This,pRequest,pActual) (This)->lpVtbl->SetProperties(This,pRequest,pActual)
   3391 #define IMemAllocatorCallbackTemp_GetProperties(This,pProps) (This)->lpVtbl->GetProperties(This,pProps)
   3392 #define IMemAllocatorCallbackTemp_Commit(This) (This)->lpVtbl->Commit(This)
   3393 #define IMemAllocatorCallbackTemp_Decommit(This) (This)->lpVtbl->Decommit(This)
   3394 #define IMemAllocatorCallbackTemp_GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags) (This)->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags)
   3395 #define IMemAllocatorCallbackTemp_ReleaseBuffer(This,pBuffer) (This)->lpVtbl->ReleaseBuffer(This,pBuffer)
   3396 /*** IMemAllocatorCallbackTemp methods ***/
   3397 #define IMemAllocatorCallbackTemp_SetNotify(This,pNotify) (This)->lpVtbl->SetNotify(This,pNotify)
   3398 #define IMemAllocatorCallbackTemp_GetFreeCount(This,plBuffersFree) (This)->lpVtbl->GetFreeCount(This,plBuffersFree)
   3399 #else
   3400 /*** IUnknown methods ***/
   3401 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_QueryInterface(IMemAllocatorCallbackTemp* This,REFIID riid,void **ppvObject) {
   3402     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3403 }
   3404 static FORCEINLINE ULONG IMemAllocatorCallbackTemp_AddRef(IMemAllocatorCallbackTemp* This) {
   3405     return This->lpVtbl->AddRef(This);
   3406 }
   3407 static FORCEINLINE ULONG IMemAllocatorCallbackTemp_Release(IMemAllocatorCallbackTemp* This) {
   3408     return This->lpVtbl->Release(This);
   3409 }
   3410 /*** IMemAllocator methods ***/
   3411 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_SetProperties(IMemAllocatorCallbackTemp* This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual) {
   3412     return This->lpVtbl->SetProperties(This,pRequest,pActual);
   3413 }
   3414 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_GetProperties(IMemAllocatorCallbackTemp* This,ALLOCATOR_PROPERTIES *pProps) {
   3415     return This->lpVtbl->GetProperties(This,pProps);
   3416 }
   3417 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_Commit(IMemAllocatorCallbackTemp* This) {
   3418     return This->lpVtbl->Commit(This);
   3419 }
   3420 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_Decommit(IMemAllocatorCallbackTemp* This) {
   3421     return This->lpVtbl->Decommit(This);
   3422 }
   3423 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_GetBuffer(IMemAllocatorCallbackTemp* This,IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags) {
   3424     return This->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags);
   3425 }
   3426 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_ReleaseBuffer(IMemAllocatorCallbackTemp* This,IMediaSample *pBuffer) {
   3427     return This->lpVtbl->ReleaseBuffer(This,pBuffer);
   3428 }
   3429 /*** IMemAllocatorCallbackTemp methods ***/
   3430 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_SetNotify(IMemAllocatorCallbackTemp* This,IMemAllocatorNotifyCallbackTemp *pNotify) {
   3431     return This->lpVtbl->SetNotify(This,pNotify);
   3432 }
   3433 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_GetFreeCount(IMemAllocatorCallbackTemp* This,LONG *plBuffersFree) {
   3434     return This->lpVtbl->GetFreeCount(This,plBuffersFree);
   3435 }
   3436 #endif
   3437 #endif
   3438 
   3439 #endif
   3440 
   3441 HRESULT STDMETHODCALLTYPE IMemAllocatorCallbackTemp_SetNotify_Proxy(
   3442     IMemAllocatorCallbackTemp* This,
   3443     IMemAllocatorNotifyCallbackTemp *pNotify);
   3444 void __RPC_STUB IMemAllocatorCallbackTemp_SetNotify_Stub(
   3445     IRpcStubBuffer* This,
   3446     IRpcChannelBuffer* pRpcChannelBuffer,
   3447     PRPC_MESSAGE pRpcMessage,
   3448     DWORD* pdwStubPhase);
   3449 HRESULT STDMETHODCALLTYPE IMemAllocatorCallbackTemp_GetFreeCount_Proxy(
   3450     IMemAllocatorCallbackTemp* This,
   3451     LONG *plBuffersFree);
   3452 void __RPC_STUB IMemAllocatorCallbackTemp_GetFreeCount_Stub(
   3453     IRpcStubBuffer* This,
   3454     IRpcChannelBuffer* pRpcChannelBuffer,
   3455     PRPC_MESSAGE pRpcMessage,
   3456     DWORD* pdwStubPhase);
   3457 
   3458 #endif  /* __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__ */
   3459 
   3460 
   3461 /*****************************************************************************
   3462  * IMemAllocatorNotifyCallbackTemp interface
   3463  */
   3464 #ifndef __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
   3465 #define __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
   3466 
   3467 DEFINE_GUID(IID_IMemAllocatorNotifyCallbackTemp, 0x92980b30, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
   3468 #if defined(__cplusplus) && !defined(CINTERFACE)
   3469 MIDL_INTERFACE("92980b30-c1de-11d2-abf5-00a0c905f375")
   3470 IMemAllocatorNotifyCallbackTemp : public IUnknown
   3471 {
   3472     virtual HRESULT STDMETHODCALLTYPE NotifyRelease(
   3473         ) = 0;
   3474 
   3475 };
   3476 #ifdef __CRT_UUID_DECL
   3477 __CRT_UUID_DECL(IMemAllocatorNotifyCallbackTemp, 0x92980b30, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
   3478 #endif
   3479 #else
   3480 typedef struct IMemAllocatorNotifyCallbackTempVtbl {
   3481     BEGIN_INTERFACE
   3482 
   3483     /*** IUnknown methods ***/
   3484     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3485         IMemAllocatorNotifyCallbackTemp* This,
   3486         REFIID riid,
   3487         void **ppvObject);
   3488 
   3489     ULONG (STDMETHODCALLTYPE *AddRef)(
   3490         IMemAllocatorNotifyCallbackTemp* This);
   3491 
   3492     ULONG (STDMETHODCALLTYPE *Release)(
   3493         IMemAllocatorNotifyCallbackTemp* This);
   3494 
   3495     /*** IMemAllocatorNotifyCallbackTemp methods ***/
   3496     HRESULT (STDMETHODCALLTYPE *NotifyRelease)(
   3497         IMemAllocatorNotifyCallbackTemp* This);
   3498 
   3499     END_INTERFACE
   3500 } IMemAllocatorNotifyCallbackTempVtbl;
   3501 interface IMemAllocatorNotifyCallbackTemp {
   3502     CONST_VTBL IMemAllocatorNotifyCallbackTempVtbl* lpVtbl;
   3503 };
   3504 
   3505 #ifdef COBJMACROS
   3506 #ifndef WIDL_C_INLINE_WRAPPERS
   3507 /*** IUnknown methods ***/
   3508 #define IMemAllocatorNotifyCallbackTemp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3509 #define IMemAllocatorNotifyCallbackTemp_AddRef(This) (This)->lpVtbl->AddRef(This)
   3510 #define IMemAllocatorNotifyCallbackTemp_Release(This) (This)->lpVtbl->Release(This)
   3511 /*** IMemAllocatorNotifyCallbackTemp methods ***/
   3512 #define IMemAllocatorNotifyCallbackTemp_NotifyRelease(This) (This)->lpVtbl->NotifyRelease(This)
   3513 #else
   3514 /*** IUnknown methods ***/
   3515 static FORCEINLINE HRESULT IMemAllocatorNotifyCallbackTemp_QueryInterface(IMemAllocatorNotifyCallbackTemp* This,REFIID riid,void **ppvObject) {
   3516     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3517 }
   3518 static FORCEINLINE ULONG IMemAllocatorNotifyCallbackTemp_AddRef(IMemAllocatorNotifyCallbackTemp* This) {
   3519     return This->lpVtbl->AddRef(This);
   3520 }
   3521 static FORCEINLINE ULONG IMemAllocatorNotifyCallbackTemp_Release(IMemAllocatorNotifyCallbackTemp* This) {
   3522     return This->lpVtbl->Release(This);
   3523 }
   3524 /*** IMemAllocatorNotifyCallbackTemp methods ***/
   3525 static FORCEINLINE HRESULT IMemAllocatorNotifyCallbackTemp_NotifyRelease(IMemAllocatorNotifyCallbackTemp* This) {
   3526     return This->lpVtbl->NotifyRelease(This);
   3527 }
   3528 #endif
   3529 #endif
   3530 
   3531 #endif
   3532 
   3533 HRESULT STDMETHODCALLTYPE IMemAllocatorNotifyCallbackTemp_NotifyRelease_Proxy(
   3534     IMemAllocatorNotifyCallbackTemp* This);
   3535 void __RPC_STUB IMemAllocatorNotifyCallbackTemp_NotifyRelease_Stub(
   3536     IRpcStubBuffer* This,
   3537     IRpcChannelBuffer* pRpcChannelBuffer,
   3538     PRPC_MESSAGE pRpcMessage,
   3539     DWORD* pdwStubPhase);
   3540 
   3541 #endif  /* __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__ */
   3542 
   3543 
   3544 /*****************************************************************************
   3545  * IMemInputPin interface
   3546  */
   3547 #ifndef __IMemInputPin_INTERFACE_DEFINED__
   3548 #define __IMemInputPin_INTERFACE_DEFINED__
   3549 
   3550 DEFINE_GUID(IID_IMemInputPin, 0x56a8689d, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   3551 #if defined(__cplusplus) && !defined(CINTERFACE)
   3552 MIDL_INTERFACE("56a8689d-0ad4-11ce-b03a-0020af0ba770")
   3553 IMemInputPin : public IUnknown
   3554 {
   3555     virtual HRESULT STDMETHODCALLTYPE GetAllocator(
   3556         IMemAllocator **ppAllocator) = 0;
   3557 
   3558     virtual HRESULT STDMETHODCALLTYPE NotifyAllocator(
   3559         IMemAllocator *pAllocator,
   3560         WINBOOL bReadOnly) = 0;
   3561 
   3562     virtual HRESULT STDMETHODCALLTYPE GetAllocatorRequirements(
   3563         ALLOCATOR_PROPERTIES *pProps) = 0;
   3564 
   3565     virtual HRESULT STDMETHODCALLTYPE Receive(
   3566         IMediaSample *pSample) = 0;
   3567 
   3568     virtual HRESULT STDMETHODCALLTYPE ReceiveMultiple(
   3569         IMediaSample **pSamples,
   3570         LONG nSamples,
   3571         LONG *nSamplesProcessed) = 0;
   3572 
   3573     virtual HRESULT STDMETHODCALLTYPE ReceiveCanBlock(
   3574         ) = 0;
   3575 
   3576 };
   3577 #ifdef __CRT_UUID_DECL
   3578 __CRT_UUID_DECL(IMemInputPin, 0x56a8689d, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   3579 #endif
   3580 #else
   3581 typedef struct IMemInputPinVtbl {
   3582     BEGIN_INTERFACE
   3583 
   3584     /*** IUnknown methods ***/
   3585     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3586         IMemInputPin* This,
   3587         REFIID riid,
   3588         void **ppvObject);
   3589 
   3590     ULONG (STDMETHODCALLTYPE *AddRef)(
   3591         IMemInputPin* This);
   3592 
   3593     ULONG (STDMETHODCALLTYPE *Release)(
   3594         IMemInputPin* This);
   3595 
   3596     /*** IMemInputPin methods ***/
   3597     HRESULT (STDMETHODCALLTYPE *GetAllocator)(
   3598         IMemInputPin* This,
   3599         IMemAllocator **ppAllocator);
   3600 
   3601     HRESULT (STDMETHODCALLTYPE *NotifyAllocator)(
   3602         IMemInputPin* This,
   3603         IMemAllocator *pAllocator,
   3604         WINBOOL bReadOnly);
   3605 
   3606     HRESULT (STDMETHODCALLTYPE *GetAllocatorRequirements)(
   3607         IMemInputPin* This,
   3608         ALLOCATOR_PROPERTIES *pProps);
   3609 
   3610     HRESULT (STDMETHODCALLTYPE *Receive)(
   3611         IMemInputPin* This,
   3612         IMediaSample *pSample);
   3613 
   3614     HRESULT (STDMETHODCALLTYPE *ReceiveMultiple)(
   3615         IMemInputPin* This,
   3616         IMediaSample **pSamples,
   3617         LONG nSamples,
   3618         LONG *nSamplesProcessed);
   3619 
   3620     HRESULT (STDMETHODCALLTYPE *ReceiveCanBlock)(
   3621         IMemInputPin* This);
   3622 
   3623     END_INTERFACE
   3624 } IMemInputPinVtbl;
   3625 interface IMemInputPin {
   3626     CONST_VTBL IMemInputPinVtbl* lpVtbl;
   3627 };
   3628 
   3629 #ifdef COBJMACROS
   3630 #ifndef WIDL_C_INLINE_WRAPPERS
   3631 /*** IUnknown methods ***/
   3632 #define IMemInputPin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3633 #define IMemInputPin_AddRef(This) (This)->lpVtbl->AddRef(This)
   3634 #define IMemInputPin_Release(This) (This)->lpVtbl->Release(This)
   3635 /*** IMemInputPin methods ***/
   3636 #define IMemInputPin_GetAllocator(This,ppAllocator) (This)->lpVtbl->GetAllocator(This,ppAllocator)
   3637 #define IMemInputPin_NotifyAllocator(This,pAllocator,bReadOnly) (This)->lpVtbl->NotifyAllocator(This,pAllocator,bReadOnly)
   3638 #define IMemInputPin_GetAllocatorRequirements(This,pProps) (This)->lpVtbl->GetAllocatorRequirements(This,pProps)
   3639 #define IMemInputPin_Receive(This,pSample) (This)->lpVtbl->Receive(This,pSample)
   3640 #define IMemInputPin_ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed) (This)->lpVtbl->ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed)
   3641 #define IMemInputPin_ReceiveCanBlock(This) (This)->lpVtbl->ReceiveCanBlock(This)
   3642 #else
   3643 /*** IUnknown methods ***/
   3644 static FORCEINLINE HRESULT IMemInputPin_QueryInterface(IMemInputPin* This,REFIID riid,void **ppvObject) {
   3645     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3646 }
   3647 static FORCEINLINE ULONG IMemInputPin_AddRef(IMemInputPin* This) {
   3648     return This->lpVtbl->AddRef(This);
   3649 }
   3650 static FORCEINLINE ULONG IMemInputPin_Release(IMemInputPin* This) {
   3651     return This->lpVtbl->Release(This);
   3652 }
   3653 /*** IMemInputPin methods ***/
   3654 static FORCEINLINE HRESULT IMemInputPin_GetAllocator(IMemInputPin* This,IMemAllocator **ppAllocator) {
   3655     return This->lpVtbl->GetAllocator(This,ppAllocator);
   3656 }
   3657 static FORCEINLINE HRESULT IMemInputPin_NotifyAllocator(IMemInputPin* This,IMemAllocator *pAllocator,WINBOOL bReadOnly) {
   3658     return This->lpVtbl->NotifyAllocator(This,pAllocator,bReadOnly);
   3659 }
   3660 static FORCEINLINE HRESULT IMemInputPin_GetAllocatorRequirements(IMemInputPin* This,ALLOCATOR_PROPERTIES *pProps) {
   3661     return This->lpVtbl->GetAllocatorRequirements(This,pProps);
   3662 }
   3663 static FORCEINLINE HRESULT IMemInputPin_Receive(IMemInputPin* This,IMediaSample *pSample) {
   3664     return This->lpVtbl->Receive(This,pSample);
   3665 }
   3666 static FORCEINLINE HRESULT IMemInputPin_ReceiveMultiple(IMemInputPin* This,IMediaSample **pSamples,LONG nSamples,LONG *nSamplesProcessed) {
   3667     return This->lpVtbl->ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed);
   3668 }
   3669 static FORCEINLINE HRESULT IMemInputPin_ReceiveCanBlock(IMemInputPin* This) {
   3670     return This->lpVtbl->ReceiveCanBlock(This);
   3671 }
   3672 #endif
   3673 #endif
   3674 
   3675 #endif
   3676 
   3677 HRESULT STDMETHODCALLTYPE IMemInputPin_GetAllocator_Proxy(
   3678     IMemInputPin* This,
   3679     IMemAllocator **ppAllocator);
   3680 void __RPC_STUB IMemInputPin_GetAllocator_Stub(
   3681     IRpcStubBuffer* This,
   3682     IRpcChannelBuffer* pRpcChannelBuffer,
   3683     PRPC_MESSAGE pRpcMessage,
   3684     DWORD* pdwStubPhase);
   3685 HRESULT STDMETHODCALLTYPE IMemInputPin_NotifyAllocator_Proxy(
   3686     IMemInputPin* This,
   3687     IMemAllocator *pAllocator,
   3688     WINBOOL bReadOnly);
   3689 void __RPC_STUB IMemInputPin_NotifyAllocator_Stub(
   3690     IRpcStubBuffer* This,
   3691     IRpcChannelBuffer* pRpcChannelBuffer,
   3692     PRPC_MESSAGE pRpcMessage,
   3693     DWORD* pdwStubPhase);
   3694 HRESULT STDMETHODCALLTYPE IMemInputPin_GetAllocatorRequirements_Proxy(
   3695     IMemInputPin* This,
   3696     ALLOCATOR_PROPERTIES *pProps);
   3697 void __RPC_STUB IMemInputPin_GetAllocatorRequirements_Stub(
   3698     IRpcStubBuffer* This,
   3699     IRpcChannelBuffer* pRpcChannelBuffer,
   3700     PRPC_MESSAGE pRpcMessage,
   3701     DWORD* pdwStubPhase);
   3702 HRESULT STDMETHODCALLTYPE IMemInputPin_Receive_Proxy(
   3703     IMemInputPin* This,
   3704     IMediaSample *pSample);
   3705 void __RPC_STUB IMemInputPin_Receive_Stub(
   3706     IRpcStubBuffer* This,
   3707     IRpcChannelBuffer* pRpcChannelBuffer,
   3708     PRPC_MESSAGE pRpcMessage,
   3709     DWORD* pdwStubPhase);
   3710 HRESULT STDMETHODCALLTYPE IMemInputPin_ReceiveMultiple_Proxy(
   3711     IMemInputPin* This,
   3712     IMediaSample **pSamples,
   3713     LONG nSamples,
   3714     LONG *nSamplesProcessed);
   3715 void __RPC_STUB IMemInputPin_ReceiveMultiple_Stub(
   3716     IRpcStubBuffer* This,
   3717     IRpcChannelBuffer* pRpcChannelBuffer,
   3718     PRPC_MESSAGE pRpcMessage,
   3719     DWORD* pdwStubPhase);
   3720 HRESULT STDMETHODCALLTYPE IMemInputPin_ReceiveCanBlock_Proxy(
   3721     IMemInputPin* This);
   3722 void __RPC_STUB IMemInputPin_ReceiveCanBlock_Stub(
   3723     IRpcStubBuffer* This,
   3724     IRpcChannelBuffer* pRpcChannelBuffer,
   3725     PRPC_MESSAGE pRpcMessage,
   3726     DWORD* pdwStubPhase);
   3727 
   3728 #endif  /* __IMemInputPin_INTERFACE_DEFINED__ */
   3729 
   3730 typedef IMemInputPin *PMEMINPUTPIN;
   3731 
   3732 /*****************************************************************************
   3733  * IAMovieSetup interface
   3734  */
   3735 #ifndef __IAMovieSetup_INTERFACE_DEFINED__
   3736 #define __IAMovieSetup_INTERFACE_DEFINED__
   3737 
   3738 DEFINE_GUID(IID_IAMovieSetup, 0xa3d8cec0, 0x7e5a, 0x11cf, 0xbb,0xc5, 0x00,0x80,0x5f,0x6c,0xef,0x20);
   3739 #if defined(__cplusplus) && !defined(CINTERFACE)
   3740 MIDL_INTERFACE("a3d8cec0-7e5a-11cf-bbc5-00805f6cef20")
   3741 IAMovieSetup : public IUnknown
   3742 {
   3743     virtual HRESULT STDMETHODCALLTYPE Register(
   3744         ) = 0;
   3745 
   3746     virtual HRESULT STDMETHODCALLTYPE Unregister(
   3747         ) = 0;
   3748 
   3749 };
   3750 #ifdef __CRT_UUID_DECL
   3751 __CRT_UUID_DECL(IAMovieSetup, 0xa3d8cec0, 0x7e5a, 0x11cf, 0xbb,0xc5, 0x00,0x80,0x5f,0x6c,0xef,0x20)
   3752 #endif
   3753 #else
   3754 typedef struct IAMovieSetupVtbl {
   3755     BEGIN_INTERFACE
   3756 
   3757     /*** IUnknown methods ***/
   3758     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3759         IAMovieSetup* This,
   3760         REFIID riid,
   3761         void **ppvObject);
   3762 
   3763     ULONG (STDMETHODCALLTYPE *AddRef)(
   3764         IAMovieSetup* This);
   3765 
   3766     ULONG (STDMETHODCALLTYPE *Release)(
   3767         IAMovieSetup* This);
   3768 
   3769     /*** IAMovieSetup methods ***/
   3770     HRESULT (STDMETHODCALLTYPE *Register)(
   3771         IAMovieSetup* This);
   3772 
   3773     HRESULT (STDMETHODCALLTYPE *Unregister)(
   3774         IAMovieSetup* This);
   3775 
   3776     END_INTERFACE
   3777 } IAMovieSetupVtbl;
   3778 interface IAMovieSetup {
   3779     CONST_VTBL IAMovieSetupVtbl* lpVtbl;
   3780 };
   3781 
   3782 #ifdef COBJMACROS
   3783 #ifndef WIDL_C_INLINE_WRAPPERS
   3784 /*** IUnknown methods ***/
   3785 #define IAMovieSetup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3786 #define IAMovieSetup_AddRef(This) (This)->lpVtbl->AddRef(This)
   3787 #define IAMovieSetup_Release(This) (This)->lpVtbl->Release(This)
   3788 /*** IAMovieSetup methods ***/
   3789 #define IAMovieSetup_Register(This) (This)->lpVtbl->Register(This)
   3790 #define IAMovieSetup_Unregister(This) (This)->lpVtbl->Unregister(This)
   3791 #else
   3792 /*** IUnknown methods ***/
   3793 static FORCEINLINE HRESULT IAMovieSetup_QueryInterface(IAMovieSetup* This,REFIID riid,void **ppvObject) {
   3794     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3795 }
   3796 static FORCEINLINE ULONG IAMovieSetup_AddRef(IAMovieSetup* This) {
   3797     return This->lpVtbl->AddRef(This);
   3798 }
   3799 static FORCEINLINE ULONG IAMovieSetup_Release(IAMovieSetup* This) {
   3800     return This->lpVtbl->Release(This);
   3801 }
   3802 /*** IAMovieSetup methods ***/
   3803 static FORCEINLINE HRESULT IAMovieSetup_Register(IAMovieSetup* This) {
   3804     return This->lpVtbl->Register(This);
   3805 }
   3806 static FORCEINLINE HRESULT IAMovieSetup_Unregister(IAMovieSetup* This) {
   3807     return This->lpVtbl->Unregister(This);
   3808 }
   3809 #endif
   3810 #endif
   3811 
   3812 #endif
   3813 
   3814 HRESULT STDMETHODCALLTYPE IAMovieSetup_Register_Proxy(
   3815     IAMovieSetup* This);
   3816 void __RPC_STUB IAMovieSetup_Register_Stub(
   3817     IRpcStubBuffer* This,
   3818     IRpcChannelBuffer* pRpcChannelBuffer,
   3819     PRPC_MESSAGE pRpcMessage,
   3820     DWORD* pdwStubPhase);
   3821 HRESULT STDMETHODCALLTYPE IAMovieSetup_Unregister_Proxy(
   3822     IAMovieSetup* This);
   3823 void __RPC_STUB IAMovieSetup_Unregister_Stub(
   3824     IRpcStubBuffer* This,
   3825     IRpcChannelBuffer* pRpcChannelBuffer,
   3826     PRPC_MESSAGE pRpcMessage,
   3827     DWORD* pdwStubPhase);
   3828 
   3829 #endif  /* __IAMovieSetup_INTERFACE_DEFINED__ */
   3830 
   3831 typedef IAMovieSetup *PAMOVIESETUP;
   3832 
   3833 typedef enum AM_SEEKING_SeekingFlags {
   3834     AM_SEEKING_NoPositioning = 0x0,
   3835     AM_SEEKING_AbsolutePositioning = 0x1,
   3836     AM_SEEKING_RelativePositioning = 0x2,
   3837     AM_SEEKING_IncrementalPositioning = 0x3,
   3838     AM_SEEKING_PositioningBitsMask = 0x3,
   3839     AM_SEEKING_SeekToKeyFrame = 0x4,
   3840     AM_SEEKING_ReturnTime = 0x8,
   3841     AM_SEEKING_Segment = 0x10,
   3842     AM_SEEKING_NoFlush = 0x20
   3843 } AM_SEEKING_SEEKING_FLAGS;
   3844 
   3845 typedef enum AM_SEEKING_SeekingCapabilities {
   3846     AM_SEEKING_CanSeekAbsolute = 0x1,
   3847     AM_SEEKING_CanSeekForwards = 0x2,
   3848     AM_SEEKING_CanSeekBackwards = 0x4,
   3849     AM_SEEKING_CanGetCurrentPos = 0x8,
   3850     AM_SEEKING_CanGetStopPos = 0x10,
   3851     AM_SEEKING_CanGetDuration = 0x20,
   3852     AM_SEEKING_CanPlayBackwards = 0x40,
   3853     AM_SEEKING_CanDoSegments = 0x80,
   3854     AM_SEEKING_Source = 0x100
   3855 } AM_SEEKING_SEEKING_CAPABILITIES;
   3856 
   3857 /*****************************************************************************
   3858  * IMediaSeeking interface
   3859  */
   3860 #ifndef __IMediaSeeking_INTERFACE_DEFINED__
   3861 #define __IMediaSeeking_INTERFACE_DEFINED__
   3862 
   3863 DEFINE_GUID(IID_IMediaSeeking, 0x36b73880, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
   3864 #if defined(__cplusplus) && !defined(CINTERFACE)
   3865 MIDL_INTERFACE("36b73880-c2c8-11cf-8b46-00805f6cef60")
   3866 IMediaSeeking : public IUnknown
   3867 {
   3868     virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
   3869         DWORD *pCapabilities) = 0;
   3870 
   3871     virtual HRESULT STDMETHODCALLTYPE CheckCapabilities(
   3872         DWORD *pCapabilities) = 0;
   3873 
   3874     virtual HRESULT STDMETHODCALLTYPE IsFormatSupported(
   3875         const GUID *pFormat) = 0;
   3876 
   3877     virtual HRESULT STDMETHODCALLTYPE QueryPreferredFormat(
   3878         GUID *pFormat) = 0;
   3879 
   3880     virtual HRESULT STDMETHODCALLTYPE GetTimeFormat(
   3881         GUID *pFormat) = 0;
   3882 
   3883     virtual HRESULT STDMETHODCALLTYPE IsUsingTimeFormat(
   3884         const GUID *pFormat) = 0;
   3885 
   3886     virtual HRESULT STDMETHODCALLTYPE SetTimeFormat(
   3887         const GUID *pFormat) = 0;
   3888 
   3889     virtual HRESULT STDMETHODCALLTYPE GetDuration(
   3890         LONGLONG *pDuration) = 0;
   3891 
   3892     virtual HRESULT STDMETHODCALLTYPE GetStopPosition(
   3893         LONGLONG *pStop) = 0;
   3894 
   3895     virtual HRESULT STDMETHODCALLTYPE GetCurrentPosition(
   3896         LONGLONG *pCurrent) = 0;
   3897 
   3898     virtual HRESULT STDMETHODCALLTYPE ConvertTimeFormat(
   3899         LONGLONG *pTarget,
   3900         const GUID *pTargetFormat,
   3901         LONGLONG Source,
   3902         const GUID *pSourceFormat) = 0;
   3903 
   3904     virtual HRESULT STDMETHODCALLTYPE SetPositions(
   3905         LONGLONG *pCurrent,
   3906         DWORD dwCurrentFlags,
   3907         LONGLONG *pStop,
   3908         DWORD dwStopFlags) = 0;
   3909 
   3910     virtual HRESULT STDMETHODCALLTYPE GetPositions(
   3911         LONGLONG *pCurrent,
   3912         LONGLONG *pStop) = 0;
   3913 
   3914     virtual HRESULT STDMETHODCALLTYPE GetAvailable(
   3915         LONGLONG *pEarliest,
   3916         LONGLONG *pLatest) = 0;
   3917 
   3918     virtual HRESULT STDMETHODCALLTYPE SetRate(
   3919         double dRate) = 0;
   3920 
   3921     virtual HRESULT STDMETHODCALLTYPE GetRate(
   3922         double *pdRate) = 0;
   3923 
   3924     virtual HRESULT STDMETHODCALLTYPE GetPreroll(
   3925         LONGLONG *pllPreroll) = 0;
   3926 
   3927 };
   3928 #ifdef __CRT_UUID_DECL
   3929 __CRT_UUID_DECL(IMediaSeeking, 0x36b73880, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
   3930 #endif
   3931 #else
   3932 typedef struct IMediaSeekingVtbl {
   3933     BEGIN_INTERFACE
   3934 
   3935     /*** IUnknown methods ***/
   3936     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3937         IMediaSeeking* This,
   3938         REFIID riid,
   3939         void **ppvObject);
   3940 
   3941     ULONG (STDMETHODCALLTYPE *AddRef)(
   3942         IMediaSeeking* This);
   3943 
   3944     ULONG (STDMETHODCALLTYPE *Release)(
   3945         IMediaSeeking* This);
   3946 
   3947     /*** IMediaSeeking methods ***/
   3948     HRESULT (STDMETHODCALLTYPE *GetCapabilities)(
   3949         IMediaSeeking* This,
   3950         DWORD *pCapabilities);
   3951 
   3952     HRESULT (STDMETHODCALLTYPE *CheckCapabilities)(
   3953         IMediaSeeking* This,
   3954         DWORD *pCapabilities);
   3955 
   3956     HRESULT (STDMETHODCALLTYPE *IsFormatSupported)(
   3957         IMediaSeeking* This,
   3958         const GUID *pFormat);
   3959 
   3960     HRESULT (STDMETHODCALLTYPE *QueryPreferredFormat)(
   3961         IMediaSeeking* This,
   3962         GUID *pFormat);
   3963 
   3964     HRESULT (STDMETHODCALLTYPE *GetTimeFormat)(
   3965         IMediaSeeking* This,
   3966         GUID *pFormat);
   3967 
   3968     HRESULT (STDMETHODCALLTYPE *IsUsingTimeFormat)(
   3969         IMediaSeeking* This,
   3970         const GUID *pFormat);
   3971 
   3972     HRESULT (STDMETHODCALLTYPE *SetTimeFormat)(
   3973         IMediaSeeking* This,
   3974         const GUID *pFormat);
   3975 
   3976     HRESULT (STDMETHODCALLTYPE *GetDuration)(
   3977         IMediaSeeking* This,
   3978         LONGLONG *pDuration);
   3979 
   3980     HRESULT (STDMETHODCALLTYPE *GetStopPosition)(
   3981         IMediaSeeking* This,
   3982         LONGLONG *pStop);
   3983 
   3984     HRESULT (STDMETHODCALLTYPE *GetCurrentPosition)(
   3985         IMediaSeeking* This,
   3986         LONGLONG *pCurrent);
   3987 
   3988     HRESULT (STDMETHODCALLTYPE *ConvertTimeFormat)(
   3989         IMediaSeeking* This,
   3990         LONGLONG *pTarget,
   3991         const GUID *pTargetFormat,
   3992         LONGLONG Source,
   3993         const GUID *pSourceFormat);
   3994 
   3995     HRESULT (STDMETHODCALLTYPE *SetPositions)(
   3996         IMediaSeeking* This,
   3997         LONGLONG *pCurrent,
   3998         DWORD dwCurrentFlags,
   3999         LONGLONG *pStop,
   4000         DWORD dwStopFlags);
   4001 
   4002     HRESULT (STDMETHODCALLTYPE *GetPositions)(
   4003         IMediaSeeking* This,
   4004         LONGLONG *pCurrent,
   4005         LONGLONG *pStop);
   4006 
   4007     HRESULT (STDMETHODCALLTYPE *GetAvailable)(
   4008         IMediaSeeking* This,
   4009         LONGLONG *pEarliest,
   4010         LONGLONG *pLatest);
   4011 
   4012     HRESULT (STDMETHODCALLTYPE *SetRate)(
   4013         IMediaSeeking* This,
   4014         double dRate);
   4015 
   4016     HRESULT (STDMETHODCALLTYPE *GetRate)(
   4017         IMediaSeeking* This,
   4018         double *pdRate);
   4019 
   4020     HRESULT (STDMETHODCALLTYPE *GetPreroll)(
   4021         IMediaSeeking* This,
   4022         LONGLONG *pllPreroll);
   4023 
   4024     END_INTERFACE
   4025 } IMediaSeekingVtbl;
   4026 interface IMediaSeeking {
   4027     CONST_VTBL IMediaSeekingVtbl* lpVtbl;
   4028 };
   4029 
   4030 #ifdef COBJMACROS
   4031 #ifndef WIDL_C_INLINE_WRAPPERS
   4032 /*** IUnknown methods ***/
   4033 #define IMediaSeeking_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4034 #define IMediaSeeking_AddRef(This) (This)->lpVtbl->AddRef(This)
   4035 #define IMediaSeeking_Release(This) (This)->lpVtbl->Release(This)
   4036 /*** IMediaSeeking methods ***/
   4037 #define IMediaSeeking_GetCapabilities(This,pCapabilities) (This)->lpVtbl->GetCapabilities(This,pCapabilities)
   4038 #define IMediaSeeking_CheckCapabilities(This,pCapabilities) (This)->lpVtbl->CheckCapabilities(This,pCapabilities)
   4039 #define IMediaSeeking_IsFormatSupported(This,pFormat) (This)->lpVtbl->IsFormatSupported(This,pFormat)
   4040 #define IMediaSeeking_QueryPreferredFormat(This,pFormat) (This)->lpVtbl->QueryPreferredFormat(This,pFormat)
   4041 #define IMediaSeeking_GetTimeFormat(This,pFormat) (This)->lpVtbl->GetTimeFormat(This,pFormat)
   4042 #define IMediaSeeking_IsUsingTimeFormat(This,pFormat) (This)->lpVtbl->IsUsingTimeFormat(This,pFormat)
   4043 #define IMediaSeeking_SetTimeFormat(This,pFormat) (This)->lpVtbl->SetTimeFormat(This,pFormat)
   4044 #define IMediaSeeking_GetDuration(This,pDuration) (This)->lpVtbl->GetDuration(This,pDuration)
   4045 #define IMediaSeeking_GetStopPosition(This,pStop) (This)->lpVtbl->GetStopPosition(This,pStop)
   4046 #define IMediaSeeking_GetCurrentPosition(This,pCurrent) (This)->lpVtbl->GetCurrentPosition(This,pCurrent)
   4047 #define IMediaSeeking_ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat) (This)->lpVtbl->ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat)
   4048 #define IMediaSeeking_SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags) (This)->lpVtbl->SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags)
   4049 #define IMediaSeeking_GetPositions(This,pCurrent,pStop) (This)->lpVtbl->GetPositions(This,pCurrent,pStop)
   4050 #define IMediaSeeking_GetAvailable(This,pEarliest,pLatest) (This)->lpVtbl->GetAvailable(This,pEarliest,pLatest)
   4051 #define IMediaSeeking_SetRate(This,dRate) (This)->lpVtbl->SetRate(This,dRate)
   4052 #define IMediaSeeking_GetRate(This,pdRate) (This)->lpVtbl->GetRate(This,pdRate)
   4053 #define IMediaSeeking_GetPreroll(This,pllPreroll) (This)->lpVtbl->GetPreroll(This,pllPreroll)
   4054 #else
   4055 /*** IUnknown methods ***/
   4056 static FORCEINLINE HRESULT IMediaSeeking_QueryInterface(IMediaSeeking* This,REFIID riid,void **ppvObject) {
   4057     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4058 }
   4059 static FORCEINLINE ULONG IMediaSeeking_AddRef(IMediaSeeking* This) {
   4060     return This->lpVtbl->AddRef(This);
   4061 }
   4062 static FORCEINLINE ULONG IMediaSeeking_Release(IMediaSeeking* This) {
   4063     return This->lpVtbl->Release(This);
   4064 }
   4065 /*** IMediaSeeking methods ***/
   4066 static FORCEINLINE HRESULT IMediaSeeking_GetCapabilities(IMediaSeeking* This,DWORD *pCapabilities) {
   4067     return This->lpVtbl->GetCapabilities(This,pCapabilities);
   4068 }
   4069 static FORCEINLINE HRESULT IMediaSeeking_CheckCapabilities(IMediaSeeking* This,DWORD *pCapabilities) {
   4070     return This->lpVtbl->CheckCapabilities(This,pCapabilities);
   4071 }
   4072 static FORCEINLINE HRESULT IMediaSeeking_IsFormatSupported(IMediaSeeking* This,const GUID *pFormat) {
   4073     return This->lpVtbl->IsFormatSupported(This,pFormat);
   4074 }
   4075 static FORCEINLINE HRESULT IMediaSeeking_QueryPreferredFormat(IMediaSeeking* This,GUID *pFormat) {
   4076     return This->lpVtbl->QueryPreferredFormat(This,pFormat);
   4077 }
   4078 static FORCEINLINE HRESULT IMediaSeeking_GetTimeFormat(IMediaSeeking* This,GUID *pFormat) {
   4079     return This->lpVtbl->GetTimeFormat(This,pFormat);
   4080 }
   4081 static FORCEINLINE HRESULT IMediaSeeking_IsUsingTimeFormat(IMediaSeeking* This,const GUID *pFormat) {
   4082     return This->lpVtbl->IsUsingTimeFormat(This,pFormat);
   4083 }
   4084 static FORCEINLINE HRESULT IMediaSeeking_SetTimeFormat(IMediaSeeking* This,const GUID *pFormat) {
   4085     return This->lpVtbl->SetTimeFormat(This,pFormat);
   4086 }
   4087 static FORCEINLINE HRESULT IMediaSeeking_GetDuration(IMediaSeeking* This,LONGLONG *pDuration) {
   4088     return This->lpVtbl->GetDuration(This,pDuration);
   4089 }
   4090 static FORCEINLINE HRESULT IMediaSeeking_GetStopPosition(IMediaSeeking* This,LONGLONG *pStop) {
   4091     return This->lpVtbl->GetStopPosition(This,pStop);
   4092 }
   4093 static FORCEINLINE HRESULT IMediaSeeking_GetCurrentPosition(IMediaSeeking* This,LONGLONG *pCurrent) {
   4094     return This->lpVtbl->GetCurrentPosition(This,pCurrent);
   4095 }
   4096 static FORCEINLINE HRESULT IMediaSeeking_ConvertTimeFormat(IMediaSeeking* This,LONGLONG *pTarget,const GUID *pTargetFormat,LONGLONG Source,const GUID *pSourceFormat) {
   4097     return This->lpVtbl->ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat);
   4098 }
   4099 static FORCEINLINE HRESULT IMediaSeeking_SetPositions(IMediaSeeking* This,LONGLONG *pCurrent,DWORD dwCurrentFlags,LONGLONG *pStop,DWORD dwStopFlags) {
   4100     return This->lpVtbl->SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags);
   4101 }
   4102 static FORCEINLINE HRESULT IMediaSeeking_GetPositions(IMediaSeeking* This,LONGLONG *pCurrent,LONGLONG *pStop) {
   4103     return This->lpVtbl->GetPositions(This,pCurrent,pStop);
   4104 }
   4105 static FORCEINLINE HRESULT IMediaSeeking_GetAvailable(IMediaSeeking* This,LONGLONG *pEarliest,LONGLONG *pLatest) {
   4106     return This->lpVtbl->GetAvailable(This,pEarliest,pLatest);
   4107 }
   4108 static FORCEINLINE HRESULT IMediaSeeking_SetRate(IMediaSeeking* This,double dRate) {
   4109     return This->lpVtbl->SetRate(This,dRate);
   4110 }
   4111 static FORCEINLINE HRESULT IMediaSeeking_GetRate(IMediaSeeking* This,double *pdRate) {
   4112     return This->lpVtbl->GetRate(This,pdRate);
   4113 }
   4114 static FORCEINLINE HRESULT IMediaSeeking_GetPreroll(IMediaSeeking* This,LONGLONG *pllPreroll) {
   4115     return This->lpVtbl->GetPreroll(This,pllPreroll);
   4116 }
   4117 #endif
   4118 #endif
   4119 
   4120 #endif
   4121 
   4122 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetCapabilities_Proxy(
   4123     IMediaSeeking* This,
   4124     DWORD *pCapabilities);
   4125 void __RPC_STUB IMediaSeeking_GetCapabilities_Stub(
   4126     IRpcStubBuffer* This,
   4127     IRpcChannelBuffer* pRpcChannelBuffer,
   4128     PRPC_MESSAGE pRpcMessage,
   4129     DWORD* pdwStubPhase);
   4130 HRESULT STDMETHODCALLTYPE IMediaSeeking_CheckCapabilities_Proxy(
   4131     IMediaSeeking* This,
   4132     DWORD *pCapabilities);
   4133 void __RPC_STUB IMediaSeeking_CheckCapabilities_Stub(
   4134     IRpcStubBuffer* This,
   4135     IRpcChannelBuffer* pRpcChannelBuffer,
   4136     PRPC_MESSAGE pRpcMessage,
   4137     DWORD* pdwStubPhase);
   4138 HRESULT STDMETHODCALLTYPE IMediaSeeking_IsFormatSupported_Proxy(
   4139     IMediaSeeking* This,
   4140     const GUID *pFormat);
   4141 void __RPC_STUB IMediaSeeking_IsFormatSupported_Stub(
   4142     IRpcStubBuffer* This,
   4143     IRpcChannelBuffer* pRpcChannelBuffer,
   4144     PRPC_MESSAGE pRpcMessage,
   4145     DWORD* pdwStubPhase);
   4146 HRESULT STDMETHODCALLTYPE IMediaSeeking_QueryPreferredFormat_Proxy(
   4147     IMediaSeeking* This,
   4148     GUID *pFormat);
   4149 void __RPC_STUB IMediaSeeking_QueryPreferredFormat_Stub(
   4150     IRpcStubBuffer* This,
   4151     IRpcChannelBuffer* pRpcChannelBuffer,
   4152     PRPC_MESSAGE pRpcMessage,
   4153     DWORD* pdwStubPhase);
   4154 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetTimeFormat_Proxy(
   4155     IMediaSeeking* This,
   4156     GUID *pFormat);
   4157 void __RPC_STUB IMediaSeeking_GetTimeFormat_Stub(
   4158     IRpcStubBuffer* This,
   4159     IRpcChannelBuffer* pRpcChannelBuffer,
   4160     PRPC_MESSAGE pRpcMessage,
   4161     DWORD* pdwStubPhase);
   4162 HRESULT STDMETHODCALLTYPE IMediaSeeking_IsUsingTimeFormat_Proxy(
   4163     IMediaSeeking* This,
   4164     const GUID *pFormat);
   4165 void __RPC_STUB IMediaSeeking_IsUsingTimeFormat_Stub(
   4166     IRpcStubBuffer* This,
   4167     IRpcChannelBuffer* pRpcChannelBuffer,
   4168     PRPC_MESSAGE pRpcMessage,
   4169     DWORD* pdwStubPhase);
   4170 HRESULT STDMETHODCALLTYPE IMediaSeeking_SetTimeFormat_Proxy(
   4171     IMediaSeeking* This,
   4172     const GUID *pFormat);
   4173 void __RPC_STUB IMediaSeeking_SetTimeFormat_Stub(
   4174     IRpcStubBuffer* This,
   4175     IRpcChannelBuffer* pRpcChannelBuffer,
   4176     PRPC_MESSAGE pRpcMessage,
   4177     DWORD* pdwStubPhase);
   4178 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetDuration_Proxy(
   4179     IMediaSeeking* This,
   4180     LONGLONG *pDuration);
   4181 void __RPC_STUB IMediaSeeking_GetDuration_Stub(
   4182     IRpcStubBuffer* This,
   4183     IRpcChannelBuffer* pRpcChannelBuffer,
   4184     PRPC_MESSAGE pRpcMessage,
   4185     DWORD* pdwStubPhase);
   4186 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetStopPosition_Proxy(
   4187     IMediaSeeking* This,
   4188     LONGLONG *pStop);
   4189 void __RPC_STUB IMediaSeeking_GetStopPosition_Stub(
   4190     IRpcStubBuffer* This,
   4191     IRpcChannelBuffer* pRpcChannelBuffer,
   4192     PRPC_MESSAGE pRpcMessage,
   4193     DWORD* pdwStubPhase);
   4194 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetCurrentPosition_Proxy(
   4195     IMediaSeeking* This,
   4196     LONGLONG *pCurrent);
   4197 void __RPC_STUB IMediaSeeking_GetCurrentPosition_Stub(
   4198     IRpcStubBuffer* This,
   4199     IRpcChannelBuffer* pRpcChannelBuffer,
   4200     PRPC_MESSAGE pRpcMessage,
   4201     DWORD* pdwStubPhase);
   4202 HRESULT STDMETHODCALLTYPE IMediaSeeking_ConvertTimeFormat_Proxy(
   4203     IMediaSeeking* This,
   4204     LONGLONG *pTarget,
   4205     const GUID *pTargetFormat,
   4206     LONGLONG Source,
   4207     const GUID *pSourceFormat);
   4208 void __RPC_STUB IMediaSeeking_ConvertTimeFormat_Stub(
   4209     IRpcStubBuffer* This,
   4210     IRpcChannelBuffer* pRpcChannelBuffer,
   4211     PRPC_MESSAGE pRpcMessage,
   4212     DWORD* pdwStubPhase);
   4213 HRESULT STDMETHODCALLTYPE IMediaSeeking_SetPositions_Proxy(
   4214     IMediaSeeking* This,
   4215     LONGLONG *pCurrent,
   4216     DWORD dwCurrentFlags,
   4217     LONGLONG *pStop,
   4218     DWORD dwStopFlags);
   4219 void __RPC_STUB IMediaSeeking_SetPositions_Stub(
   4220     IRpcStubBuffer* This,
   4221     IRpcChannelBuffer* pRpcChannelBuffer,
   4222     PRPC_MESSAGE pRpcMessage,
   4223     DWORD* pdwStubPhase);
   4224 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetPositions_Proxy(
   4225     IMediaSeeking* This,
   4226     LONGLONG *pCurrent,
   4227     LONGLONG *pStop);
   4228 void __RPC_STUB IMediaSeeking_GetPositions_Stub(
   4229     IRpcStubBuffer* This,
   4230     IRpcChannelBuffer* pRpcChannelBuffer,
   4231     PRPC_MESSAGE pRpcMessage,
   4232     DWORD* pdwStubPhase);
   4233 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetAvailable_Proxy(
   4234     IMediaSeeking* This,
   4235     LONGLONG *pEarliest,
   4236     LONGLONG *pLatest);
   4237 void __RPC_STUB IMediaSeeking_GetAvailable_Stub(
   4238     IRpcStubBuffer* This,
   4239     IRpcChannelBuffer* pRpcChannelBuffer,
   4240     PRPC_MESSAGE pRpcMessage,
   4241     DWORD* pdwStubPhase);
   4242 HRESULT STDMETHODCALLTYPE IMediaSeeking_SetRate_Proxy(
   4243     IMediaSeeking* This,
   4244     double dRate);
   4245 void __RPC_STUB IMediaSeeking_SetRate_Stub(
   4246     IRpcStubBuffer* This,
   4247     IRpcChannelBuffer* pRpcChannelBuffer,
   4248     PRPC_MESSAGE pRpcMessage,
   4249     DWORD* pdwStubPhase);
   4250 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetRate_Proxy(
   4251     IMediaSeeking* This,
   4252     double *pdRate);
   4253 void __RPC_STUB IMediaSeeking_GetRate_Stub(
   4254     IRpcStubBuffer* This,
   4255     IRpcChannelBuffer* pRpcChannelBuffer,
   4256     PRPC_MESSAGE pRpcMessage,
   4257     DWORD* pdwStubPhase);
   4258 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetPreroll_Proxy(
   4259     IMediaSeeking* This,
   4260     LONGLONG *pllPreroll);
   4261 void __RPC_STUB IMediaSeeking_GetPreroll_Stub(
   4262     IRpcStubBuffer* This,
   4263     IRpcChannelBuffer* pRpcChannelBuffer,
   4264     PRPC_MESSAGE pRpcMessage,
   4265     DWORD* pdwStubPhase);
   4266 
   4267 #endif  /* __IMediaSeeking_INTERFACE_DEFINED__ */
   4268 
   4269 typedef IMediaSeeking *PMEDIASEEKING;
   4270 
   4271 enum tagAM_MEDIAEVENT_FLAGS {
   4272   AM_MEDIAEVENT_NONOTIFY = 0x1
   4273 };
   4274 
   4275 #endif
   4276 #ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
   4277 #define __IAMAnalogVideoDecoder_FWD_DEFINED__
   4278 typedef interface IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
   4279 #endif
   4280 
   4281 #ifndef __IAMAnalogVideoEncoder_FWD_DEFINED__
   4282 #define __IAMAnalogVideoEncoder_FWD_DEFINED__
   4283 typedef interface IAMAnalogVideoEncoder IAMAnalogVideoEncoder;
   4284 #endif
   4285 
   4286 #ifndef __IAMAudioInputMixer_FWD_DEFINED__
   4287 #define __IAMAudioInputMixer_FWD_DEFINED__
   4288 typedef interface IAMAudioInputMixer IAMAudioInputMixer;
   4289 #endif
   4290 
   4291 #ifndef __IAMAudioRendererStats_FWD_DEFINED__
   4292 #define __IAMAudioRendererStats_FWD_DEFINED__
   4293 typedef interface IAMAudioRendererStats IAMAudioRendererStats;
   4294 #endif
   4295 
   4296 #ifndef __IAMBufferNegotiation_FWD_DEFINED__
   4297 #define __IAMBufferNegotiation_FWD_DEFINED__
   4298 typedef interface IAMBufferNegotiation IAMBufferNegotiation;
   4299 #endif
   4300 
   4301 #ifndef __IAMCameraControl_FWD_DEFINED__
   4302 #define __IAMCameraControl_FWD_DEFINED__
   4303 typedef interface IAMCameraControl IAMCameraControl;
   4304 #endif
   4305 
   4306 #ifndef __IAMCertifiedOutputProtection_FWD_DEFINED__
   4307 #define __IAMCertifiedOutputProtection_FWD_DEFINED__
   4308 typedef interface IAMCertifiedOutputProtection IAMCertifiedOutputProtection;
   4309 #endif
   4310 
   4311 #ifndef __IAMClockSlave_FWD_DEFINED__
   4312 #define __IAMClockSlave_FWD_DEFINED__
   4313 typedef interface IAMClockSlave IAMClockSlave;
   4314 #endif
   4315 
   4316 #ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__
   4317 #define __IAMCopyCaptureFileProgress_FWD_DEFINED__
   4318 typedef interface IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
   4319 #endif
   4320 
   4321 #ifndef __IAMCrossbar_FWD_DEFINED__
   4322 #define __IAMCrossbar_FWD_DEFINED__
   4323 typedef interface IAMCrossbar IAMCrossbar;
   4324 #endif
   4325 
   4326 #ifndef __IAMDevMemoryAllocator_FWD_DEFINED__
   4327 #define __IAMDevMemoryAllocator_FWD_DEFINED__
   4328 typedef interface IAMDevMemoryAllocator IAMDevMemoryAllocator;
   4329 #endif
   4330 
   4331 #ifndef __IAMDevMemoryControl_FWD_DEFINED__
   4332 #define __IAMDevMemoryControl_FWD_DEFINED__
   4333 typedef interface IAMDevMemoryControl IAMDevMemoryControl;
   4334 #endif
   4335 
   4336 #ifndef __IAMDroppedFrames_FWD_DEFINED__
   4337 #define __IAMDroppedFrames_FWD_DEFINED__
   4338 typedef interface IAMDroppedFrames IAMDroppedFrames;
   4339 #endif
   4340 
   4341 #ifndef __IAMExtDevice_FWD_DEFINED__
   4342 #define __IAMExtDevice_FWD_DEFINED__
   4343 typedef interface IAMExtDevice IAMExtDevice;
   4344 #endif
   4345 
   4346 #ifndef __IAMExtTransport_FWD_DEFINED__
   4347 #define __IAMExtTransport_FWD_DEFINED__
   4348 typedef interface IAMExtTransport IAMExtTransport;
   4349 #endif
   4350 
   4351 #ifndef __IAMGraphStreams_FWD_DEFINED__
   4352 #define __IAMGraphStreams_FWD_DEFINED__
   4353 typedef interface IAMGraphStreams IAMGraphStreams;
   4354 #endif
   4355 
   4356 #ifndef __IAMLatency_FWD_DEFINED__
   4357 #define __IAMLatency_FWD_DEFINED__
   4358 typedef interface IAMLatency IAMLatency;
   4359 #endif
   4360 
   4361 #ifndef __IAMOpenProgress_FWD_DEFINED__
   4362 #define __IAMOpenProgress_FWD_DEFINED__
   4363 typedef interface IAMOpenProgress IAMOpenProgress;
   4364 #endif
   4365 
   4366 #ifndef __IAMOverlayFX_FWD_DEFINED__
   4367 #define __IAMOverlayFX_FWD_DEFINED__
   4368 typedef interface IAMOverlayFX IAMOverlayFX;
   4369 #endif
   4370 
   4371 #ifndef __IAMPhysicalPinInfo_FWD_DEFINED__
   4372 #define __IAMPhysicalPinInfo_FWD_DEFINED__
   4373 typedef interface IAMPhysicalPinInfo IAMPhysicalPinInfo;
   4374 #endif
   4375 
   4376 #ifndef __IAMPushSource_FWD_DEFINED__
   4377 #define __IAMPushSource_FWD_DEFINED__
   4378 typedef interface IAMPushSource IAMPushSource;
   4379 #endif
   4380 
   4381 #ifndef __IAMStreamConfig_FWD_DEFINED__
   4382 #define __IAMStreamConfig_FWD_DEFINED__
   4383 typedef interface IAMStreamConfig IAMStreamConfig;
   4384 #endif
   4385 
   4386 #ifndef __IAMTimecodeDisplay_FWD_DEFINED__
   4387 #define __IAMTimecodeDisplay_FWD_DEFINED__
   4388 typedef interface IAMTimecodeDisplay IAMTimecodeDisplay;
   4389 #endif
   4390 
   4391 #ifndef __IAMTimecodeGenerator_FWD_DEFINED__
   4392 #define __IAMTimecodeGenerator_FWD_DEFINED__
   4393 typedef interface IAMTimecodeGenerator IAMTimecodeGenerator;
   4394 #endif
   4395 
   4396 #ifndef __IAMTimecodeReader_FWD_DEFINED__
   4397 #define __IAMTimecodeReader_FWD_DEFINED__
   4398 typedef interface IAMTimecodeReader IAMTimecodeReader;
   4399 #endif
   4400 
   4401 #ifndef __IAMTVTuner_FWD_DEFINED__
   4402 #define __IAMTVTuner_FWD_DEFINED__
   4403 typedef interface IAMTVTuner IAMTVTuner;
   4404 #endif
   4405 
   4406 #ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__
   4407 #define __IAMVfwCaptureDialogs_FWD_DEFINED__
   4408 typedef interface IAMVfwCaptureDialogs IAMVfwCaptureDialogs;
   4409 #endif
   4410 
   4411 #ifndef __IAMVfwCompressDialogs_FWD_DEFINED__
   4412 #define __IAMVfwCompressDialogs_FWD_DEFINED__
   4413 typedef interface IAMVfwCompressDialogs IAMVfwCompressDialogs;
   4414 #endif
   4415 
   4416 #ifndef __IAMVideoCompression_FWD_DEFINED__
   4417 #define __IAMVideoCompression_FWD_DEFINED__
   4418 typedef interface IAMVideoCompression IAMVideoCompression;
   4419 #endif
   4420 
   4421 #ifndef __IAMVideoDecimationProperties_FWD_DEFINED__
   4422 #define __IAMVideoDecimationProperties_FWD_DEFINED__
   4423 typedef interface IAMVideoDecimationProperties IAMVideoDecimationProperties;
   4424 #endif
   4425 
   4426 #ifndef __IAMVideoProcAmp_FWD_DEFINED__
   4427 #define __IAMVideoProcAmp_FWD_DEFINED__
   4428 typedef interface IAMVideoProcAmp IAMVideoProcAmp;
   4429 #endif
   4430 
   4431 #ifndef __IAMGraphBuilderCallback_FWD_DEFINED__
   4432 #define __IAMGraphBuilderCallback_FWD_DEFINED__
   4433 typedef interface IAMGraphBuilderCallback IAMGraphBuilderCallback;
   4434 #endif
   4435 
   4436 #ifndef __ICaptureGraphBuilder_FWD_DEFINED__
   4437 #define __ICaptureGraphBuilder_FWD_DEFINED__
   4438 typedef interface ICaptureGraphBuilder ICaptureGraphBuilder;
   4439 #endif
   4440 
   4441 #ifndef __ICaptureGraphBuilder2_FWD_DEFINED__
   4442 #define __ICaptureGraphBuilder2_FWD_DEFINED__
   4443 typedef interface ICaptureGraphBuilder2 ICaptureGraphBuilder2;
   4444 #endif
   4445 
   4446 #ifndef __IConfigAviMux_FWD_DEFINED__
   4447 #define __IConfigAviMux_FWD_DEFINED__
   4448 typedef interface IConfigAviMux IConfigAviMux;
   4449 #endif
   4450 
   4451 #ifndef __IConfigInterleaving_FWD_DEFINED__
   4452 #define __IConfigInterleaving_FWD_DEFINED__
   4453 typedef interface IConfigInterleaving IConfigInterleaving;
   4454 #endif
   4455 
   4456 #ifndef __IDecimateVideoImage_FWD_DEFINED__
   4457 #define __IDecimateVideoImage_FWD_DEFINED__
   4458 typedef interface IDecimateVideoImage IDecimateVideoImage;
   4459 #endif
   4460 
   4461 #ifndef __IDrawVideoImage_FWD_DEFINED__
   4462 #define __IDrawVideoImage_FWD_DEFINED__
   4463 typedef interface IDrawVideoImage IDrawVideoImage;
   4464 #endif
   4465 
   4466 #ifndef __IEnumRegFilters_FWD_DEFINED__
   4467 #define __IEnumRegFilters_FWD_DEFINED__
   4468 typedef interface IEnumRegFilters IEnumRegFilters;
   4469 #endif
   4470 
   4471 #ifndef __IEnumStreamIdMap_FWD_DEFINED__
   4472 #define __IEnumStreamIdMap_FWD_DEFINED__
   4473 typedef interface IEnumStreamIdMap IEnumStreamIdMap;
   4474 #endif
   4475 
   4476 #ifndef __IFileSourceFilter_FWD_DEFINED__
   4477 #define __IFileSourceFilter_FWD_DEFINED__
   4478 typedef interface IFileSourceFilter IFileSourceFilter;
   4479 #endif
   4480 
   4481 #ifndef __IFileSinkFilter_FWD_DEFINED__
   4482 #define __IFileSinkFilter_FWD_DEFINED__
   4483 typedef interface IFileSinkFilter IFileSinkFilter;
   4484 #endif
   4485 
   4486 #ifndef __IFileSinkFilter2_FWD_DEFINED__
   4487 #define __IFileSinkFilter2_FWD_DEFINED__
   4488 typedef interface IFileSinkFilter2 IFileSinkFilter2;
   4489 #endif
   4490 
   4491 #ifndef __IFilterMapper_FWD_DEFINED__
   4492 #define __IFilterMapper_FWD_DEFINED__
   4493 typedef interface IFilterMapper IFilterMapper;
   4494 #endif
   4495 
   4496 #ifndef __IFilterMapper2_FWD_DEFINED__
   4497 #define __IFilterMapper2_FWD_DEFINED__
   4498 typedef interface IFilterMapper2 IFilterMapper2;
   4499 #endif
   4500 
   4501 #ifndef __IGraphBuilder_FWD_DEFINED__
   4502 #define __IGraphBuilder_FWD_DEFINED__
   4503 typedef interface IGraphBuilder IGraphBuilder;
   4504 #endif
   4505 
   4506 #ifndef __IKsPropertySet_FWD_DEFINED__
   4507 #define __IKsPropertySet_FWD_DEFINED__
   4508 typedef interface IKsPropertySet IKsPropertySet;
   4509 #endif
   4510 
   4511 #ifndef __IMediaEventSink_FWD_DEFINED__
   4512 #define __IMediaEventSink_FWD_DEFINED__
   4513 typedef interface IMediaEventSink IMediaEventSink;
   4514 #endif
   4515 
   4516 #ifndef __IMpeg2Demultiplexer_FWD_DEFINED__
   4517 #define __IMpeg2Demultiplexer_FWD_DEFINED__
   4518 typedef interface IMpeg2Demultiplexer IMpeg2Demultiplexer;
   4519 #endif
   4520 
   4521 #ifndef __IMPEG2StreamIdMap_FWD_DEFINED__
   4522 #define __IMPEG2StreamIdMap_FWD_DEFINED__
   4523 typedef interface IMPEG2StreamIdMap IMPEG2StreamIdMap;
   4524 #endif
   4525 
   4526 #ifndef __IOverlay_FWD_DEFINED__
   4527 #define __IOverlay_FWD_DEFINED__
   4528 typedef interface IOverlay IOverlay;
   4529 #endif
   4530 
   4531 #ifndef __IOverlayNotify_FWD_DEFINED__
   4532 #define __IOverlayNotify_FWD_DEFINED__
   4533 typedef interface IOverlayNotify IOverlayNotify;
   4534 #endif
   4535 
   4536 #ifndef __IOverlayNotify2_FWD_DEFINED__
   4537 #define __IOverlayNotify2_FWD_DEFINED__
   4538 typedef interface IOverlayNotify2 IOverlayNotify2;
   4539 #endif
   4540 
   4541 #ifndef __IQualityControl_FWD_DEFINED__
   4542 #define __IQualityControl_FWD_DEFINED__
   4543 typedef interface IQualityControl IQualityControl;
   4544 #endif
   4545 
   4546 #ifndef __ISeekingPassThru_FWD_DEFINED__
   4547 #define __ISeekingPassThru_FWD_DEFINED__
   4548 typedef interface ISeekingPassThru ISeekingPassThru;
   4549 #endif
   4550 
   4551 typedef enum tagAnalogVideoStandard {
   4552     AnalogVideo_None = 0x0,
   4553     AnalogVideo_NTSC_M = 0x1,
   4554     AnalogVideo_NTSC_M_J = 0x2,
   4555     AnalogVideo_NTSC_433 = 0x4,
   4556     AnalogVideo_PAL_B = 0x10,
   4557     AnalogVideo_PAL_D = 0x20,
   4558     AnalogVideo_PAL_G = 0x40,
   4559     AnalogVideo_PAL_H = 0x80,
   4560     AnalogVideo_PAL_I = 0x100,
   4561     AnalogVideo_PAL_M = 0x200,
   4562     AnalogVideo_PAL_N = 0x400,
   4563     AnalogVideo_PAL_60 = 0x800,
   4564     AnalogVideo_SECAM_B = 0x1000,
   4565     AnalogVideo_SECAM_D = 0x2000,
   4566     AnalogVideo_SECAM_G = 0x4000,
   4567     AnalogVideo_SECAM_H = 0x8000,
   4568     AnalogVideo_SECAM_K = 0x10000,
   4569     AnalogVideo_SECAM_K1 = 0x20000,
   4570     AnalogVideo_SECAM_L = 0x40000,
   4571     AnalogVideo_SECAM_L1 = 0x80000,
   4572     AnalogVideo_PAL_N_COMBO = 0x100000,
   4573     AnalogVideoMask_MCE_NTSC = (((((AnalogVideo_NTSC_M | AnalogVideo_NTSC_M_J) | AnalogVideo_NTSC_433) | AnalogVideo_PAL_M) | AnalogVideo_PAL_N) | AnalogVideo_PAL_60) | AnalogVideo_PAL_N_COMBO,
   4574     AnalogVideoMask_MCE_PAL = (((AnalogVideo_PAL_B | AnalogVideo_PAL_D) | AnalogVideo_PAL_G) | AnalogVideo_PAL_H) | AnalogVideo_PAL_I,
   4575     AnalogVideoMask_MCE_SECAM = ((((((AnalogVideo_SECAM_B | AnalogVideo_SECAM_D) | AnalogVideo_SECAM_G) | AnalogVideo_SECAM_H) | AnalogVideo_SECAM_K) | AnalogVideo_SECAM_K1) | AnalogVideo_SECAM_L) | AnalogVideo_SECAM_L1
   4576 } AnalogVideoStandard;
   4577 typedef enum tagTunerInputType {
   4578     TunerInputCable = 0,
   4579     TunerInputAntenna = 1
   4580 } TunerInputType;
   4581 typedef struct __WIDL_strmif_generated_name_00000002 {
   4582     CLSID Clsid;
   4583     LPWSTR Name;
   4584 } REGFILTER;
   4585 typedef enum tagTVAudioMode {
   4586     AMTVAUDIO_MODE_MONO = 0x1,
   4587     AMTVAUDIO_MODE_STEREO = 0x2,
   4588     AMTVAUDIO_MODE_LANG_A = 0x10,
   4589     AMTVAUDIO_MODE_LANG_B = 0x20,
   4590     AMTVAUDIO_MODE_LANG_C = 0x40,
   4591     AMTVAUDIO_PRESET_STEREO = 0x200,
   4592     AMTVAUDIO_PRESET_LANG_A = 0x1000,
   4593     AMTVAUDIO_PRESET_LANG_B = 0x2000,
   4594     AMTVAUDIO_PRESET_LANG_C = 0x4000
   4595 } TVAudioMode;
   4596 /*****************************************************************************
   4597  * IEnumRegFilters interface
   4598  */
   4599 #ifndef __IEnumRegFilters_INTERFACE_DEFINED__
   4600 #define __IEnumRegFilters_INTERFACE_DEFINED__
   4601 
   4602 DEFINE_GUID(IID_IEnumRegFilters, 0x56a868a4, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   4603 #if defined(__cplusplus) && !defined(CINTERFACE)
   4604 MIDL_INTERFACE("56a868a4-0ad4-11ce-b03a-0020af0ba770")
   4605 IEnumRegFilters : public IUnknown
   4606 {
   4607     virtual HRESULT STDMETHODCALLTYPE Next(
   4608         ULONG cFilters,
   4609         REGFILTER **apRegFilter,
   4610         ULONG *pcFetched) = 0;
   4611 
   4612     virtual HRESULT STDMETHODCALLTYPE Skip(
   4613         ULONG cFilters) = 0;
   4614 
   4615     virtual HRESULT STDMETHODCALLTYPE Reset(
   4616         ) = 0;
   4617 
   4618     virtual HRESULT STDMETHODCALLTYPE Clone(
   4619         IEnumRegFilters **ppEnum) = 0;
   4620 
   4621 };
   4622 #ifdef __CRT_UUID_DECL
   4623 __CRT_UUID_DECL(IEnumRegFilters, 0x56a868a4, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   4624 #endif
   4625 #else
   4626 typedef struct IEnumRegFiltersVtbl {
   4627     BEGIN_INTERFACE
   4628 
   4629     /*** IUnknown methods ***/
   4630     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4631         IEnumRegFilters* This,
   4632         REFIID riid,
   4633         void **ppvObject);
   4634 
   4635     ULONG (STDMETHODCALLTYPE *AddRef)(
   4636         IEnumRegFilters* This);
   4637 
   4638     ULONG (STDMETHODCALLTYPE *Release)(
   4639         IEnumRegFilters* This);
   4640 
   4641     /*** IEnumRegFilters methods ***/
   4642     HRESULT (STDMETHODCALLTYPE *Next)(
   4643         IEnumRegFilters* This,
   4644         ULONG cFilters,
   4645         REGFILTER **apRegFilter,
   4646         ULONG *pcFetched);
   4647 
   4648     HRESULT (STDMETHODCALLTYPE *Skip)(
   4649         IEnumRegFilters* This,
   4650         ULONG cFilters);
   4651 
   4652     HRESULT (STDMETHODCALLTYPE *Reset)(
   4653         IEnumRegFilters* This);
   4654 
   4655     HRESULT (STDMETHODCALLTYPE *Clone)(
   4656         IEnumRegFilters* This,
   4657         IEnumRegFilters **ppEnum);
   4658 
   4659     END_INTERFACE
   4660 } IEnumRegFiltersVtbl;
   4661 interface IEnumRegFilters {
   4662     CONST_VTBL IEnumRegFiltersVtbl* lpVtbl;
   4663 };
   4664 
   4665 #ifdef COBJMACROS
   4666 #ifndef WIDL_C_INLINE_WRAPPERS
   4667 /*** IUnknown methods ***/
   4668 #define IEnumRegFilters_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4669 #define IEnumRegFilters_AddRef(This) (This)->lpVtbl->AddRef(This)
   4670 #define IEnumRegFilters_Release(This) (This)->lpVtbl->Release(This)
   4671 /*** IEnumRegFilters methods ***/
   4672 #define IEnumRegFilters_Next(This,cFilters,apRegFilter,pcFetched) (This)->lpVtbl->Next(This,cFilters,apRegFilter,pcFetched)
   4673 #define IEnumRegFilters_Skip(This,cFilters) (This)->lpVtbl->Skip(This,cFilters)
   4674 #define IEnumRegFilters_Reset(This) (This)->lpVtbl->Reset(This)
   4675 #define IEnumRegFilters_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
   4676 #else
   4677 /*** IUnknown methods ***/
   4678 static FORCEINLINE HRESULT IEnumRegFilters_QueryInterface(IEnumRegFilters* This,REFIID riid,void **ppvObject) {
   4679     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4680 }
   4681 static FORCEINLINE ULONG IEnumRegFilters_AddRef(IEnumRegFilters* This) {
   4682     return This->lpVtbl->AddRef(This);
   4683 }
   4684 static FORCEINLINE ULONG IEnumRegFilters_Release(IEnumRegFilters* This) {
   4685     return This->lpVtbl->Release(This);
   4686 }
   4687 /*** IEnumRegFilters methods ***/
   4688 static FORCEINLINE HRESULT IEnumRegFilters_Next(IEnumRegFilters* This,ULONG cFilters,REGFILTER **apRegFilter,ULONG *pcFetched) {
   4689     return This->lpVtbl->Next(This,cFilters,apRegFilter,pcFetched);
   4690 }
   4691 static FORCEINLINE HRESULT IEnumRegFilters_Skip(IEnumRegFilters* This,ULONG cFilters) {
   4692     return This->lpVtbl->Skip(This,cFilters);
   4693 }
   4694 static FORCEINLINE HRESULT IEnumRegFilters_Reset(IEnumRegFilters* This) {
   4695     return This->lpVtbl->Reset(This);
   4696 }
   4697 static FORCEINLINE HRESULT IEnumRegFilters_Clone(IEnumRegFilters* This,IEnumRegFilters **ppEnum) {
   4698     return This->lpVtbl->Clone(This,ppEnum);
   4699 }
   4700 #endif
   4701 #endif
   4702 
   4703 #endif
   4704 
   4705 HRESULT STDMETHODCALLTYPE IEnumRegFilters_Next_Proxy(
   4706     IEnumRegFilters* This,
   4707     ULONG cFilters,
   4708     REGFILTER **apRegFilter,
   4709     ULONG *pcFetched);
   4710 void __RPC_STUB IEnumRegFilters_Next_Stub(
   4711     IRpcStubBuffer* This,
   4712     IRpcChannelBuffer* pRpcChannelBuffer,
   4713     PRPC_MESSAGE pRpcMessage,
   4714     DWORD* pdwStubPhase);
   4715 HRESULT STDMETHODCALLTYPE IEnumRegFilters_Skip_Proxy(
   4716     IEnumRegFilters* This,
   4717     ULONG cFilters);
   4718 void __RPC_STUB IEnumRegFilters_Skip_Stub(
   4719     IRpcStubBuffer* This,
   4720     IRpcChannelBuffer* pRpcChannelBuffer,
   4721     PRPC_MESSAGE pRpcMessage,
   4722     DWORD* pdwStubPhase);
   4723 HRESULT STDMETHODCALLTYPE IEnumRegFilters_Reset_Proxy(
   4724     IEnumRegFilters* This);
   4725 void __RPC_STUB IEnumRegFilters_Reset_Stub(
   4726     IRpcStubBuffer* This,
   4727     IRpcChannelBuffer* pRpcChannelBuffer,
   4728     PRPC_MESSAGE pRpcMessage,
   4729     DWORD* pdwStubPhase);
   4730 HRESULT STDMETHODCALLTYPE IEnumRegFilters_Clone_Proxy(
   4731     IEnumRegFilters* This,
   4732     IEnumRegFilters **ppEnum);
   4733 void __RPC_STUB IEnumRegFilters_Clone_Stub(
   4734     IRpcStubBuffer* This,
   4735     IRpcChannelBuffer* pRpcChannelBuffer,
   4736     PRPC_MESSAGE pRpcMessage,
   4737     DWORD* pdwStubPhase);
   4738 
   4739 #endif  /* __IEnumRegFilters_INTERFACE_DEFINED__ */
   4740 
   4741 typedef IEnumRegFilters *PENUMREGFILTERS;
   4742 /*****************************************************************************
   4743  * IFilterMapper interface
   4744  */
   4745 #ifndef __IFilterMapper_INTERFACE_DEFINED__
   4746 #define __IFilterMapper_INTERFACE_DEFINED__
   4747 
   4748 enum {
   4749     MERIT_PREFERRED = 0x800000,
   4750     MERIT_NORMAL = 0x600000,
   4751     MERIT_UNLIKELY = 0x400000,
   4752     MERIT_DO_NOT_USE = 0x200000,
   4753     MERIT_SW_COMPRESSOR = 0x100000,
   4754     MERIT_HW_COMPRESSOR = 0x100050
   4755 };
   4756 
   4757 DEFINE_GUID(IID_IFilterMapper, 0x56a868a3, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   4758 #if defined(__cplusplus) && !defined(CINTERFACE)
   4759 MIDL_INTERFACE("56a868a3-0ad4-11ce-b03a-0020af0ba770")
   4760 IFilterMapper : public IUnknown
   4761 {
   4762     virtual HRESULT STDMETHODCALLTYPE RegisterFilter(
   4763         CLSID clsid,
   4764         LPCWSTR Name,
   4765         DWORD dwMerit) = 0;
   4766 
   4767     virtual HRESULT STDMETHODCALLTYPE RegisterFilterInstance(
   4768         CLSID clsid,
   4769         LPCWSTR Name,
   4770         CLSID *MRId) = 0;
   4771 
   4772     virtual HRESULT STDMETHODCALLTYPE RegisterPin(
   4773         CLSID Filter,
   4774         LPCWSTR Name,
   4775         WINBOOL bRendered,
   4776         WINBOOL bOutput,
   4777         WINBOOL bZero,
   4778         WINBOOL bMany,
   4779         CLSID ConnectsToFilter,
   4780         LPCWSTR ConnectsToPin) = 0;
   4781 
   4782     virtual HRESULT STDMETHODCALLTYPE RegisterPinType(
   4783         CLSID clsFilter,
   4784         LPCWSTR strName,
   4785         CLSID clsMajorType,
   4786         CLSID clsSubType) = 0;
   4787 
   4788     virtual HRESULT STDMETHODCALLTYPE UnregisterFilter(
   4789         CLSID Filter) = 0;
   4790 
   4791     virtual HRESULT STDMETHODCALLTYPE UnregisterFilterInstance(
   4792         CLSID MRId) = 0;
   4793 
   4794     virtual HRESULT STDMETHODCALLTYPE UnregisterPin(
   4795         CLSID Filter,
   4796         LPCWSTR Name) = 0;
   4797 
   4798     virtual HRESULT STDMETHODCALLTYPE EnumMatchingFilters(
   4799         IEnumRegFilters **ppEnum,
   4800         DWORD dwMerit,
   4801         WINBOOL bInputNeeded,
   4802         CLSID clsInMaj,
   4803         CLSID clsInSub,
   4804         WINBOOL bRender,
   4805         WINBOOL bOututNeeded,
   4806         CLSID clsOutMaj,
   4807         CLSID clsOutSub) = 0;
   4808 
   4809 };
   4810 #ifdef __CRT_UUID_DECL
   4811 __CRT_UUID_DECL(IFilterMapper, 0x56a868a3, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   4812 #endif
   4813 #else
   4814 typedef struct IFilterMapperVtbl {
   4815     BEGIN_INTERFACE
   4816 
   4817     /*** IUnknown methods ***/
   4818     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4819         IFilterMapper* This,
   4820         REFIID riid,
   4821         void **ppvObject);
   4822 
   4823     ULONG (STDMETHODCALLTYPE *AddRef)(
   4824         IFilterMapper* This);
   4825 
   4826     ULONG (STDMETHODCALLTYPE *Release)(
   4827         IFilterMapper* This);
   4828 
   4829     /*** IFilterMapper methods ***/
   4830     HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
   4831         IFilterMapper* This,
   4832         CLSID clsid,
   4833         LPCWSTR Name,
   4834         DWORD dwMerit);
   4835 
   4836     HRESULT (STDMETHODCALLTYPE *RegisterFilterInstance)(
   4837         IFilterMapper* This,
   4838         CLSID clsid,
   4839         LPCWSTR Name,
   4840         CLSID *MRId);
   4841 
   4842     HRESULT (STDMETHODCALLTYPE *RegisterPin)(
   4843         IFilterMapper* This,
   4844         CLSID Filter,
   4845         LPCWSTR Name,
   4846         WINBOOL bRendered,
   4847         WINBOOL bOutput,
   4848         WINBOOL bZero,
   4849         WINBOOL bMany,
   4850         CLSID ConnectsToFilter,
   4851         LPCWSTR ConnectsToPin);
   4852 
   4853     HRESULT (STDMETHODCALLTYPE *RegisterPinType)(
   4854         IFilterMapper* This,
   4855         CLSID clsFilter,
   4856         LPCWSTR strName,
   4857         CLSID clsMajorType,
   4858         CLSID clsSubType);
   4859 
   4860     HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
   4861         IFilterMapper* This,
   4862         CLSID Filter);
   4863 
   4864     HRESULT (STDMETHODCALLTYPE *UnregisterFilterInstance)(
   4865         IFilterMapper* This,
   4866         CLSID MRId);
   4867 
   4868     HRESULT (STDMETHODCALLTYPE *UnregisterPin)(
   4869         IFilterMapper* This,
   4870         CLSID Filter,
   4871         LPCWSTR Name);
   4872 
   4873     HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
   4874         IFilterMapper* This,
   4875         IEnumRegFilters **ppEnum,
   4876         DWORD dwMerit,
   4877         WINBOOL bInputNeeded,
   4878         CLSID clsInMaj,
   4879         CLSID clsInSub,
   4880         WINBOOL bRender,
   4881         WINBOOL bOututNeeded,
   4882         CLSID clsOutMaj,
   4883         CLSID clsOutSub);
   4884 
   4885     END_INTERFACE
   4886 } IFilterMapperVtbl;
   4887 interface IFilterMapper {
   4888     CONST_VTBL IFilterMapperVtbl* lpVtbl;
   4889 };
   4890 
   4891 #ifdef COBJMACROS
   4892 #ifndef WIDL_C_INLINE_WRAPPERS
   4893 /*** IUnknown methods ***/
   4894 #define IFilterMapper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4895 #define IFilterMapper_AddRef(This) (This)->lpVtbl->AddRef(This)
   4896 #define IFilterMapper_Release(This) (This)->lpVtbl->Release(This)
   4897 /*** IFilterMapper methods ***/
   4898 #define IFilterMapper_RegisterFilter(This,clsid,Name,dwMerit) (This)->lpVtbl->RegisterFilter(This,clsid,Name,dwMerit)
   4899 #define IFilterMapper_RegisterFilterInstance(This,clsid,Name,MRId) (This)->lpVtbl->RegisterFilterInstance(This,clsid,Name,MRId)
   4900 #define IFilterMapper_RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin) (This)->lpVtbl->RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin)
   4901 #define IFilterMapper_RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType) (This)->lpVtbl->RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType)
   4902 #define IFilterMapper_UnregisterFilter(This,Filter) (This)->lpVtbl->UnregisterFilter(This,Filter)
   4903 #define IFilterMapper_UnregisterFilterInstance(This,MRId) (This)->lpVtbl->UnregisterFilterInstance(This,MRId)
   4904 #define IFilterMapper_UnregisterPin(This,Filter,Name) (This)->lpVtbl->UnregisterPin(This,Filter,Name)
   4905 #define IFilterMapper_EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOututNeeded,clsOutMaj,clsOutSub) (This)->lpVtbl->EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOututNeeded,clsOutMaj,clsOutSub)
   4906 #else
   4907 /*** IUnknown methods ***/
   4908 static FORCEINLINE HRESULT IFilterMapper_QueryInterface(IFilterMapper* This,REFIID riid,void **ppvObject) {
   4909     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4910 }
   4911 static FORCEINLINE ULONG IFilterMapper_AddRef(IFilterMapper* This) {
   4912     return This->lpVtbl->AddRef(This);
   4913 }
   4914 static FORCEINLINE ULONG IFilterMapper_Release(IFilterMapper* This) {
   4915     return This->lpVtbl->Release(This);
   4916 }
   4917 /*** IFilterMapper methods ***/
   4918 static FORCEINLINE HRESULT IFilterMapper_RegisterFilter(IFilterMapper* This,CLSID clsid,LPCWSTR Name,DWORD dwMerit) {
   4919     return This->lpVtbl->RegisterFilter(This,clsid,Name,dwMerit);
   4920 }
   4921 static FORCEINLINE HRESULT IFilterMapper_RegisterFilterInstance(IFilterMapper* This,CLSID clsid,LPCWSTR Name,CLSID *MRId) {
   4922     return This->lpVtbl->RegisterFilterInstance(This,clsid,Name,MRId);
   4923 }
   4924 static FORCEINLINE HRESULT IFilterMapper_RegisterPin(IFilterMapper* This,CLSID Filter,LPCWSTR Name,WINBOOL bRendered,WINBOOL bOutput,WINBOOL bZero,WINBOOL bMany,CLSID ConnectsToFilter,LPCWSTR ConnectsToPin) {
   4925     return This->lpVtbl->RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin);
   4926 }
   4927 static FORCEINLINE HRESULT IFilterMapper_RegisterPinType(IFilterMapper* This,CLSID clsFilter,LPCWSTR strName,CLSID clsMajorType,CLSID clsSubType) {
   4928     return This->lpVtbl->RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType);
   4929 }
   4930 static FORCEINLINE HRESULT IFilterMapper_UnregisterFilter(IFilterMapper* This,CLSID Filter) {
   4931     return This->lpVtbl->UnregisterFilter(This,Filter);
   4932 }
   4933 static FORCEINLINE HRESULT IFilterMapper_UnregisterFilterInstance(IFilterMapper* This,CLSID MRId) {
   4934     return This->lpVtbl->UnregisterFilterInstance(This,MRId);
   4935 }
   4936 static FORCEINLINE HRESULT IFilterMapper_UnregisterPin(IFilterMapper* This,CLSID Filter,LPCWSTR Name) {
   4937     return This->lpVtbl->UnregisterPin(This,Filter,Name);
   4938 }
   4939 static FORCEINLINE HRESULT IFilterMapper_EnumMatchingFilters(IFilterMapper* This,IEnumRegFilters **ppEnum,DWORD dwMerit,WINBOOL bInputNeeded,CLSID clsInMaj,CLSID clsInSub,WINBOOL bRender,WINBOOL bOututNeeded,CLSID clsOutMaj,CLSID clsOutSub) {
   4940     return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOututNeeded,clsOutMaj,clsOutSub);
   4941 }
   4942 #endif
   4943 #endif
   4944 
   4945 #endif
   4946 
   4947 HRESULT STDMETHODCALLTYPE IFilterMapper_RegisterFilter_Proxy(
   4948     IFilterMapper* This,
   4949     CLSID clsid,
   4950     LPCWSTR Name,
   4951     DWORD dwMerit);
   4952 void __RPC_STUB IFilterMapper_RegisterFilter_Stub(
   4953     IRpcStubBuffer* This,
   4954     IRpcChannelBuffer* pRpcChannelBuffer,
   4955     PRPC_MESSAGE pRpcMessage,
   4956     DWORD* pdwStubPhase);
   4957 HRESULT STDMETHODCALLTYPE IFilterMapper_RegisterFilterInstance_Proxy(
   4958     IFilterMapper* This,
   4959     CLSID clsid,
   4960     LPCWSTR Name,
   4961     CLSID *MRId);
   4962 void __RPC_STUB IFilterMapper_RegisterFilterInstance_Stub(
   4963     IRpcStubBuffer* This,
   4964     IRpcChannelBuffer* pRpcChannelBuffer,
   4965     PRPC_MESSAGE pRpcMessage,
   4966     DWORD* pdwStubPhase);
   4967 HRESULT STDMETHODCALLTYPE IFilterMapper_RegisterPin_Proxy(
   4968     IFilterMapper* This,
   4969     CLSID Filter,
   4970     LPCWSTR Name,
   4971     WINBOOL bRendered,
   4972     WINBOOL bOutput,
   4973     WINBOOL bZero,
   4974     WINBOOL bMany,
   4975     CLSID ConnectsToFilter,
   4976     LPCWSTR ConnectsToPin);
   4977 void __RPC_STUB IFilterMapper_RegisterPin_Stub(
   4978     IRpcStubBuffer* This,
   4979     IRpcChannelBuffer* pRpcChannelBuffer,
   4980     PRPC_MESSAGE pRpcMessage,
   4981     DWORD* pdwStubPhase);
   4982 HRESULT STDMETHODCALLTYPE IFilterMapper_RegisterPinType_Proxy(
   4983     IFilterMapper* This,
   4984     CLSID clsFilter,
   4985     LPCWSTR strName,
   4986     CLSID clsMajorType,
   4987     CLSID clsSubType);
   4988 void __RPC_STUB IFilterMapper_RegisterPinType_Stub(
   4989     IRpcStubBuffer* This,
   4990     IRpcChannelBuffer* pRpcChannelBuffer,
   4991     PRPC_MESSAGE pRpcMessage,
   4992     DWORD* pdwStubPhase);
   4993 HRESULT STDMETHODCALLTYPE IFilterMapper_UnregisterFilter_Proxy(
   4994     IFilterMapper* This,
   4995     CLSID Filter);
   4996 void __RPC_STUB IFilterMapper_UnregisterFilter_Stub(
   4997     IRpcStubBuffer* This,
   4998     IRpcChannelBuffer* pRpcChannelBuffer,
   4999     PRPC_MESSAGE pRpcMessage,
   5000     DWORD* pdwStubPhase);
   5001 HRESULT STDMETHODCALLTYPE IFilterMapper_UnregisterFilterInstance_Proxy(
   5002     IFilterMapper* This,
   5003     CLSID MRId);
   5004 void __RPC_STUB IFilterMapper_UnregisterFilterInstance_Stub(
   5005     IRpcStubBuffer* This,
   5006     IRpcChannelBuffer* pRpcChannelBuffer,
   5007     PRPC_MESSAGE pRpcMessage,
   5008     DWORD* pdwStubPhase);
   5009 HRESULT STDMETHODCALLTYPE IFilterMapper_UnregisterPin_Proxy(
   5010     IFilterMapper* This,
   5011     CLSID Filter,
   5012     LPCWSTR Name);
   5013 void __RPC_STUB IFilterMapper_UnregisterPin_Stub(
   5014     IRpcStubBuffer* This,
   5015     IRpcChannelBuffer* pRpcChannelBuffer,
   5016     PRPC_MESSAGE pRpcMessage,
   5017     DWORD* pdwStubPhase);
   5018 HRESULT STDMETHODCALLTYPE IFilterMapper_EnumMatchingFilters_Proxy(
   5019     IFilterMapper* This,
   5020     IEnumRegFilters **ppEnum,
   5021     DWORD dwMerit,
   5022     WINBOOL bInputNeeded,
   5023     CLSID clsInMaj,
   5024     CLSID clsInSub,
   5025     WINBOOL bRender,
   5026     WINBOOL bOututNeeded,
   5027     CLSID clsOutMaj,
   5028     CLSID clsOutSub);
   5029 void __RPC_STUB IFilterMapper_EnumMatchingFilters_Stub(
   5030     IRpcStubBuffer* This,
   5031     IRpcChannelBuffer* pRpcChannelBuffer,
   5032     PRPC_MESSAGE pRpcMessage,
   5033     DWORD* pdwStubPhase);
   5034 
   5035 #endif  /* __IFilterMapper_INTERFACE_DEFINED__ */
   5036 
   5037 typedef struct __WIDL_strmif_generated_name_00000003 {
   5038     const CLSID *clsMajorType;
   5039     const CLSID *clsMinorType;
   5040 } REGPINTYPES;
   5041 typedef struct __WIDL_strmif_generated_name_00000004 {
   5042     LPWSTR strName;
   5043     WINBOOL bRendered;
   5044     WINBOOL bOutput;
   5045     WINBOOL bZero;
   5046     WINBOOL bMany;
   5047     const CLSID *clsConnectsToFilter;
   5048     const WCHAR *strConnectsToPin;
   5049     UINT nMediaTypes;
   5050     const REGPINTYPES *lpMediaType;
   5051 } REGFILTERPINS;
   5052 typedef struct __WIDL_strmif_generated_name_00000005 {
   5053     CLSID clsMedium;
   5054     DWORD dw1;
   5055     DWORD dw2;
   5056 } REGPINMEDIUM;
   5057 enum {
   5058     REG_PINFLAG_B_ZERO = 0x1,
   5059     REG_PINFLAG_B_RENDERER = 0x2,
   5060     REG_PINFLAG_B_MANY = 0x4,
   5061     REG_PINFLAG_B_OUTPUT = 0x8
   5062 };
   5063 
   5064 typedef struct __WIDL_strmif_generated_name_00000006 {
   5065     DWORD dwFlags;
   5066     UINT cInstances;
   5067     UINT nMediaTypes;
   5068     const REGPINTYPES *lpMediaType;
   5069     UINT nMediums;
   5070     const REGPINMEDIUM *lpMedium;
   5071     const CLSID *clsPinCategory;
   5072 } REGFILTERPINS2;
   5073 typedef struct __WIDL_strmif_generated_name_00000007 {
   5074     DWORD dwVersion;
   5075     DWORD dwMerit;
   5076     __C89_NAMELESS union {
   5077         __C89_NAMELESS struct {
   5078             ULONG cPins;
   5079             const REGFILTERPINS *rgPins;
   5080         } __C89_NAMELESSSTRUCTNAME1;
   5081         __C89_NAMELESS struct {
   5082             ULONG cPins2;
   5083             const REGFILTERPINS2 *rgPins2;
   5084         } __C89_NAMELESSSTRUCTNAME2;
   5085     } __C89_NAMELESSUNIONNAME;
   5086 } REGFILTER2;
   5087 /*****************************************************************************
   5088  * IFilterMapper2 interface
   5089  */
   5090 #ifndef __IFilterMapper2_INTERFACE_DEFINED__
   5091 #define __IFilterMapper2_INTERFACE_DEFINED__
   5092 
   5093 DEFINE_GUID(IID_IFilterMapper2, 0xb79bb0b0, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
   5094 #if defined(__cplusplus) && !defined(CINTERFACE)
   5095 MIDL_INTERFACE("b79bb0b0-33c1-11d1-abe1-00a0c905f375")
   5096 IFilterMapper2 : public IUnknown
   5097 {
   5098     virtual HRESULT STDMETHODCALLTYPE CreateCategory(
   5099         REFCLSID clsidCategory,
   5100         DWORD dwCategoryMerit,
   5101         LPCWSTR Description) = 0;
   5102 
   5103     virtual HRESULT STDMETHODCALLTYPE UnregisterFilter(
   5104         const CLSID *pclsidCategory,
   5105         LPCOLESTR szInstance,
   5106         REFCLSID Filter) = 0;
   5107 
   5108     virtual HRESULT STDMETHODCALLTYPE RegisterFilter(
   5109         REFCLSID clsidFilter,
   5110         LPCWSTR Name,
   5111         IMoniker **ppMoniker,
   5112         const CLSID *pclsidCategory,
   5113         LPCOLESTR szInstance,
   5114         const REGFILTER2 *prf2) = 0;
   5115 
   5116     virtual HRESULT STDMETHODCALLTYPE EnumMatchingFilters(
   5117         IEnumMoniker **ppEnum,
   5118         DWORD dwFlags,
   5119         WINBOOL bExactMatch,
   5120         DWORD dwMerit,
   5121         WINBOOL bInputNeeded,
   5122         DWORD cInputTypes,
   5123         const GUID *pInputTypes,
   5124         const REGPINMEDIUM *pMedIn,
   5125         const CLSID *pPinCategoryIn,
   5126         WINBOOL bRender,
   5127         WINBOOL bOutputNeeded,
   5128         DWORD cOutputTypes,
   5129         const GUID *pOutputTypes,
   5130         const REGPINMEDIUM *pMedOut,
   5131         const CLSID *pPinCategoryOut) = 0;
   5132 
   5133 };
   5134 #ifdef __CRT_UUID_DECL
   5135 __CRT_UUID_DECL(IFilterMapper2, 0xb79bb0b0, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
   5136 #endif
   5137 #else
   5138 typedef struct IFilterMapper2Vtbl {
   5139     BEGIN_INTERFACE
   5140 
   5141     /*** IUnknown methods ***/
   5142     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5143         IFilterMapper2* This,
   5144         REFIID riid,
   5145         void **ppvObject);
   5146 
   5147     ULONG (STDMETHODCALLTYPE *AddRef)(
   5148         IFilterMapper2* This);
   5149 
   5150     ULONG (STDMETHODCALLTYPE *Release)(
   5151         IFilterMapper2* This);
   5152 
   5153     /*** IFilterMapper2 methods ***/
   5154     HRESULT (STDMETHODCALLTYPE *CreateCategory)(
   5155         IFilterMapper2* This,
   5156         REFCLSID clsidCategory,
   5157         DWORD dwCategoryMerit,
   5158         LPCWSTR Description);
   5159 
   5160     HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
   5161         IFilterMapper2* This,
   5162         const CLSID *pclsidCategory,
   5163         LPCOLESTR szInstance,
   5164         REFCLSID Filter);
   5165 
   5166     HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
   5167         IFilterMapper2* This,
   5168         REFCLSID clsidFilter,
   5169         LPCWSTR Name,
   5170         IMoniker **ppMoniker,
   5171         const CLSID *pclsidCategory,
   5172         LPCOLESTR szInstance,
   5173         const REGFILTER2 *prf2);
   5174 
   5175     HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
   5176         IFilterMapper2* This,
   5177         IEnumMoniker **ppEnum,
   5178         DWORD dwFlags,
   5179         WINBOOL bExactMatch,
   5180         DWORD dwMerit,
   5181         WINBOOL bInputNeeded,
   5182         DWORD cInputTypes,
   5183         const GUID *pInputTypes,
   5184         const REGPINMEDIUM *pMedIn,
   5185         const CLSID *pPinCategoryIn,
   5186         WINBOOL bRender,
   5187         WINBOOL bOutputNeeded,
   5188         DWORD cOutputTypes,
   5189         const GUID *pOutputTypes,
   5190         const REGPINMEDIUM *pMedOut,
   5191         const CLSID *pPinCategoryOut);
   5192 
   5193     END_INTERFACE
   5194 } IFilterMapper2Vtbl;
   5195 interface IFilterMapper2 {
   5196     CONST_VTBL IFilterMapper2Vtbl* lpVtbl;
   5197 };
   5198 
   5199 #ifdef COBJMACROS
   5200 #ifndef WIDL_C_INLINE_WRAPPERS
   5201 /*** IUnknown methods ***/
   5202 #define IFilterMapper2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5203 #define IFilterMapper2_AddRef(This) (This)->lpVtbl->AddRef(This)
   5204 #define IFilterMapper2_Release(This) (This)->lpVtbl->Release(This)
   5205 /*** IFilterMapper2 methods ***/
   5206 #define IFilterMapper2_CreateCategory(This,clsidCategory,dwCategoryMerit,Description) (This)->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description)
   5207 #define IFilterMapper2_UnregisterFilter(This,pclsidCategory,szInstance,Filter) (This)->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter)
   5208 #define IFilterMapper2_RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2) (This)->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2)
   5209 #define IFilterMapper2_EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut) (This)->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut)
   5210 #else
   5211 /*** IUnknown methods ***/
   5212 static FORCEINLINE HRESULT IFilterMapper2_QueryInterface(IFilterMapper2* This,REFIID riid,void **ppvObject) {
   5213     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5214 }
   5215 static FORCEINLINE ULONG IFilterMapper2_AddRef(IFilterMapper2* This) {
   5216     return This->lpVtbl->AddRef(This);
   5217 }
   5218 static FORCEINLINE ULONG IFilterMapper2_Release(IFilterMapper2* This) {
   5219     return This->lpVtbl->Release(This);
   5220 }
   5221 /*** IFilterMapper2 methods ***/
   5222 static FORCEINLINE HRESULT IFilterMapper2_CreateCategory(IFilterMapper2* This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description) {
   5223     return This->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description);
   5224 }
   5225 static FORCEINLINE HRESULT IFilterMapper2_UnregisterFilter(IFilterMapper2* This,const CLSID *pclsidCategory,LPCOLESTR szInstance,REFCLSID Filter) {
   5226     return This->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter);
   5227 }
   5228 static FORCEINLINE HRESULT IFilterMapper2_RegisterFilter(IFilterMapper2* This,REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,LPCOLESTR szInstance,const REGFILTER2 *prf2) {
   5229     return This->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2);
   5230 }
   5231 static FORCEINLINE HRESULT IFilterMapper2_EnumMatchingFilters(IFilterMapper2* This,IEnumMoniker **ppEnum,DWORD dwFlags,WINBOOL bExactMatch,DWORD dwMerit,WINBOOL bInputNeeded,DWORD cInputTypes,const GUID *pInputTypes,const REGPINMEDIUM *pMedIn,const CLSID *pPinCategoryIn,WINBOOL bRender,WINBOOL bOutputNeeded,DWORD cOutputTypes,const GUID *pOutputTypes,const REGPINMEDIUM *pMedOut,const CLSID *pPinCategoryOut) {
   5232     return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut);
   5233 }
   5234 #endif
   5235 #endif
   5236 
   5237 #endif
   5238 
   5239 HRESULT STDMETHODCALLTYPE IFilterMapper2_CreateCategory_Proxy(
   5240     IFilterMapper2* This,
   5241     REFCLSID clsidCategory,
   5242     DWORD dwCategoryMerit,
   5243     LPCWSTR Description);
   5244 void __RPC_STUB IFilterMapper2_CreateCategory_Stub(
   5245     IRpcStubBuffer* This,
   5246     IRpcChannelBuffer* pRpcChannelBuffer,
   5247     PRPC_MESSAGE pRpcMessage,
   5248     DWORD* pdwStubPhase);
   5249 HRESULT STDMETHODCALLTYPE IFilterMapper2_UnregisterFilter_Proxy(
   5250     IFilterMapper2* This,
   5251     const CLSID *pclsidCategory,
   5252     LPCOLESTR szInstance,
   5253     REFCLSID Filter);
   5254 void __RPC_STUB IFilterMapper2_UnregisterFilter_Stub(
   5255     IRpcStubBuffer* This,
   5256     IRpcChannelBuffer* pRpcChannelBuffer,
   5257     PRPC_MESSAGE pRpcMessage,
   5258     DWORD* pdwStubPhase);
   5259 HRESULT STDMETHODCALLTYPE IFilterMapper2_RegisterFilter_Proxy(
   5260     IFilterMapper2* This,
   5261     REFCLSID clsidFilter,
   5262     LPCWSTR Name,
   5263     IMoniker **ppMoniker,
   5264     const CLSID *pclsidCategory,
   5265     LPCOLESTR szInstance,
   5266     const REGFILTER2 *prf2);
   5267 void __RPC_STUB IFilterMapper2_RegisterFilter_Stub(
   5268     IRpcStubBuffer* This,
   5269     IRpcChannelBuffer* pRpcChannelBuffer,
   5270     PRPC_MESSAGE pRpcMessage,
   5271     DWORD* pdwStubPhase);
   5272 HRESULT STDMETHODCALLTYPE IFilterMapper2_EnumMatchingFilters_Proxy(
   5273     IFilterMapper2* This,
   5274     IEnumMoniker **ppEnum,
   5275     DWORD dwFlags,
   5276     WINBOOL bExactMatch,
   5277     DWORD dwMerit,
   5278     WINBOOL bInputNeeded,
   5279     DWORD cInputTypes,
   5280     const GUID *pInputTypes,
   5281     const REGPINMEDIUM *pMedIn,
   5282     const CLSID *pPinCategoryIn,
   5283     WINBOOL bRender,
   5284     WINBOOL bOutputNeeded,
   5285     DWORD cOutputTypes,
   5286     const GUID *pOutputTypes,
   5287     const REGPINMEDIUM *pMedOut,
   5288     const CLSID *pPinCategoryOut);
   5289 void __RPC_STUB IFilterMapper2_EnumMatchingFilters_Stub(
   5290     IRpcStubBuffer* This,
   5291     IRpcChannelBuffer* pRpcChannelBuffer,
   5292     PRPC_MESSAGE pRpcMessage,
   5293     DWORD* pdwStubPhase);
   5294 
   5295 #endif  /* __IFilterMapper2_INTERFACE_DEFINED__ */
   5296 
   5297 /*****************************************************************************
   5298  * IFilterMapper3 interface
   5299  */
   5300 #ifndef __IFilterMapper3_INTERFACE_DEFINED__
   5301 #define __IFilterMapper3_INTERFACE_DEFINED__
   5302 
   5303 DEFINE_GUID(IID_IFilterMapper3, 0xb79bb0b1, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
   5304 #if defined(__cplusplus) && !defined(CINTERFACE)
   5305 MIDL_INTERFACE("b79bb0b1-33c1-11d1-abe1-00a0c905f375")
   5306 IFilterMapper3 : public IFilterMapper2
   5307 {
   5308     virtual HRESULT STDMETHODCALLTYPE GetICreateDevEnum(
   5309         ICreateDevEnum **ppEnum) = 0;
   5310 
   5311 };
   5312 #ifdef __CRT_UUID_DECL
   5313 __CRT_UUID_DECL(IFilterMapper3, 0xb79bb0b1, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
   5314 #endif
   5315 #else
   5316 typedef struct IFilterMapper3Vtbl {
   5317     BEGIN_INTERFACE
   5318 
   5319     /*** IUnknown methods ***/
   5320     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5321         IFilterMapper3* This,
   5322         REFIID riid,
   5323         void **ppvObject);
   5324 
   5325     ULONG (STDMETHODCALLTYPE *AddRef)(
   5326         IFilterMapper3* This);
   5327 
   5328     ULONG (STDMETHODCALLTYPE *Release)(
   5329         IFilterMapper3* This);
   5330 
   5331     /*** IFilterMapper2 methods ***/
   5332     HRESULT (STDMETHODCALLTYPE *CreateCategory)(
   5333         IFilterMapper3* This,
   5334         REFCLSID clsidCategory,
   5335         DWORD dwCategoryMerit,
   5336         LPCWSTR Description);
   5337 
   5338     HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
   5339         IFilterMapper3* This,
   5340         const CLSID *pclsidCategory,
   5341         LPCOLESTR szInstance,
   5342         REFCLSID Filter);
   5343 
   5344     HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
   5345         IFilterMapper3* This,
   5346         REFCLSID clsidFilter,
   5347         LPCWSTR Name,
   5348         IMoniker **ppMoniker,
   5349         const CLSID *pclsidCategory,
   5350         LPCOLESTR szInstance,
   5351         const REGFILTER2 *prf2);
   5352 
   5353     HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
   5354         IFilterMapper3* This,
   5355         IEnumMoniker **ppEnum,
   5356         DWORD dwFlags,
   5357         WINBOOL bExactMatch,
   5358         DWORD dwMerit,
   5359         WINBOOL bInputNeeded,
   5360         DWORD cInputTypes,
   5361         const GUID *pInputTypes,
   5362         const REGPINMEDIUM *pMedIn,
   5363         const CLSID *pPinCategoryIn,
   5364         WINBOOL bRender,
   5365         WINBOOL bOutputNeeded,
   5366         DWORD cOutputTypes,
   5367         const GUID *pOutputTypes,
   5368         const REGPINMEDIUM *pMedOut,
   5369         const CLSID *pPinCategoryOut);
   5370 
   5371     /*** IFilterMapper3 methods ***/
   5372     HRESULT (STDMETHODCALLTYPE *GetICreateDevEnum)(
   5373         IFilterMapper3* This,
   5374         ICreateDevEnum **ppEnum);
   5375 
   5376     END_INTERFACE
   5377 } IFilterMapper3Vtbl;
   5378 interface IFilterMapper3 {
   5379     CONST_VTBL IFilterMapper3Vtbl* lpVtbl;
   5380 };
   5381 
   5382 #ifdef COBJMACROS
   5383 #ifndef WIDL_C_INLINE_WRAPPERS
   5384 /*** IUnknown methods ***/
   5385 #define IFilterMapper3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5386 #define IFilterMapper3_AddRef(This) (This)->lpVtbl->AddRef(This)
   5387 #define IFilterMapper3_Release(This) (This)->lpVtbl->Release(This)
   5388 /*** IFilterMapper2 methods ***/
   5389 #define IFilterMapper3_CreateCategory(This,clsidCategory,dwCategoryMerit,Description) (This)->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description)
   5390 #define IFilterMapper3_UnregisterFilter(This,pclsidCategory,szInstance,Filter) (This)->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter)
   5391 #define IFilterMapper3_RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2) (This)->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2)
   5392 #define IFilterMapper3_EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut) (This)->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut)
   5393 /*** IFilterMapper3 methods ***/
   5394 #define IFilterMapper3_GetICreateDevEnum(This,ppEnum) (This)->lpVtbl->GetICreateDevEnum(This,ppEnum)
   5395 #else
   5396 /*** IUnknown methods ***/
   5397 static FORCEINLINE HRESULT IFilterMapper3_QueryInterface(IFilterMapper3* This,REFIID riid,void **ppvObject) {
   5398     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5399 }
   5400 static FORCEINLINE ULONG IFilterMapper3_AddRef(IFilterMapper3* This) {
   5401     return This->lpVtbl->AddRef(This);
   5402 }
   5403 static FORCEINLINE ULONG IFilterMapper3_Release(IFilterMapper3* This) {
   5404     return This->lpVtbl->Release(This);
   5405 }
   5406 /*** IFilterMapper2 methods ***/
   5407 static FORCEINLINE HRESULT IFilterMapper3_CreateCategory(IFilterMapper3* This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description) {
   5408     return This->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description);
   5409 }
   5410 static FORCEINLINE HRESULT IFilterMapper3_UnregisterFilter(IFilterMapper3* This,const CLSID *pclsidCategory,LPCOLESTR szInstance,REFCLSID Filter) {
   5411     return This->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter);
   5412 }
   5413 static FORCEINLINE HRESULT IFilterMapper3_RegisterFilter(IFilterMapper3* This,REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,LPCOLESTR szInstance,const REGFILTER2 *prf2) {
   5414     return This->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2);
   5415 }
   5416 static FORCEINLINE HRESULT IFilterMapper3_EnumMatchingFilters(IFilterMapper3* This,IEnumMoniker **ppEnum,DWORD dwFlags,WINBOOL bExactMatch,DWORD dwMerit,WINBOOL bInputNeeded,DWORD cInputTypes,const GUID *pInputTypes,const REGPINMEDIUM *pMedIn,const CLSID *pPinCategoryIn,WINBOOL bRender,WINBOOL bOutputNeeded,DWORD cOutputTypes,const GUID *pOutputTypes,const REGPINMEDIUM *pMedOut,const CLSID *pPinCategoryOut) {
   5417     return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut);
   5418 }
   5419 /*** IFilterMapper3 methods ***/
   5420 static FORCEINLINE HRESULT IFilterMapper3_GetICreateDevEnum(IFilterMapper3* This,ICreateDevEnum **ppEnum) {
   5421     return This->lpVtbl->GetICreateDevEnum(This,ppEnum);
   5422 }
   5423 #endif
   5424 #endif
   5425 
   5426 #endif
   5427 
   5428 HRESULT STDMETHODCALLTYPE IFilterMapper3_GetICreateDevEnum_Proxy(
   5429     IFilterMapper3* This,
   5430     ICreateDevEnum **ppEnum);
   5431 void __RPC_STUB IFilterMapper3_GetICreateDevEnum_Stub(
   5432     IRpcStubBuffer* This,
   5433     IRpcChannelBuffer* pRpcChannelBuffer,
   5434     PRPC_MESSAGE pRpcMessage,
   5435     DWORD* pdwStubPhase);
   5436 
   5437 #endif  /* __IFilterMapper3_INTERFACE_DEFINED__ */
   5438 
   5439 typedef enum tagQualityMessageType {
   5440     Famine = 0,
   5441     Flood = 1
   5442 } QualityMessageType;
   5443 typedef struct tagQuality {
   5444     QualityMessageType Type;
   5445     LONG Proportion;
   5446     REFERENCE_TIME Late;
   5447     REFERENCE_TIME TimeStamp;
   5448 } Quality;
   5449 typedef IQualityControl *PQUALITYCONTROL;
   5450 /*****************************************************************************
   5451  * IQualityControl interface
   5452  */
   5453 #ifndef __IQualityControl_INTERFACE_DEFINED__
   5454 #define __IQualityControl_INTERFACE_DEFINED__
   5455 
   5456 DEFINE_GUID(IID_IQualityControl, 0x56a868a5, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   5457 #if defined(__cplusplus) && !defined(CINTERFACE)
   5458 MIDL_INTERFACE("56a868a5-0ad4-11ce-b03a-0020af0ba770")
   5459 IQualityControl : public IUnknown
   5460 {
   5461     virtual HRESULT STDMETHODCALLTYPE Notify(
   5462         IBaseFilter *pSelf,
   5463         Quality q) = 0;
   5464 
   5465     virtual HRESULT STDMETHODCALLTYPE SetSink(
   5466         IQualityControl *piqc) = 0;
   5467 
   5468 };
   5469 #ifdef __CRT_UUID_DECL
   5470 __CRT_UUID_DECL(IQualityControl, 0x56a868a5, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   5471 #endif
   5472 #else
   5473 typedef struct IQualityControlVtbl {
   5474     BEGIN_INTERFACE
   5475 
   5476     /*** IUnknown methods ***/
   5477     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5478         IQualityControl* This,
   5479         REFIID riid,
   5480         void **ppvObject);
   5481 
   5482     ULONG (STDMETHODCALLTYPE *AddRef)(
   5483         IQualityControl* This);
   5484 
   5485     ULONG (STDMETHODCALLTYPE *Release)(
   5486         IQualityControl* This);
   5487 
   5488     /*** IQualityControl methods ***/
   5489     HRESULT (STDMETHODCALLTYPE *Notify)(
   5490         IQualityControl* This,
   5491         IBaseFilter *pSelf,
   5492         Quality q);
   5493 
   5494     HRESULT (STDMETHODCALLTYPE *SetSink)(
   5495         IQualityControl* This,
   5496         IQualityControl *piqc);
   5497 
   5498     END_INTERFACE
   5499 } IQualityControlVtbl;
   5500 interface IQualityControl {
   5501     CONST_VTBL IQualityControlVtbl* lpVtbl;
   5502 };
   5503 
   5504 #ifdef COBJMACROS
   5505 #ifndef WIDL_C_INLINE_WRAPPERS
   5506 /*** IUnknown methods ***/
   5507 #define IQualityControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5508 #define IQualityControl_AddRef(This) (This)->lpVtbl->AddRef(This)
   5509 #define IQualityControl_Release(This) (This)->lpVtbl->Release(This)
   5510 /*** IQualityControl methods ***/
   5511 #define IQualityControl_Notify(This,pSelf,q) (This)->lpVtbl->Notify(This,pSelf,q)
   5512 #define IQualityControl_SetSink(This,piqc) (This)->lpVtbl->SetSink(This,piqc)
   5513 #else
   5514 /*** IUnknown methods ***/
   5515 static FORCEINLINE HRESULT IQualityControl_QueryInterface(IQualityControl* This,REFIID riid,void **ppvObject) {
   5516     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5517 }
   5518 static FORCEINLINE ULONG IQualityControl_AddRef(IQualityControl* This) {
   5519     return This->lpVtbl->AddRef(This);
   5520 }
   5521 static FORCEINLINE ULONG IQualityControl_Release(IQualityControl* This) {
   5522     return This->lpVtbl->Release(This);
   5523 }
   5524 /*** IQualityControl methods ***/
   5525 static FORCEINLINE HRESULT IQualityControl_Notify(IQualityControl* This,IBaseFilter *pSelf,Quality q) {
   5526     return This->lpVtbl->Notify(This,pSelf,q);
   5527 }
   5528 static FORCEINLINE HRESULT IQualityControl_SetSink(IQualityControl* This,IQualityControl *piqc) {
   5529     return This->lpVtbl->SetSink(This,piqc);
   5530 }
   5531 #endif
   5532 #endif
   5533 
   5534 #endif
   5535 
   5536 HRESULT STDMETHODCALLTYPE IQualityControl_Notify_Proxy(
   5537     IQualityControl* This,
   5538     IBaseFilter *pSelf,
   5539     Quality q);
   5540 void __RPC_STUB IQualityControl_Notify_Stub(
   5541     IRpcStubBuffer* This,
   5542     IRpcChannelBuffer* pRpcChannelBuffer,
   5543     PRPC_MESSAGE pRpcMessage,
   5544     DWORD* pdwStubPhase);
   5545 HRESULT STDMETHODCALLTYPE IQualityControl_SetSink_Proxy(
   5546     IQualityControl* This,
   5547     IQualityControl *piqc);
   5548 void __RPC_STUB IQualityControl_SetSink_Stub(
   5549     IRpcStubBuffer* This,
   5550     IRpcChannelBuffer* pRpcChannelBuffer,
   5551     PRPC_MESSAGE pRpcMessage,
   5552     DWORD* pdwStubPhase);
   5553 
   5554 #endif  /* __IQualityControl_INTERFACE_DEFINED__ */
   5555 
   5556 enum {
   5557     CK_NOCOLORKEY = 0x0,
   5558     CK_INDEX = 0x1,
   5559     CK_RGB = 0x2
   5560 };
   5561 
   5562 typedef struct tagCOLORKEY {
   5563     DWORD KeyType;
   5564     DWORD PaletteIndex;
   5565     COLORREF LowColorValue;
   5566     COLORREF HighColorValue;
   5567 } COLORKEY;
   5568 enum {
   5569     ADVISE_NONE = 0x0,
   5570     ADVISE_CLIPPING = 0x1,
   5571     ADVISE_PALETTE = 0x2,
   5572     ADVISE_COLORKEY = 0x4,
   5573     ADVISE_POSITION = 0x8,
   5574     ADVISE_DISPLAY_CHANGE = 0x10
   5575 };
   5576 
   5577 #define ADVISE_ALL (((ADVISE_CLIPPING | ADVISE_PALETTE) | ADVISE_COLORKEY) | ADVISE_POSITION)
   5578 
   5579 #define ADVISE_ALL2 (ADVISE_ALL | ADVISE_DISPLAY_CHANGE)
   5580 
   5581 #ifndef _WINGDI_
   5582 typedef struct _RGNDATAHEADER {
   5583     DWORD dwSize;
   5584     DWORD iType;
   5585     DWORD nCount;
   5586     DWORD nRgnSize;
   5587     RECT rcBound;
   5588 } RGNDATAHEADER;
   5589 typedef struct _RGNDATA {
   5590     RGNDATAHEADER rdh;
   5591     char Buffer[1];
   5592 } RGNDATA;
   5593 #endif /* _WINGDI_ */
   5594 /*****************************************************************************
   5595  * IOverlayNotify interface
   5596  */
   5597 #ifndef __IOverlayNotify_INTERFACE_DEFINED__
   5598 #define __IOverlayNotify_INTERFACE_DEFINED__
   5599 
   5600 DEFINE_GUID(IID_IOverlayNotify, 0x56a868a0, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   5601 #if defined(__cplusplus) && !defined(CINTERFACE)
   5602 MIDL_INTERFACE("56a868a0-0ad4-11ce-b03a-0020af0ba770")
   5603 IOverlayNotify : public IUnknown
   5604 {
   5605     virtual HRESULT STDMETHODCALLTYPE OnPaletteChange(
   5606         DWORD dwColors,
   5607         const PALETTEENTRY *pPalette) = 0;
   5608 
   5609     virtual HRESULT STDMETHODCALLTYPE OnClipChange(
   5610         const RECT *pSourceRect,
   5611         const RECT *pDestinationRect,
   5612         const RGNDATA *pRgnData) = 0;
   5613 
   5614     virtual HRESULT STDMETHODCALLTYPE OnColorKeyChange(
   5615         const COLORKEY *pColorKey) = 0;
   5616 
   5617     virtual HRESULT STDMETHODCALLTYPE OnPositionChange(
   5618         const RECT *pSourceRect,
   5619         const RECT *pDestinationRect) = 0;
   5620 
   5621 };
   5622 #ifdef __CRT_UUID_DECL
   5623 __CRT_UUID_DECL(IOverlayNotify, 0x56a868a0, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   5624 #endif
   5625 #else
   5626 typedef struct IOverlayNotifyVtbl {
   5627     BEGIN_INTERFACE
   5628 
   5629     /*** IUnknown methods ***/
   5630     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5631         IOverlayNotify* This,
   5632         REFIID riid,
   5633         void **ppvObject);
   5634 
   5635     ULONG (STDMETHODCALLTYPE *AddRef)(
   5636         IOverlayNotify* This);
   5637 
   5638     ULONG (STDMETHODCALLTYPE *Release)(
   5639         IOverlayNotify* This);
   5640 
   5641     /*** IOverlayNotify methods ***/
   5642     HRESULT (STDMETHODCALLTYPE *OnPaletteChange)(
   5643         IOverlayNotify* This,
   5644         DWORD dwColors,
   5645         const PALETTEENTRY *pPalette);
   5646 
   5647     HRESULT (STDMETHODCALLTYPE *OnClipChange)(
   5648         IOverlayNotify* This,
   5649         const RECT *pSourceRect,
   5650         const RECT *pDestinationRect,
   5651         const RGNDATA *pRgnData);
   5652 
   5653     HRESULT (STDMETHODCALLTYPE *OnColorKeyChange)(
   5654         IOverlayNotify* This,
   5655         const COLORKEY *pColorKey);
   5656 
   5657     HRESULT (STDMETHODCALLTYPE *OnPositionChange)(
   5658         IOverlayNotify* This,
   5659         const RECT *pSourceRect,
   5660         const RECT *pDestinationRect);
   5661 
   5662     END_INTERFACE
   5663 } IOverlayNotifyVtbl;
   5664 interface IOverlayNotify {
   5665     CONST_VTBL IOverlayNotifyVtbl* lpVtbl;
   5666 };
   5667 
   5668 #ifdef COBJMACROS
   5669 #ifndef WIDL_C_INLINE_WRAPPERS
   5670 /*** IUnknown methods ***/
   5671 #define IOverlayNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5672 #define IOverlayNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
   5673 #define IOverlayNotify_Release(This) (This)->lpVtbl->Release(This)
   5674 /*** IOverlayNotify methods ***/
   5675 #define IOverlayNotify_OnPaletteChange(This,dwColors,pPalette) (This)->lpVtbl->OnPaletteChange(This,dwColors,pPalette)
   5676 #define IOverlayNotify_OnClipChange(This,pSourceRect,pDestinationRect,pRgnData) (This)->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData)
   5677 #define IOverlayNotify_OnColorKeyChange(This,pColorKey) (This)->lpVtbl->OnColorKeyChange(This,pColorKey)
   5678 #define IOverlayNotify_OnPositionChange(This,pSourceRect,pDestinationRect) (This)->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect)
   5679 #else
   5680 /*** IUnknown methods ***/
   5681 static FORCEINLINE HRESULT IOverlayNotify_QueryInterface(IOverlayNotify* This,REFIID riid,void **ppvObject) {
   5682     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5683 }
   5684 static FORCEINLINE ULONG IOverlayNotify_AddRef(IOverlayNotify* This) {
   5685     return This->lpVtbl->AddRef(This);
   5686 }
   5687 static FORCEINLINE ULONG IOverlayNotify_Release(IOverlayNotify* This) {
   5688     return This->lpVtbl->Release(This);
   5689 }
   5690 /*** IOverlayNotify methods ***/
   5691 static FORCEINLINE HRESULT IOverlayNotify_OnPaletteChange(IOverlayNotify* This,DWORD dwColors,const PALETTEENTRY *pPalette) {
   5692     return This->lpVtbl->OnPaletteChange(This,dwColors,pPalette);
   5693 }
   5694 static FORCEINLINE HRESULT IOverlayNotify_OnClipChange(IOverlayNotify* This,const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData) {
   5695     return This->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData);
   5696 }
   5697 static FORCEINLINE HRESULT IOverlayNotify_OnColorKeyChange(IOverlayNotify* This,const COLORKEY *pColorKey) {
   5698     return This->lpVtbl->OnColorKeyChange(This,pColorKey);
   5699 }
   5700 static FORCEINLINE HRESULT IOverlayNotify_OnPositionChange(IOverlayNotify* This,const RECT *pSourceRect,const RECT *pDestinationRect) {
   5701     return This->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect);
   5702 }
   5703 #endif
   5704 #endif
   5705 
   5706 #endif
   5707 
   5708 HRESULT STDMETHODCALLTYPE IOverlayNotify_OnPaletteChange_Proxy(
   5709     IOverlayNotify* This,
   5710     DWORD dwColors,
   5711     const PALETTEENTRY *pPalette);
   5712 void __RPC_STUB IOverlayNotify_OnPaletteChange_Stub(
   5713     IRpcStubBuffer* This,
   5714     IRpcChannelBuffer* pRpcChannelBuffer,
   5715     PRPC_MESSAGE pRpcMessage,
   5716     DWORD* pdwStubPhase);
   5717 HRESULT STDMETHODCALLTYPE IOverlayNotify_OnClipChange_Proxy(
   5718     IOverlayNotify* This,
   5719     const RECT *pSourceRect,
   5720     const RECT *pDestinationRect,
   5721     const RGNDATA *pRgnData);
   5722 void __RPC_STUB IOverlayNotify_OnClipChange_Stub(
   5723     IRpcStubBuffer* This,
   5724     IRpcChannelBuffer* pRpcChannelBuffer,
   5725     PRPC_MESSAGE pRpcMessage,
   5726     DWORD* pdwStubPhase);
   5727 HRESULT STDMETHODCALLTYPE IOverlayNotify_OnColorKeyChange_Proxy(
   5728     IOverlayNotify* This,
   5729     const COLORKEY *pColorKey);
   5730 void __RPC_STUB IOverlayNotify_OnColorKeyChange_Stub(
   5731     IRpcStubBuffer* This,
   5732     IRpcChannelBuffer* pRpcChannelBuffer,
   5733     PRPC_MESSAGE pRpcMessage,
   5734     DWORD* pdwStubPhase);
   5735 HRESULT STDMETHODCALLTYPE IOverlayNotify_OnPositionChange_Proxy(
   5736     IOverlayNotify* This,
   5737     const RECT *pSourceRect,
   5738     const RECT *pDestinationRect);
   5739 void __RPC_STUB IOverlayNotify_OnPositionChange_Stub(
   5740     IRpcStubBuffer* This,
   5741     IRpcChannelBuffer* pRpcChannelBuffer,
   5742     PRPC_MESSAGE pRpcMessage,
   5743     DWORD* pdwStubPhase);
   5744 
   5745 #endif  /* __IOverlayNotify_INTERFACE_DEFINED__ */
   5746 
   5747 typedef IOverlayNotify *POVERLAYNOTIFY;
   5748 #if 0
   5749 typedef HANDLE HMONITOR;
   5750 #endif /* 0 */
   5751 /*****************************************************************************
   5752  * IOverlayNotify2 interface
   5753  */
   5754 #ifndef __IOverlayNotify2_INTERFACE_DEFINED__
   5755 #define __IOverlayNotify2_INTERFACE_DEFINED__
   5756 
   5757 DEFINE_GUID(IID_IOverlayNotify2, 0x680efa10, 0xd535, 0x11d1, 0x87,0xc8, 0x00,0xa0,0xc9,0x22,0x31,0x96);
   5758 #if defined(__cplusplus) && !defined(CINTERFACE)
   5759 MIDL_INTERFACE("680efa10-d535-11d1-87c8-00a0c9223196")
   5760 IOverlayNotify2 : public IOverlayNotify
   5761 {
   5762     virtual HRESULT STDMETHODCALLTYPE OnDisplayChange(
   5763         HMONITOR hMonitor) = 0;
   5764 
   5765 };
   5766 #ifdef __CRT_UUID_DECL
   5767 __CRT_UUID_DECL(IOverlayNotify2, 0x680efa10, 0xd535, 0x11d1, 0x87,0xc8, 0x00,0xa0,0xc9,0x22,0x31,0x96)
   5768 #endif
   5769 #else
   5770 typedef struct IOverlayNotify2Vtbl {
   5771     BEGIN_INTERFACE
   5772 
   5773     /*** IUnknown methods ***/
   5774     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5775         IOverlayNotify2* This,
   5776         REFIID riid,
   5777         void **ppvObject);
   5778 
   5779     ULONG (STDMETHODCALLTYPE *AddRef)(
   5780         IOverlayNotify2* This);
   5781 
   5782     ULONG (STDMETHODCALLTYPE *Release)(
   5783         IOverlayNotify2* This);
   5784 
   5785     /*** IOverlayNotify methods ***/
   5786     HRESULT (STDMETHODCALLTYPE *OnPaletteChange)(
   5787         IOverlayNotify2* This,
   5788         DWORD dwColors,
   5789         const PALETTEENTRY *pPalette);
   5790 
   5791     HRESULT (STDMETHODCALLTYPE *OnClipChange)(
   5792         IOverlayNotify2* This,
   5793         const RECT *pSourceRect,
   5794         const RECT *pDestinationRect,
   5795         const RGNDATA *pRgnData);
   5796 
   5797     HRESULT (STDMETHODCALLTYPE *OnColorKeyChange)(
   5798         IOverlayNotify2* This,
   5799         const COLORKEY *pColorKey);
   5800 
   5801     HRESULT (STDMETHODCALLTYPE *OnPositionChange)(
   5802         IOverlayNotify2* This,
   5803         const RECT *pSourceRect,
   5804         const RECT *pDestinationRect);
   5805 
   5806     /*** IOverlayNotify2 methods ***/
   5807     HRESULT (STDMETHODCALLTYPE *OnDisplayChange)(
   5808         IOverlayNotify2* This,
   5809         HMONITOR hMonitor);
   5810 
   5811     END_INTERFACE
   5812 } IOverlayNotify2Vtbl;
   5813 interface IOverlayNotify2 {
   5814     CONST_VTBL IOverlayNotify2Vtbl* lpVtbl;
   5815 };
   5816 
   5817 #ifdef COBJMACROS
   5818 #ifndef WIDL_C_INLINE_WRAPPERS
   5819 /*** IUnknown methods ***/
   5820 #define IOverlayNotify2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5821 #define IOverlayNotify2_AddRef(This) (This)->lpVtbl->AddRef(This)
   5822 #define IOverlayNotify2_Release(This) (This)->lpVtbl->Release(This)
   5823 /*** IOverlayNotify methods ***/
   5824 #define IOverlayNotify2_OnPaletteChange(This,dwColors,pPalette) (This)->lpVtbl->OnPaletteChange(This,dwColors,pPalette)
   5825 #define IOverlayNotify2_OnClipChange(This,pSourceRect,pDestinationRect,pRgnData) (This)->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData)
   5826 #define IOverlayNotify2_OnColorKeyChange(This,pColorKey) (This)->lpVtbl->OnColorKeyChange(This,pColorKey)
   5827 #define IOverlayNotify2_OnPositionChange(This,pSourceRect,pDestinationRect) (This)->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect)
   5828 /*** IOverlayNotify2 methods ***/
   5829 #define IOverlayNotify2_OnDisplayChange(This,hMonitor) (This)->lpVtbl->OnDisplayChange(This,hMonitor)
   5830 #else
   5831 /*** IUnknown methods ***/
   5832 static FORCEINLINE HRESULT IOverlayNotify2_QueryInterface(IOverlayNotify2* This,REFIID riid,void **ppvObject) {
   5833     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5834 }
   5835 static FORCEINLINE ULONG IOverlayNotify2_AddRef(IOverlayNotify2* This) {
   5836     return This->lpVtbl->AddRef(This);
   5837 }
   5838 static FORCEINLINE ULONG IOverlayNotify2_Release(IOverlayNotify2* This) {
   5839     return This->lpVtbl->Release(This);
   5840 }
   5841 /*** IOverlayNotify methods ***/
   5842 static FORCEINLINE HRESULT IOverlayNotify2_OnPaletteChange(IOverlayNotify2* This,DWORD dwColors,const PALETTEENTRY *pPalette) {
   5843     return This->lpVtbl->OnPaletteChange(This,dwColors,pPalette);
   5844 }
   5845 static FORCEINLINE HRESULT IOverlayNotify2_OnClipChange(IOverlayNotify2* This,const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData) {
   5846     return This->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData);
   5847 }
   5848 static FORCEINLINE HRESULT IOverlayNotify2_OnColorKeyChange(IOverlayNotify2* This,const COLORKEY *pColorKey) {
   5849     return This->lpVtbl->OnColorKeyChange(This,pColorKey);
   5850 }
   5851 static FORCEINLINE HRESULT IOverlayNotify2_OnPositionChange(IOverlayNotify2* This,const RECT *pSourceRect,const RECT *pDestinationRect) {
   5852     return This->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect);
   5853 }
   5854 /*** IOverlayNotify2 methods ***/
   5855 static FORCEINLINE HRESULT IOverlayNotify2_OnDisplayChange(IOverlayNotify2* This,HMONITOR hMonitor) {
   5856     return This->lpVtbl->OnDisplayChange(This,hMonitor);
   5857 }
   5858 #endif
   5859 #endif
   5860 
   5861 #endif
   5862 
   5863 HRESULT STDMETHODCALLTYPE IOverlayNotify2_OnDisplayChange_Proxy(
   5864     IOverlayNotify2* This,
   5865     HMONITOR hMonitor);
   5866 void __RPC_STUB IOverlayNotify2_OnDisplayChange_Stub(
   5867     IRpcStubBuffer* This,
   5868     IRpcChannelBuffer* pRpcChannelBuffer,
   5869     PRPC_MESSAGE pRpcMessage,
   5870     DWORD* pdwStubPhase);
   5871 
   5872 #endif  /* __IOverlayNotify2_INTERFACE_DEFINED__ */
   5873 
   5874 typedef IOverlayNotify2 *POVERLAYNOTIFY2;
   5875 /*****************************************************************************
   5876  * IOverlay interface
   5877  */
   5878 #ifndef __IOverlay_INTERFACE_DEFINED__
   5879 #define __IOverlay_INTERFACE_DEFINED__
   5880 
   5881 DEFINE_GUID(IID_IOverlay, 0x56a868a1, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   5882 #if defined(__cplusplus) && !defined(CINTERFACE)
   5883 MIDL_INTERFACE("56a868a1-0ad4-11ce-b03a-0020af0ba770")
   5884 IOverlay : public IUnknown
   5885 {
   5886     virtual HRESULT STDMETHODCALLTYPE GetPalette(
   5887         DWORD *pdwColors,
   5888         PALETTEENTRY **ppPalette) = 0;
   5889 
   5890     virtual HRESULT STDMETHODCALLTYPE SetPalette(
   5891         DWORD dwColors,
   5892         PALETTEENTRY *pPalette) = 0;
   5893 
   5894     virtual HRESULT STDMETHODCALLTYPE GetDefaultColorKey(
   5895         COLORKEY *pColorKey) = 0;
   5896 
   5897     virtual HRESULT STDMETHODCALLTYPE GetColorKey(
   5898         COLORKEY *pColorKey) = 0;
   5899 
   5900     virtual HRESULT STDMETHODCALLTYPE SetColorKey(
   5901         COLORKEY *pColorKey) = 0;
   5902 
   5903     virtual HRESULT STDMETHODCALLTYPE GetWindowHandle(
   5904         HWND *pHwnd) = 0;
   5905 
   5906     virtual HRESULT STDMETHODCALLTYPE GetClipList(
   5907         RECT *pSourceRect,
   5908         RECT *pDestinationRect,
   5909         RGNDATA **ppRgnData) = 0;
   5910 
   5911     virtual HRESULT STDMETHODCALLTYPE GetVideoPosition(
   5912         RECT *pSourceRect,
   5913         RECT *pDestinationRect) = 0;
   5914 
   5915     virtual HRESULT STDMETHODCALLTYPE Advise(
   5916         IOverlayNotify *pOverlayNotify,
   5917         DWORD dwInterests) = 0;
   5918 
   5919     virtual HRESULT STDMETHODCALLTYPE Unadvise(
   5920         ) = 0;
   5921 
   5922 };
   5923 #ifdef __CRT_UUID_DECL
   5924 __CRT_UUID_DECL(IOverlay, 0x56a868a1, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   5925 #endif
   5926 #else
   5927 typedef struct IOverlayVtbl {
   5928     BEGIN_INTERFACE
   5929 
   5930     /*** IUnknown methods ***/
   5931     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5932         IOverlay* This,
   5933         REFIID riid,
   5934         void **ppvObject);
   5935 
   5936     ULONG (STDMETHODCALLTYPE *AddRef)(
   5937         IOverlay* This);
   5938 
   5939     ULONG (STDMETHODCALLTYPE *Release)(
   5940         IOverlay* This);
   5941 
   5942     /*** IOverlay methods ***/
   5943     HRESULT (STDMETHODCALLTYPE *GetPalette)(
   5944         IOverlay* This,
   5945         DWORD *pdwColors,
   5946         PALETTEENTRY **ppPalette);
   5947 
   5948     HRESULT (STDMETHODCALLTYPE *SetPalette)(
   5949         IOverlay* This,
   5950         DWORD dwColors,
   5951         PALETTEENTRY *pPalette);
   5952 
   5953     HRESULT (STDMETHODCALLTYPE *GetDefaultColorKey)(
   5954         IOverlay* This,
   5955         COLORKEY *pColorKey);
   5956 
   5957     HRESULT (STDMETHODCALLTYPE *GetColorKey)(
   5958         IOverlay* This,
   5959         COLORKEY *pColorKey);
   5960 
   5961     HRESULT (STDMETHODCALLTYPE *SetColorKey)(
   5962         IOverlay* This,
   5963         COLORKEY *pColorKey);
   5964 
   5965     HRESULT (STDMETHODCALLTYPE *GetWindowHandle)(
   5966         IOverlay* This,
   5967         HWND *pHwnd);
   5968 
   5969     HRESULT (STDMETHODCALLTYPE *GetClipList)(
   5970         IOverlay* This,
   5971         RECT *pSourceRect,
   5972         RECT *pDestinationRect,
   5973         RGNDATA **ppRgnData);
   5974 
   5975     HRESULT (STDMETHODCALLTYPE *GetVideoPosition)(
   5976         IOverlay* This,
   5977         RECT *pSourceRect,
   5978         RECT *pDestinationRect);
   5979 
   5980     HRESULT (STDMETHODCALLTYPE *Advise)(
   5981         IOverlay* This,
   5982         IOverlayNotify *pOverlayNotify,
   5983         DWORD dwInterests);
   5984 
   5985     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   5986         IOverlay* This);
   5987 
   5988     END_INTERFACE
   5989 } IOverlayVtbl;
   5990 interface IOverlay {
   5991     CONST_VTBL IOverlayVtbl* lpVtbl;
   5992 };
   5993 
   5994 #ifdef COBJMACROS
   5995 #ifndef WIDL_C_INLINE_WRAPPERS
   5996 /*** IUnknown methods ***/
   5997 #define IOverlay_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5998 #define IOverlay_AddRef(This) (This)->lpVtbl->AddRef(This)
   5999 #define IOverlay_Release(This) (This)->lpVtbl->Release(This)
   6000 /*** IOverlay methods ***/
   6001 #define IOverlay_GetPalette(This,pdwColors,ppPalette) (This)->lpVtbl->GetPalette(This,pdwColors,ppPalette)
   6002 #define IOverlay_SetPalette(This,dwColors,pPalette) (This)->lpVtbl->SetPalette(This,dwColors,pPalette)
   6003 #define IOverlay_GetDefaultColorKey(This,pColorKey) (This)->lpVtbl->GetDefaultColorKey(This,pColorKey)
   6004 #define IOverlay_GetColorKey(This,pColorKey) (This)->lpVtbl->GetColorKey(This,pColorKey)
   6005 #define IOverlay_SetColorKey(This,pColorKey) (This)->lpVtbl->SetColorKey(This,pColorKey)
   6006 #define IOverlay_GetWindowHandle(This,pHwnd) (This)->lpVtbl->GetWindowHandle(This,pHwnd)
   6007 #define IOverlay_GetClipList(This,pSourceRect,pDestinationRect,ppRgnData) (This)->lpVtbl->GetClipList(This,pSourceRect,pDestinationRect,ppRgnData)
   6008 #define IOverlay_GetVideoPosition(This,pSourceRect,pDestinationRect) (This)->lpVtbl->GetVideoPosition(This,pSourceRect,pDestinationRect)
   6009 #define IOverlay_Advise(This,pOverlayNotify,dwInterests) (This)->lpVtbl->Advise(This,pOverlayNotify,dwInterests)
   6010 #define IOverlay_Unadvise(This) (This)->lpVtbl->Unadvise(This)
   6011 #else
   6012 /*** IUnknown methods ***/
   6013 static FORCEINLINE HRESULT IOverlay_QueryInterface(IOverlay* This,REFIID riid,void **ppvObject) {
   6014     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6015 }
   6016 static FORCEINLINE ULONG IOverlay_AddRef(IOverlay* This) {
   6017     return This->lpVtbl->AddRef(This);
   6018 }
   6019 static FORCEINLINE ULONG IOverlay_Release(IOverlay* This) {
   6020     return This->lpVtbl->Release(This);
   6021 }
   6022 /*** IOverlay methods ***/
   6023 static FORCEINLINE HRESULT IOverlay_GetPalette(IOverlay* This,DWORD *pdwColors,PALETTEENTRY **ppPalette) {
   6024     return This->lpVtbl->GetPalette(This,pdwColors,ppPalette);
   6025 }
   6026 static FORCEINLINE HRESULT IOverlay_SetPalette(IOverlay* This,DWORD dwColors,PALETTEENTRY *pPalette) {
   6027     return This->lpVtbl->SetPalette(This,dwColors,pPalette);
   6028 }
   6029 static FORCEINLINE HRESULT IOverlay_GetDefaultColorKey(IOverlay* This,COLORKEY *pColorKey) {
   6030     return This->lpVtbl->GetDefaultColorKey(This,pColorKey);
   6031 }
   6032 static FORCEINLINE HRESULT IOverlay_GetColorKey(IOverlay* This,COLORKEY *pColorKey) {
   6033     return This->lpVtbl->GetColorKey(This,pColorKey);
   6034 }
   6035 static FORCEINLINE HRESULT IOverlay_SetColorKey(IOverlay* This,COLORKEY *pColorKey) {
   6036     return This->lpVtbl->SetColorKey(This,pColorKey);
   6037 }
   6038 static FORCEINLINE HRESULT IOverlay_GetWindowHandle(IOverlay* This,HWND *pHwnd) {
   6039     return This->lpVtbl->GetWindowHandle(This,pHwnd);
   6040 }
   6041 static FORCEINLINE HRESULT IOverlay_GetClipList(IOverlay* This,RECT *pSourceRect,RECT *pDestinationRect,RGNDATA **ppRgnData) {
   6042     return This->lpVtbl->GetClipList(This,pSourceRect,pDestinationRect,ppRgnData);
   6043 }
   6044 static FORCEINLINE HRESULT IOverlay_GetVideoPosition(IOverlay* This,RECT *pSourceRect,RECT *pDestinationRect) {
   6045     return This->lpVtbl->GetVideoPosition(This,pSourceRect,pDestinationRect);
   6046 }
   6047 static FORCEINLINE HRESULT IOverlay_Advise(IOverlay* This,IOverlayNotify *pOverlayNotify,DWORD dwInterests) {
   6048     return This->lpVtbl->Advise(This,pOverlayNotify,dwInterests);
   6049 }
   6050 static FORCEINLINE HRESULT IOverlay_Unadvise(IOverlay* This) {
   6051     return This->lpVtbl->Unadvise(This);
   6052 }
   6053 #endif
   6054 #endif
   6055 
   6056 #endif
   6057 
   6058 HRESULT STDMETHODCALLTYPE IOverlay_GetPalette_Proxy(
   6059     IOverlay* This,
   6060     DWORD *pdwColors,
   6061     PALETTEENTRY **ppPalette);
   6062 void __RPC_STUB IOverlay_GetPalette_Stub(
   6063     IRpcStubBuffer* This,
   6064     IRpcChannelBuffer* pRpcChannelBuffer,
   6065     PRPC_MESSAGE pRpcMessage,
   6066     DWORD* pdwStubPhase);
   6067 HRESULT STDMETHODCALLTYPE IOverlay_SetPalette_Proxy(
   6068     IOverlay* This,
   6069     DWORD dwColors,
   6070     PALETTEENTRY *pPalette);
   6071 void __RPC_STUB IOverlay_SetPalette_Stub(
   6072     IRpcStubBuffer* This,
   6073     IRpcChannelBuffer* pRpcChannelBuffer,
   6074     PRPC_MESSAGE pRpcMessage,
   6075     DWORD* pdwStubPhase);
   6076 HRESULT STDMETHODCALLTYPE IOverlay_GetDefaultColorKey_Proxy(
   6077     IOverlay* This,
   6078     COLORKEY *pColorKey);
   6079 void __RPC_STUB IOverlay_GetDefaultColorKey_Stub(
   6080     IRpcStubBuffer* This,
   6081     IRpcChannelBuffer* pRpcChannelBuffer,
   6082     PRPC_MESSAGE pRpcMessage,
   6083     DWORD* pdwStubPhase);
   6084 HRESULT STDMETHODCALLTYPE IOverlay_GetColorKey_Proxy(
   6085     IOverlay* This,
   6086     COLORKEY *pColorKey);
   6087 void __RPC_STUB IOverlay_GetColorKey_Stub(
   6088     IRpcStubBuffer* This,
   6089     IRpcChannelBuffer* pRpcChannelBuffer,
   6090     PRPC_MESSAGE pRpcMessage,
   6091     DWORD* pdwStubPhase);
   6092 HRESULT STDMETHODCALLTYPE IOverlay_SetColorKey_Proxy(
   6093     IOverlay* This,
   6094     COLORKEY *pColorKey);
   6095 void __RPC_STUB IOverlay_SetColorKey_Stub(
   6096     IRpcStubBuffer* This,
   6097     IRpcChannelBuffer* pRpcChannelBuffer,
   6098     PRPC_MESSAGE pRpcMessage,
   6099     DWORD* pdwStubPhase);
   6100 HRESULT STDMETHODCALLTYPE IOverlay_GetWindowHandle_Proxy(
   6101     IOverlay* This,
   6102     HWND *pHwnd);
   6103 void __RPC_STUB IOverlay_GetWindowHandle_Stub(
   6104     IRpcStubBuffer* This,
   6105     IRpcChannelBuffer* pRpcChannelBuffer,
   6106     PRPC_MESSAGE pRpcMessage,
   6107     DWORD* pdwStubPhase);
   6108 HRESULT STDMETHODCALLTYPE IOverlay_GetClipList_Proxy(
   6109     IOverlay* This,
   6110     RECT *pSourceRect,
   6111     RECT *pDestinationRect,
   6112     RGNDATA **ppRgnData);
   6113 void __RPC_STUB IOverlay_GetClipList_Stub(
   6114     IRpcStubBuffer* This,
   6115     IRpcChannelBuffer* pRpcChannelBuffer,
   6116     PRPC_MESSAGE pRpcMessage,
   6117     DWORD* pdwStubPhase);
   6118 HRESULT STDMETHODCALLTYPE IOverlay_GetVideoPosition_Proxy(
   6119     IOverlay* This,
   6120     RECT *pSourceRect,
   6121     RECT *pDestinationRect);
   6122 void __RPC_STUB IOverlay_GetVideoPosition_Stub(
   6123     IRpcStubBuffer* This,
   6124     IRpcChannelBuffer* pRpcChannelBuffer,
   6125     PRPC_MESSAGE pRpcMessage,
   6126     DWORD* pdwStubPhase);
   6127 HRESULT STDMETHODCALLTYPE IOverlay_Advise_Proxy(
   6128     IOverlay* This,
   6129     IOverlayNotify *pOverlayNotify,
   6130     DWORD dwInterests);
   6131 void __RPC_STUB IOverlay_Advise_Stub(
   6132     IRpcStubBuffer* This,
   6133     IRpcChannelBuffer* pRpcChannelBuffer,
   6134     PRPC_MESSAGE pRpcMessage,
   6135     DWORD* pdwStubPhase);
   6136 HRESULT STDMETHODCALLTYPE IOverlay_Unadvise_Proxy(
   6137     IOverlay* This);
   6138 void __RPC_STUB IOverlay_Unadvise_Stub(
   6139     IRpcStubBuffer* This,
   6140     IRpcChannelBuffer* pRpcChannelBuffer,
   6141     PRPC_MESSAGE pRpcMessage,
   6142     DWORD* pdwStubPhase);
   6143 
   6144 #endif  /* __IOverlay_INTERFACE_DEFINED__ */
   6145 
   6146 typedef IOverlay *POVERLAY;
   6147 /*****************************************************************************
   6148  * IMediaEventSink interface
   6149  */
   6150 #ifndef __IMediaEventSink_INTERFACE_DEFINED__
   6151 #define __IMediaEventSink_INTERFACE_DEFINED__
   6152 
   6153 DEFINE_GUID(IID_IMediaEventSink, 0x56a868a2, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   6154 #if defined(__cplusplus) && !defined(CINTERFACE)
   6155 MIDL_INTERFACE("56a868a2-0ad4-11ce-b03a-0020af0ba770")
   6156 IMediaEventSink : public IUnknown
   6157 {
   6158     virtual HRESULT STDMETHODCALLTYPE Notify(
   6159         LONG EventCode,
   6160         LONG_PTR EventParam1,
   6161         LONG_PTR EventParam2) = 0;
   6162 
   6163 };
   6164 #ifdef __CRT_UUID_DECL
   6165 __CRT_UUID_DECL(IMediaEventSink, 0x56a868a2, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   6166 #endif
   6167 #else
   6168 typedef struct IMediaEventSinkVtbl {
   6169     BEGIN_INTERFACE
   6170 
   6171     /*** IUnknown methods ***/
   6172     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6173         IMediaEventSink* This,
   6174         REFIID riid,
   6175         void **ppvObject);
   6176 
   6177     ULONG (STDMETHODCALLTYPE *AddRef)(
   6178         IMediaEventSink* This);
   6179 
   6180     ULONG (STDMETHODCALLTYPE *Release)(
   6181         IMediaEventSink* This);
   6182 
   6183     /*** IMediaEventSink methods ***/
   6184     HRESULT (STDMETHODCALLTYPE *Notify)(
   6185         IMediaEventSink* This,
   6186         LONG EventCode,
   6187         LONG_PTR EventParam1,
   6188         LONG_PTR EventParam2);
   6189 
   6190     END_INTERFACE
   6191 } IMediaEventSinkVtbl;
   6192 interface IMediaEventSink {
   6193     CONST_VTBL IMediaEventSinkVtbl* lpVtbl;
   6194 };
   6195 
   6196 #ifdef COBJMACROS
   6197 #ifndef WIDL_C_INLINE_WRAPPERS
   6198 /*** IUnknown methods ***/
   6199 #define IMediaEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6200 #define IMediaEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
   6201 #define IMediaEventSink_Release(This) (This)->lpVtbl->Release(This)
   6202 /*** IMediaEventSink methods ***/
   6203 #define IMediaEventSink_Notify(This,EventCode,EventParam1,EventParam2) (This)->lpVtbl->Notify(This,EventCode,EventParam1,EventParam2)
   6204 #else
   6205 /*** IUnknown methods ***/
   6206 static FORCEINLINE HRESULT IMediaEventSink_QueryInterface(IMediaEventSink* This,REFIID riid,void **ppvObject) {
   6207     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6208 }
   6209 static FORCEINLINE ULONG IMediaEventSink_AddRef(IMediaEventSink* This) {
   6210     return This->lpVtbl->AddRef(This);
   6211 }
   6212 static FORCEINLINE ULONG IMediaEventSink_Release(IMediaEventSink* This) {
   6213     return This->lpVtbl->Release(This);
   6214 }
   6215 /*** IMediaEventSink methods ***/
   6216 static FORCEINLINE HRESULT IMediaEventSink_Notify(IMediaEventSink* This,LONG EventCode,LONG_PTR EventParam1,LONG_PTR EventParam2) {
   6217     return This->lpVtbl->Notify(This,EventCode,EventParam1,EventParam2);
   6218 }
   6219 #endif
   6220 #endif
   6221 
   6222 #endif
   6223 
   6224 HRESULT STDMETHODCALLTYPE IMediaEventSink_Notify_Proxy(
   6225     IMediaEventSink* This,
   6226     LONG EventCode,
   6227     LONG_PTR EventParam1,
   6228     LONG_PTR EventParam2);
   6229 void __RPC_STUB IMediaEventSink_Notify_Stub(
   6230     IRpcStubBuffer* This,
   6231     IRpcChannelBuffer* pRpcChannelBuffer,
   6232     PRPC_MESSAGE pRpcMessage,
   6233     DWORD* pdwStubPhase);
   6234 
   6235 #endif  /* __IMediaEventSink_INTERFACE_DEFINED__ */
   6236 
   6237 typedef IMediaEventSink *PMEDIAEVENTSINK;
   6238 /*****************************************************************************
   6239  * IFileSourceFilter interface
   6240  */
   6241 #ifndef __IFileSourceFilter_INTERFACE_DEFINED__
   6242 #define __IFileSourceFilter_INTERFACE_DEFINED__
   6243 
   6244 DEFINE_GUID(IID_IFileSourceFilter, 0x56a868a6, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   6245 #if defined(__cplusplus) && !defined(CINTERFACE)
   6246 MIDL_INTERFACE("56a868a6-0ad4-11ce-b03a-0020af0ba770")
   6247 IFileSourceFilter : public IUnknown
   6248 {
   6249     virtual HRESULT STDMETHODCALLTYPE Load(
   6250         LPCOLESTR pszFileName,
   6251         const AM_MEDIA_TYPE *pmt) = 0;
   6252 
   6253     virtual HRESULT STDMETHODCALLTYPE GetCurFile(
   6254         LPOLESTR *ppszFileName,
   6255         AM_MEDIA_TYPE *pmt) = 0;
   6256 
   6257 };
   6258 #ifdef __CRT_UUID_DECL
   6259 __CRT_UUID_DECL(IFileSourceFilter, 0x56a868a6, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   6260 #endif
   6261 #else
   6262 typedef struct IFileSourceFilterVtbl {
   6263     BEGIN_INTERFACE
   6264 
   6265     /*** IUnknown methods ***/
   6266     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6267         IFileSourceFilter* This,
   6268         REFIID riid,
   6269         void **ppvObject);
   6270 
   6271     ULONG (STDMETHODCALLTYPE *AddRef)(
   6272         IFileSourceFilter* This);
   6273 
   6274     ULONG (STDMETHODCALLTYPE *Release)(
   6275         IFileSourceFilter* This);
   6276 
   6277     /*** IFileSourceFilter methods ***/
   6278     HRESULT (STDMETHODCALLTYPE *Load)(
   6279         IFileSourceFilter* This,
   6280         LPCOLESTR pszFileName,
   6281         const AM_MEDIA_TYPE *pmt);
   6282 
   6283     HRESULT (STDMETHODCALLTYPE *GetCurFile)(
   6284         IFileSourceFilter* This,
   6285         LPOLESTR *ppszFileName,
   6286         AM_MEDIA_TYPE *pmt);
   6287 
   6288     END_INTERFACE
   6289 } IFileSourceFilterVtbl;
   6290 interface IFileSourceFilter {
   6291     CONST_VTBL IFileSourceFilterVtbl* lpVtbl;
   6292 };
   6293 
   6294 #ifdef COBJMACROS
   6295 #ifndef WIDL_C_INLINE_WRAPPERS
   6296 /*** IUnknown methods ***/
   6297 #define IFileSourceFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6298 #define IFileSourceFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
   6299 #define IFileSourceFilter_Release(This) (This)->lpVtbl->Release(This)
   6300 /*** IFileSourceFilter methods ***/
   6301 #define IFileSourceFilter_Load(This,pszFileName,pmt) (This)->lpVtbl->Load(This,pszFileName,pmt)
   6302 #define IFileSourceFilter_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
   6303 #else
   6304 /*** IUnknown methods ***/
   6305 static FORCEINLINE HRESULT IFileSourceFilter_QueryInterface(IFileSourceFilter* This,REFIID riid,void **ppvObject) {
   6306     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6307 }
   6308 static FORCEINLINE ULONG IFileSourceFilter_AddRef(IFileSourceFilter* This) {
   6309     return This->lpVtbl->AddRef(This);
   6310 }
   6311 static FORCEINLINE ULONG IFileSourceFilter_Release(IFileSourceFilter* This) {
   6312     return This->lpVtbl->Release(This);
   6313 }
   6314 /*** IFileSourceFilter methods ***/
   6315 static FORCEINLINE HRESULT IFileSourceFilter_Load(IFileSourceFilter* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
   6316     return This->lpVtbl->Load(This,pszFileName,pmt);
   6317 }
   6318 static FORCEINLINE HRESULT IFileSourceFilter_GetCurFile(IFileSourceFilter* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) {
   6319     return This->lpVtbl->GetCurFile(This,ppszFileName,pmt);
   6320 }
   6321 #endif
   6322 #endif
   6323 
   6324 #endif
   6325 
   6326 HRESULT STDMETHODCALLTYPE IFileSourceFilter_Load_Proxy(
   6327     IFileSourceFilter* This,
   6328     LPCOLESTR pszFileName,
   6329     const AM_MEDIA_TYPE *pmt);
   6330 void __RPC_STUB IFileSourceFilter_Load_Stub(
   6331     IRpcStubBuffer* This,
   6332     IRpcChannelBuffer* pRpcChannelBuffer,
   6333     PRPC_MESSAGE pRpcMessage,
   6334     DWORD* pdwStubPhase);
   6335 HRESULT STDMETHODCALLTYPE IFileSourceFilter_GetCurFile_Proxy(
   6336     IFileSourceFilter* This,
   6337     LPOLESTR *ppszFileName,
   6338     AM_MEDIA_TYPE *pmt);
   6339 void __RPC_STUB IFileSourceFilter_GetCurFile_Stub(
   6340     IRpcStubBuffer* This,
   6341     IRpcChannelBuffer* pRpcChannelBuffer,
   6342     PRPC_MESSAGE pRpcMessage,
   6343     DWORD* pdwStubPhase);
   6344 
   6345 #endif  /* __IFileSourceFilter_INTERFACE_DEFINED__ */
   6346 
   6347 typedef IFileSourceFilter *PFILTERFILESOURCE;
   6348 /*****************************************************************************
   6349  * IFileSinkFilter interface
   6350  */
   6351 #ifndef __IFileSinkFilter_INTERFACE_DEFINED__
   6352 #define __IFileSinkFilter_INTERFACE_DEFINED__
   6353 
   6354 DEFINE_GUID(IID_IFileSinkFilter, 0xa2104830, 0x7c70, 0x11cf, 0x8b,0xce, 0x00,0xaa,0x00,0xa3,0xf1,0xa6);
   6355 #if defined(__cplusplus) && !defined(CINTERFACE)
   6356 MIDL_INTERFACE("a2104830-7c70-11cf-8bce-00aa00a3f1a6")
   6357 IFileSinkFilter : public IUnknown
   6358 {
   6359     virtual HRESULT STDMETHODCALLTYPE SetFileName(
   6360         LPCOLESTR pszFileName,
   6361         const AM_MEDIA_TYPE *pmt) = 0;
   6362 
   6363     virtual HRESULT STDMETHODCALLTYPE GetCurFile(
   6364         LPOLESTR *ppszFileName,
   6365         AM_MEDIA_TYPE *pmt) = 0;
   6366 
   6367 };
   6368 #ifdef __CRT_UUID_DECL
   6369 __CRT_UUID_DECL(IFileSinkFilter, 0xa2104830, 0x7c70, 0x11cf, 0x8b,0xce, 0x00,0xaa,0x00,0xa3,0xf1,0xa6)
   6370 #endif
   6371 #else
   6372 typedef struct IFileSinkFilterVtbl {
   6373     BEGIN_INTERFACE
   6374 
   6375     /*** IUnknown methods ***/
   6376     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6377         IFileSinkFilter* This,
   6378         REFIID riid,
   6379         void **ppvObject);
   6380 
   6381     ULONG (STDMETHODCALLTYPE *AddRef)(
   6382         IFileSinkFilter* This);
   6383 
   6384     ULONG (STDMETHODCALLTYPE *Release)(
   6385         IFileSinkFilter* This);
   6386 
   6387     /*** IFileSinkFilter methods ***/
   6388     HRESULT (STDMETHODCALLTYPE *SetFileName)(
   6389         IFileSinkFilter* This,
   6390         LPCOLESTR pszFileName,
   6391         const AM_MEDIA_TYPE *pmt);
   6392 
   6393     HRESULT (STDMETHODCALLTYPE *GetCurFile)(
   6394         IFileSinkFilter* This,
   6395         LPOLESTR *ppszFileName,
   6396         AM_MEDIA_TYPE *pmt);
   6397 
   6398     END_INTERFACE
   6399 } IFileSinkFilterVtbl;
   6400 interface IFileSinkFilter {
   6401     CONST_VTBL IFileSinkFilterVtbl* lpVtbl;
   6402 };
   6403 
   6404 #ifdef COBJMACROS
   6405 #ifndef WIDL_C_INLINE_WRAPPERS
   6406 /*** IUnknown methods ***/
   6407 #define IFileSinkFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6408 #define IFileSinkFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
   6409 #define IFileSinkFilter_Release(This) (This)->lpVtbl->Release(This)
   6410 /*** IFileSinkFilter methods ***/
   6411 #define IFileSinkFilter_SetFileName(This,pszFileName,pmt) (This)->lpVtbl->SetFileName(This,pszFileName,pmt)
   6412 #define IFileSinkFilter_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
   6413 #else
   6414 /*** IUnknown methods ***/
   6415 static FORCEINLINE HRESULT IFileSinkFilter_QueryInterface(IFileSinkFilter* This,REFIID riid,void **ppvObject) {
   6416     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6417 }
   6418 static FORCEINLINE ULONG IFileSinkFilter_AddRef(IFileSinkFilter* This) {
   6419     return This->lpVtbl->AddRef(This);
   6420 }
   6421 static FORCEINLINE ULONG IFileSinkFilter_Release(IFileSinkFilter* This) {
   6422     return This->lpVtbl->Release(This);
   6423 }
   6424 /*** IFileSinkFilter methods ***/
   6425 static FORCEINLINE HRESULT IFileSinkFilter_SetFileName(IFileSinkFilter* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
   6426     return This->lpVtbl->SetFileName(This,pszFileName,pmt);
   6427 }
   6428 static FORCEINLINE HRESULT IFileSinkFilter_GetCurFile(IFileSinkFilter* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) {
   6429     return This->lpVtbl->GetCurFile(This,ppszFileName,pmt);
   6430 }
   6431 #endif
   6432 #endif
   6433 
   6434 #endif
   6435 
   6436 HRESULT STDMETHODCALLTYPE IFileSinkFilter_SetFileName_Proxy(
   6437     IFileSinkFilter* This,
   6438     LPCOLESTR pszFileName,
   6439     const AM_MEDIA_TYPE *pmt);
   6440 void __RPC_STUB IFileSinkFilter_SetFileName_Stub(
   6441     IRpcStubBuffer* This,
   6442     IRpcChannelBuffer* pRpcChannelBuffer,
   6443     PRPC_MESSAGE pRpcMessage,
   6444     DWORD* pdwStubPhase);
   6445 HRESULT STDMETHODCALLTYPE IFileSinkFilter_GetCurFile_Proxy(
   6446     IFileSinkFilter* This,
   6447     LPOLESTR *ppszFileName,
   6448     AM_MEDIA_TYPE *pmt);
   6449 void __RPC_STUB IFileSinkFilter_GetCurFile_Stub(
   6450     IRpcStubBuffer* This,
   6451     IRpcChannelBuffer* pRpcChannelBuffer,
   6452     PRPC_MESSAGE pRpcMessage,
   6453     DWORD* pdwStubPhase);
   6454 
   6455 #endif  /* __IFileSinkFilter_INTERFACE_DEFINED__ */
   6456 
   6457 typedef IFileSinkFilter *PFILTERFILESINK;
   6458 /*****************************************************************************
   6459  * IFileSinkFilter2 interface
   6460  */
   6461 #ifndef __IFileSinkFilter2_INTERFACE_DEFINED__
   6462 #define __IFileSinkFilter2_INTERFACE_DEFINED__
   6463 
   6464 DEFINE_GUID(IID_IFileSinkFilter2, 0x00855b90, 0xce1b, 0x11d0, 0xbd,0x4f, 0x00,0xa0,0xc9,0x11,0xce,0x86);
   6465 #if defined(__cplusplus) && !defined(CINTERFACE)
   6466 MIDL_INTERFACE("00855b90-ce1b-11d0-bd4f-00a0c911ce86")
   6467 IFileSinkFilter2 : public IFileSinkFilter
   6468 {
   6469     virtual HRESULT STDMETHODCALLTYPE SetMode(
   6470         DWORD dwFlags) = 0;
   6471 
   6472     virtual HRESULT STDMETHODCALLTYPE GetMode(
   6473         DWORD *pdwFlags) = 0;
   6474 
   6475 };
   6476 #ifdef __CRT_UUID_DECL
   6477 __CRT_UUID_DECL(IFileSinkFilter2, 0x00855b90, 0xce1b, 0x11d0, 0xbd,0x4f, 0x00,0xa0,0xc9,0x11,0xce,0x86)
   6478 #endif
   6479 #else
   6480 typedef struct IFileSinkFilter2Vtbl {
   6481     BEGIN_INTERFACE
   6482 
   6483     /*** IUnknown methods ***/
   6484     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6485         IFileSinkFilter2* This,
   6486         REFIID riid,
   6487         void **ppvObject);
   6488 
   6489     ULONG (STDMETHODCALLTYPE *AddRef)(
   6490         IFileSinkFilter2* This);
   6491 
   6492     ULONG (STDMETHODCALLTYPE *Release)(
   6493         IFileSinkFilter2* This);
   6494 
   6495     /*** IFileSinkFilter methods ***/
   6496     HRESULT (STDMETHODCALLTYPE *SetFileName)(
   6497         IFileSinkFilter2* This,
   6498         LPCOLESTR pszFileName,
   6499         const AM_MEDIA_TYPE *pmt);
   6500 
   6501     HRESULT (STDMETHODCALLTYPE *GetCurFile)(
   6502         IFileSinkFilter2* This,
   6503         LPOLESTR *ppszFileName,
   6504         AM_MEDIA_TYPE *pmt);
   6505 
   6506     /*** IFileSinkFilter2 methods ***/
   6507     HRESULT (STDMETHODCALLTYPE *SetMode)(
   6508         IFileSinkFilter2* This,
   6509         DWORD dwFlags);
   6510 
   6511     HRESULT (STDMETHODCALLTYPE *GetMode)(
   6512         IFileSinkFilter2* This,
   6513         DWORD *pdwFlags);
   6514 
   6515     END_INTERFACE
   6516 } IFileSinkFilter2Vtbl;
   6517 interface IFileSinkFilter2 {
   6518     CONST_VTBL IFileSinkFilter2Vtbl* lpVtbl;
   6519 };
   6520 
   6521 #ifdef COBJMACROS
   6522 #ifndef WIDL_C_INLINE_WRAPPERS
   6523 /*** IUnknown methods ***/
   6524 #define IFileSinkFilter2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6525 #define IFileSinkFilter2_AddRef(This) (This)->lpVtbl->AddRef(This)
   6526 #define IFileSinkFilter2_Release(This) (This)->lpVtbl->Release(This)
   6527 /*** IFileSinkFilter methods ***/
   6528 #define IFileSinkFilter2_SetFileName(This,pszFileName,pmt) (This)->lpVtbl->SetFileName(This,pszFileName,pmt)
   6529 #define IFileSinkFilter2_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
   6530 /*** IFileSinkFilter2 methods ***/
   6531 #define IFileSinkFilter2_SetMode(This,dwFlags) (This)->lpVtbl->SetMode(This,dwFlags)
   6532 #define IFileSinkFilter2_GetMode(This,pdwFlags) (This)->lpVtbl->GetMode(This,pdwFlags)
   6533 #else
   6534 /*** IUnknown methods ***/
   6535 static FORCEINLINE HRESULT IFileSinkFilter2_QueryInterface(IFileSinkFilter2* This,REFIID riid,void **ppvObject) {
   6536     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6537 }
   6538 static FORCEINLINE ULONG IFileSinkFilter2_AddRef(IFileSinkFilter2* This) {
   6539     return This->lpVtbl->AddRef(This);
   6540 }
   6541 static FORCEINLINE ULONG IFileSinkFilter2_Release(IFileSinkFilter2* This) {
   6542     return This->lpVtbl->Release(This);
   6543 }
   6544 /*** IFileSinkFilter methods ***/
   6545 static FORCEINLINE HRESULT IFileSinkFilter2_SetFileName(IFileSinkFilter2* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
   6546     return This->lpVtbl->SetFileName(This,pszFileName,pmt);
   6547 }
   6548 static FORCEINLINE HRESULT IFileSinkFilter2_GetCurFile(IFileSinkFilter2* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) {
   6549     return This->lpVtbl->GetCurFile(This,ppszFileName,pmt);
   6550 }
   6551 /*** IFileSinkFilter2 methods ***/
   6552 static FORCEINLINE HRESULT IFileSinkFilter2_SetMode(IFileSinkFilter2* This,DWORD dwFlags) {
   6553     return This->lpVtbl->SetMode(This,dwFlags);
   6554 }
   6555 static FORCEINLINE HRESULT IFileSinkFilter2_GetMode(IFileSinkFilter2* This,DWORD *pdwFlags) {
   6556     return This->lpVtbl->GetMode(This,pdwFlags);
   6557 }
   6558 #endif
   6559 #endif
   6560 
   6561 #endif
   6562 
   6563 HRESULT STDMETHODCALLTYPE IFileSinkFilter2_SetMode_Proxy(
   6564     IFileSinkFilter2* This,
   6565     DWORD dwFlags);
   6566 void __RPC_STUB IFileSinkFilter2_SetMode_Stub(
   6567     IRpcStubBuffer* This,
   6568     IRpcChannelBuffer* pRpcChannelBuffer,
   6569     PRPC_MESSAGE pRpcMessage,
   6570     DWORD* pdwStubPhase);
   6571 HRESULT STDMETHODCALLTYPE IFileSinkFilter2_GetMode_Proxy(
   6572     IFileSinkFilter2* This,
   6573     DWORD *pdwFlags);
   6574 void __RPC_STUB IFileSinkFilter2_GetMode_Stub(
   6575     IRpcStubBuffer* This,
   6576     IRpcChannelBuffer* pRpcChannelBuffer,
   6577     PRPC_MESSAGE pRpcMessage,
   6578     DWORD* pdwStubPhase);
   6579 
   6580 #endif  /* __IFileSinkFilter2_INTERFACE_DEFINED__ */
   6581 
   6582 typedef IFileSinkFilter2 *PFILESINKFILTER2;
   6583 typedef enum __WIDL_strmif_generated_name_00000008 {
   6584     AM_FILE_OVERWRITE = 0x1
   6585 } AM_FILESINK_FLAGS;
   6586 /*****************************************************************************
   6587  * IGraphBuilder interface
   6588  */
   6589 #ifndef __IGraphBuilder_INTERFACE_DEFINED__
   6590 #define __IGraphBuilder_INTERFACE_DEFINED__
   6591 
   6592 DEFINE_GUID(IID_IGraphBuilder, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   6593 #if defined(__cplusplus) && !defined(CINTERFACE)
   6594 MIDL_INTERFACE("56a868a9-0ad4-11ce-b03a-0020af0ba770")
   6595 IGraphBuilder : public IFilterGraph
   6596 {
   6597     virtual HRESULT STDMETHODCALLTYPE Connect(
   6598         IPin *ppinOut,
   6599         IPin *ppinIn) = 0;
   6600 
   6601     virtual HRESULT STDMETHODCALLTYPE Render(
   6602         IPin *ppinOut) = 0;
   6603 
   6604     virtual HRESULT STDMETHODCALLTYPE RenderFile(
   6605         LPCWSTR lpcwstrFile,
   6606         LPCWSTR lpcwstrPlayList) = 0;
   6607 
   6608     virtual HRESULT STDMETHODCALLTYPE AddSourceFilter(
   6609         LPCWSTR lpcwstrFileName,
   6610         LPCWSTR lpcwstrFilterName,
   6611         IBaseFilter **ppFilter) = 0;
   6612 
   6613     virtual HRESULT STDMETHODCALLTYPE SetLogFile(
   6614         DWORD_PTR hFile) = 0;
   6615 
   6616     virtual HRESULT STDMETHODCALLTYPE Abort(
   6617         ) = 0;
   6618 
   6619     virtual HRESULT STDMETHODCALLTYPE ShouldOperationContinue(
   6620         ) = 0;
   6621 
   6622 };
   6623 #ifdef __CRT_UUID_DECL
   6624 __CRT_UUID_DECL(IGraphBuilder, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   6625 #endif
   6626 #else
   6627 typedef struct IGraphBuilderVtbl {
   6628     BEGIN_INTERFACE
   6629 
   6630     /*** IUnknown methods ***/
   6631     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6632         IGraphBuilder* This,
   6633         REFIID riid,
   6634         void **ppvObject);
   6635 
   6636     ULONG (STDMETHODCALLTYPE *AddRef)(
   6637         IGraphBuilder* This);
   6638 
   6639     ULONG (STDMETHODCALLTYPE *Release)(
   6640         IGraphBuilder* This);
   6641 
   6642     /*** IFilterGraph methods ***/
   6643     HRESULT (STDMETHODCALLTYPE *AddFilter)(
   6644         IGraphBuilder* This,
   6645         IBaseFilter *pFilter,
   6646         LPCWSTR pName);
   6647 
   6648     HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
   6649         IGraphBuilder* This,
   6650         IBaseFilter *pFilter);
   6651 
   6652     HRESULT (STDMETHODCALLTYPE *EnumFilters)(
   6653         IGraphBuilder* This,
   6654         IEnumFilters **ppEnum);
   6655 
   6656     HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
   6657         IGraphBuilder* This,
   6658         LPCWSTR pName,
   6659         IBaseFilter **ppFilter);
   6660 
   6661     HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
   6662         IGraphBuilder* This,
   6663         IPin *ppinOut,
   6664         IPin *ppinIn,
   6665         const AM_MEDIA_TYPE *pmt);
   6666 
   6667     HRESULT (STDMETHODCALLTYPE *Reconnect)(
   6668         IGraphBuilder* This,
   6669         IPin *ppin);
   6670 
   6671     HRESULT (STDMETHODCALLTYPE *Disconnect)(
   6672         IGraphBuilder* This,
   6673         IPin *ppin);
   6674 
   6675     HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
   6676         IGraphBuilder* This);
   6677 
   6678     /*** IGraphBuilder methods ***/
   6679     HRESULT (STDMETHODCALLTYPE *Connect)(
   6680         IGraphBuilder* This,
   6681         IPin *ppinOut,
   6682         IPin *ppinIn);
   6683 
   6684     HRESULT (STDMETHODCALLTYPE *Render)(
   6685         IGraphBuilder* This,
   6686         IPin *ppinOut);
   6687 
   6688     HRESULT (STDMETHODCALLTYPE *RenderFile)(
   6689         IGraphBuilder* This,
   6690         LPCWSTR lpcwstrFile,
   6691         LPCWSTR lpcwstrPlayList);
   6692 
   6693     HRESULT (STDMETHODCALLTYPE *AddSourceFilter)(
   6694         IGraphBuilder* This,
   6695         LPCWSTR lpcwstrFileName,
   6696         LPCWSTR lpcwstrFilterName,
   6697         IBaseFilter **ppFilter);
   6698 
   6699     HRESULT (STDMETHODCALLTYPE *SetLogFile)(
   6700         IGraphBuilder* This,
   6701         DWORD_PTR hFile);
   6702 
   6703     HRESULT (STDMETHODCALLTYPE *Abort)(
   6704         IGraphBuilder* This);
   6705 
   6706     HRESULT (STDMETHODCALLTYPE *ShouldOperationContinue)(
   6707         IGraphBuilder* This);
   6708 
   6709     END_INTERFACE
   6710 } IGraphBuilderVtbl;
   6711 interface IGraphBuilder {
   6712     CONST_VTBL IGraphBuilderVtbl* lpVtbl;
   6713 };
   6714 
   6715 #ifdef COBJMACROS
   6716 #ifndef WIDL_C_INLINE_WRAPPERS
   6717 /*** IUnknown methods ***/
   6718 #define IGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6719 #define IGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
   6720 #define IGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
   6721 /*** IFilterGraph methods ***/
   6722 #define IGraphBuilder_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
   6723 #define IGraphBuilder_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
   6724 #define IGraphBuilder_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
   6725 #define IGraphBuilder_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
   6726 #define IGraphBuilder_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
   6727 #define IGraphBuilder_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
   6728 #define IGraphBuilder_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
   6729 #define IGraphBuilder_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
   6730 /*** IGraphBuilder methods ***/
   6731 #define IGraphBuilder_Connect(This,ppinOut,ppinIn) (This)->lpVtbl->Connect(This,ppinOut,ppinIn)
   6732 #define IGraphBuilder_Render(This,ppinOut) (This)->lpVtbl->Render(This,ppinOut)
   6733 #define IGraphBuilder_RenderFile(This,lpcwstrFile,lpcwstrPlayList) (This)->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList)
   6734 #define IGraphBuilder_AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter)
   6735 #define IGraphBuilder_SetLogFile(This,hFile) (This)->lpVtbl->SetLogFile(This,hFile)
   6736 #define IGraphBuilder_Abort(This) (This)->lpVtbl->Abort(This)
   6737 #define IGraphBuilder_ShouldOperationContinue(This) (This)->lpVtbl->ShouldOperationContinue(This)
   6738 #else
   6739 /*** IUnknown methods ***/
   6740 static FORCEINLINE HRESULT IGraphBuilder_QueryInterface(IGraphBuilder* This,REFIID riid,void **ppvObject) {
   6741     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6742 }
   6743 static FORCEINLINE ULONG IGraphBuilder_AddRef(IGraphBuilder* This) {
   6744     return This->lpVtbl->AddRef(This);
   6745 }
   6746 static FORCEINLINE ULONG IGraphBuilder_Release(IGraphBuilder* This) {
   6747     return This->lpVtbl->Release(This);
   6748 }
   6749 /*** IFilterGraph methods ***/
   6750 static FORCEINLINE HRESULT IGraphBuilder_AddFilter(IGraphBuilder* This,IBaseFilter *pFilter,LPCWSTR pName) {
   6751     return This->lpVtbl->AddFilter(This,pFilter,pName);
   6752 }
   6753 static FORCEINLINE HRESULT IGraphBuilder_RemoveFilter(IGraphBuilder* This,IBaseFilter *pFilter) {
   6754     return This->lpVtbl->RemoveFilter(This,pFilter);
   6755 }
   6756 static FORCEINLINE HRESULT IGraphBuilder_EnumFilters(IGraphBuilder* This,IEnumFilters **ppEnum) {
   6757     return This->lpVtbl->EnumFilters(This,ppEnum);
   6758 }
   6759 static FORCEINLINE HRESULT IGraphBuilder_FindFilterByName(IGraphBuilder* This,LPCWSTR pName,IBaseFilter **ppFilter) {
   6760     return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
   6761 }
   6762 static FORCEINLINE HRESULT IGraphBuilder_ConnectDirect(IGraphBuilder* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) {
   6763     return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt);
   6764 }
   6765 static FORCEINLINE HRESULT IGraphBuilder_Reconnect(IGraphBuilder* This,IPin *ppin) {
   6766     return This->lpVtbl->Reconnect(This,ppin);
   6767 }
   6768 static FORCEINLINE HRESULT IGraphBuilder_Disconnect(IGraphBuilder* This,IPin *ppin) {
   6769     return This->lpVtbl->Disconnect(This,ppin);
   6770 }
   6771 static FORCEINLINE HRESULT IGraphBuilder_SetDefaultSyncSource(IGraphBuilder* This) {
   6772     return This->lpVtbl->SetDefaultSyncSource(This);
   6773 }
   6774 /*** IGraphBuilder methods ***/
   6775 static FORCEINLINE HRESULT IGraphBuilder_Connect(IGraphBuilder* This,IPin *ppinOut,IPin *ppinIn) {
   6776     return This->lpVtbl->Connect(This,ppinOut,ppinIn);
   6777 }
   6778 static FORCEINLINE HRESULT IGraphBuilder_Render(IGraphBuilder* This,IPin *ppinOut) {
   6779     return This->lpVtbl->Render(This,ppinOut);
   6780 }
   6781 static FORCEINLINE HRESULT IGraphBuilder_RenderFile(IGraphBuilder* This,LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList) {
   6782     return This->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList);
   6783 }
   6784 static FORCEINLINE HRESULT IGraphBuilder_AddSourceFilter(IGraphBuilder* This,LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) {
   6785     return This->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter);
   6786 }
   6787 static FORCEINLINE HRESULT IGraphBuilder_SetLogFile(IGraphBuilder* This,DWORD_PTR hFile) {
   6788     return This->lpVtbl->SetLogFile(This,hFile);
   6789 }
   6790 static FORCEINLINE HRESULT IGraphBuilder_Abort(IGraphBuilder* This) {
   6791     return This->lpVtbl->Abort(This);
   6792 }
   6793 static FORCEINLINE HRESULT IGraphBuilder_ShouldOperationContinue(IGraphBuilder* This) {
   6794     return This->lpVtbl->ShouldOperationContinue(This);
   6795 }
   6796 #endif
   6797 #endif
   6798 
   6799 #endif
   6800 
   6801 HRESULT STDMETHODCALLTYPE IGraphBuilder_Connect_Proxy(
   6802     IGraphBuilder* This,
   6803     IPin *ppinOut,
   6804     IPin *ppinIn);
   6805 void __RPC_STUB IGraphBuilder_Connect_Stub(
   6806     IRpcStubBuffer* This,
   6807     IRpcChannelBuffer* pRpcChannelBuffer,
   6808     PRPC_MESSAGE pRpcMessage,
   6809     DWORD* pdwStubPhase);
   6810 HRESULT STDMETHODCALLTYPE IGraphBuilder_Render_Proxy(
   6811     IGraphBuilder* This,
   6812     IPin *ppinOut);
   6813 void __RPC_STUB IGraphBuilder_Render_Stub(
   6814     IRpcStubBuffer* This,
   6815     IRpcChannelBuffer* pRpcChannelBuffer,
   6816     PRPC_MESSAGE pRpcMessage,
   6817     DWORD* pdwStubPhase);
   6818 HRESULT STDMETHODCALLTYPE IGraphBuilder_RenderFile_Proxy(
   6819     IGraphBuilder* This,
   6820     LPCWSTR lpcwstrFile,
   6821     LPCWSTR lpcwstrPlayList);
   6822 void __RPC_STUB IGraphBuilder_RenderFile_Stub(
   6823     IRpcStubBuffer* This,
   6824     IRpcChannelBuffer* pRpcChannelBuffer,
   6825     PRPC_MESSAGE pRpcMessage,
   6826     DWORD* pdwStubPhase);
   6827 HRESULT STDMETHODCALLTYPE IGraphBuilder_AddSourceFilter_Proxy(
   6828     IGraphBuilder* This,
   6829     LPCWSTR lpcwstrFileName,
   6830     LPCWSTR lpcwstrFilterName,
   6831     IBaseFilter **ppFilter);
   6832 void __RPC_STUB IGraphBuilder_AddSourceFilter_Stub(
   6833     IRpcStubBuffer* This,
   6834     IRpcChannelBuffer* pRpcChannelBuffer,
   6835     PRPC_MESSAGE pRpcMessage,
   6836     DWORD* pdwStubPhase);
   6837 HRESULT STDMETHODCALLTYPE IGraphBuilder_SetLogFile_Proxy(
   6838     IGraphBuilder* This,
   6839     DWORD_PTR hFile);
   6840 void __RPC_STUB IGraphBuilder_SetLogFile_Stub(
   6841     IRpcStubBuffer* This,
   6842     IRpcChannelBuffer* pRpcChannelBuffer,
   6843     PRPC_MESSAGE pRpcMessage,
   6844     DWORD* pdwStubPhase);
   6845 HRESULT STDMETHODCALLTYPE IGraphBuilder_Abort_Proxy(
   6846     IGraphBuilder* This);
   6847 void __RPC_STUB IGraphBuilder_Abort_Stub(
   6848     IRpcStubBuffer* This,
   6849     IRpcChannelBuffer* pRpcChannelBuffer,
   6850     PRPC_MESSAGE pRpcMessage,
   6851     DWORD* pdwStubPhase);
   6852 HRESULT STDMETHODCALLTYPE IGraphBuilder_ShouldOperationContinue_Proxy(
   6853     IGraphBuilder* This);
   6854 void __RPC_STUB IGraphBuilder_ShouldOperationContinue_Stub(
   6855     IRpcStubBuffer* This,
   6856     IRpcChannelBuffer* pRpcChannelBuffer,
   6857     PRPC_MESSAGE pRpcMessage,
   6858     DWORD* pdwStubPhase);
   6859 
   6860 #endif  /* __IGraphBuilder_INTERFACE_DEFINED__ */
   6861 
   6862 /*****************************************************************************
   6863  * ICaptureGraphBuilder interface
   6864  */
   6865 #ifndef __ICaptureGraphBuilder_INTERFACE_DEFINED__
   6866 #define __ICaptureGraphBuilder_INTERFACE_DEFINED__
   6867 
   6868 DEFINE_GUID(IID_ICaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
   6869 #if defined(__cplusplus) && !defined(CINTERFACE)
   6870 MIDL_INTERFACE("bf87b6e0-8c27-11d0-b3f0-00aa003761c5")
   6871 ICaptureGraphBuilder : public IUnknown
   6872 {
   6873     virtual HRESULT STDMETHODCALLTYPE SetFiltergraph(
   6874         IGraphBuilder *pfg) = 0;
   6875 
   6876     virtual HRESULT STDMETHODCALLTYPE GetFiltergraph(
   6877         IGraphBuilder **ppfg) = 0;
   6878 
   6879     virtual HRESULT STDMETHODCALLTYPE SetOutputFileName(
   6880         const GUID *pType,
   6881         LPCOLESTR lpstrFile,
   6882         IBaseFilter **ppf,
   6883         IFileSinkFilter **ppSink) = 0;
   6884 
   6885     virtual HRESULT STDMETHODCALLTYPE FindInterface(
   6886         const GUID *pCategory,
   6887         IBaseFilter *pf,
   6888         REFIID riid,
   6889         void **ppint) = 0;
   6890 
   6891     virtual HRESULT STDMETHODCALLTYPE RenderStream(
   6892         const GUID *pCategory,
   6893         IUnknown *pSource,
   6894         IBaseFilter *pfCompressor,
   6895         IBaseFilter *pfRenderer) = 0;
   6896 
   6897     virtual HRESULT STDMETHODCALLTYPE ControlStream(
   6898         const GUID *pCategory,
   6899         IBaseFilter *pFilter,
   6900         REFERENCE_TIME *pstart,
   6901         REFERENCE_TIME *pstop,
   6902         WORD wStartCookie,
   6903         WORD wStopCookie) = 0;
   6904 
   6905     virtual HRESULT STDMETHODCALLTYPE AllocCapFile(
   6906         LPCOLESTR lpstr,
   6907         DWORDLONG dwlSize) = 0;
   6908 
   6909     virtual HRESULT STDMETHODCALLTYPE CopyCaptureFile(
   6910         LPOLESTR lpwstrOld,
   6911         LPOLESTR lpwstrNew,
   6912         int fAllowEscAbort,
   6913         IAMCopyCaptureFileProgress *pCallback) = 0;
   6914 
   6915 };
   6916 #ifdef __CRT_UUID_DECL
   6917 __CRT_UUID_DECL(ICaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5)
   6918 #endif
   6919 #else
   6920 typedef struct ICaptureGraphBuilderVtbl {
   6921     BEGIN_INTERFACE
   6922 
   6923     /*** IUnknown methods ***/
   6924     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6925         ICaptureGraphBuilder* This,
   6926         REFIID riid,
   6927         void **ppvObject);
   6928 
   6929     ULONG (STDMETHODCALLTYPE *AddRef)(
   6930         ICaptureGraphBuilder* This);
   6931 
   6932     ULONG (STDMETHODCALLTYPE *Release)(
   6933         ICaptureGraphBuilder* This);
   6934 
   6935     /*** ICaptureGraphBuilder methods ***/
   6936     HRESULT (STDMETHODCALLTYPE *SetFiltergraph)(
   6937         ICaptureGraphBuilder* This,
   6938         IGraphBuilder *pfg);
   6939 
   6940     HRESULT (STDMETHODCALLTYPE *GetFiltergraph)(
   6941         ICaptureGraphBuilder* This,
   6942         IGraphBuilder **ppfg);
   6943 
   6944     HRESULT (STDMETHODCALLTYPE *SetOutputFileName)(
   6945         ICaptureGraphBuilder* This,
   6946         const GUID *pType,
   6947         LPCOLESTR lpstrFile,
   6948         IBaseFilter **ppf,
   6949         IFileSinkFilter **ppSink);
   6950 
   6951     HRESULT (STDMETHODCALLTYPE *FindInterface)(
   6952         ICaptureGraphBuilder* This,
   6953         const GUID *pCategory,
   6954         IBaseFilter *pf,
   6955         REFIID riid,
   6956         void **ppint);
   6957 
   6958     HRESULT (STDMETHODCALLTYPE *RenderStream)(
   6959         ICaptureGraphBuilder* This,
   6960         const GUID *pCategory,
   6961         IUnknown *pSource,
   6962         IBaseFilter *pfCompressor,
   6963         IBaseFilter *pfRenderer);
   6964 
   6965     HRESULT (STDMETHODCALLTYPE *ControlStream)(
   6966         ICaptureGraphBuilder* This,
   6967         const GUID *pCategory,
   6968         IBaseFilter *pFilter,
   6969         REFERENCE_TIME *pstart,
   6970         REFERENCE_TIME *pstop,
   6971         WORD wStartCookie,
   6972         WORD wStopCookie);
   6973 
   6974     HRESULT (STDMETHODCALLTYPE *AllocCapFile)(
   6975         ICaptureGraphBuilder* This,
   6976         LPCOLESTR lpstr,
   6977         DWORDLONG dwlSize);
   6978 
   6979     HRESULT (STDMETHODCALLTYPE *CopyCaptureFile)(
   6980         ICaptureGraphBuilder* This,
   6981         LPOLESTR lpwstrOld,
   6982         LPOLESTR lpwstrNew,
   6983         int fAllowEscAbort,
   6984         IAMCopyCaptureFileProgress *pCallback);
   6985 
   6986     END_INTERFACE
   6987 } ICaptureGraphBuilderVtbl;
   6988 interface ICaptureGraphBuilder {
   6989     CONST_VTBL ICaptureGraphBuilderVtbl* lpVtbl;
   6990 };
   6991 
   6992 #ifdef COBJMACROS
   6993 #ifndef WIDL_C_INLINE_WRAPPERS
   6994 /*** IUnknown methods ***/
   6995 #define ICaptureGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6996 #define ICaptureGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
   6997 #define ICaptureGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
   6998 /*** ICaptureGraphBuilder methods ***/
   6999 #define ICaptureGraphBuilder_SetFiltergraph(This,pfg) (This)->lpVtbl->SetFiltergraph(This,pfg)
   7000 #define ICaptureGraphBuilder_GetFiltergraph(This,ppfg) (This)->lpVtbl->GetFiltergraph(This,ppfg)
   7001 #define ICaptureGraphBuilder_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink) (This)->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)
   7002 #define ICaptureGraphBuilder_FindInterface(This,pCategory,pf,riid,ppint) (This)->lpVtbl->FindInterface(This,pCategory,pf,riid,ppint)
   7003 #define ICaptureGraphBuilder_RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer) (This)->lpVtbl->RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer)
   7004 #define ICaptureGraphBuilder_ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie) (This)->lpVtbl->ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie)
   7005 #define ICaptureGraphBuilder_AllocCapFile(This,lpstr,dwlSize) (This)->lpVtbl->AllocCapFile(This,lpstr,dwlSize)
   7006 #define ICaptureGraphBuilder_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback) (This)->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)
   7007 #else
   7008 /*** IUnknown methods ***/
   7009 static FORCEINLINE HRESULT ICaptureGraphBuilder_QueryInterface(ICaptureGraphBuilder* This,REFIID riid,void **ppvObject) {
   7010     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7011 }
   7012 static FORCEINLINE ULONG ICaptureGraphBuilder_AddRef(ICaptureGraphBuilder* This) {
   7013     return This->lpVtbl->AddRef(This);
   7014 }
   7015 static FORCEINLINE ULONG ICaptureGraphBuilder_Release(ICaptureGraphBuilder* This) {
   7016     return This->lpVtbl->Release(This);
   7017 }
   7018 /*** ICaptureGraphBuilder methods ***/
   7019 static FORCEINLINE HRESULT ICaptureGraphBuilder_SetFiltergraph(ICaptureGraphBuilder* This,IGraphBuilder *pfg) {
   7020     return This->lpVtbl->SetFiltergraph(This,pfg);
   7021 }
   7022 static FORCEINLINE HRESULT ICaptureGraphBuilder_GetFiltergraph(ICaptureGraphBuilder* This,IGraphBuilder **ppfg) {
   7023     return This->lpVtbl->GetFiltergraph(This,ppfg);
   7024 }
   7025 static FORCEINLINE HRESULT ICaptureGraphBuilder_SetOutputFileName(ICaptureGraphBuilder* This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink) {
   7026     return This->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink);
   7027 }
   7028 static FORCEINLINE HRESULT ICaptureGraphBuilder_FindInterface(ICaptureGraphBuilder* This,const GUID *pCategory,IBaseFilter *pf,REFIID riid,void **ppint) {
   7029     return This->lpVtbl->FindInterface(This,pCategory,pf,riid,ppint);
   7030 }
   7031 static FORCEINLINE HRESULT ICaptureGraphBuilder_RenderStream(ICaptureGraphBuilder* This,const GUID *pCategory,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer) {
   7032     return This->lpVtbl->RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer);
   7033 }
   7034 static FORCEINLINE HRESULT ICaptureGraphBuilder_ControlStream(ICaptureGraphBuilder* This,const GUID *pCategory,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie) {
   7035     return This->lpVtbl->ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie);
   7036 }
   7037 static FORCEINLINE HRESULT ICaptureGraphBuilder_AllocCapFile(ICaptureGraphBuilder* This,LPCOLESTR lpstr,DWORDLONG dwlSize) {
   7038     return This->lpVtbl->AllocCapFile(This,lpstr,dwlSize);
   7039 }
   7040 static FORCEINLINE HRESULT ICaptureGraphBuilder_CopyCaptureFile(ICaptureGraphBuilder* This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback) {
   7041     return This->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback);
   7042 }
   7043 #endif
   7044 #endif
   7045 
   7046 #endif
   7047 
   7048 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_SetFiltergraph_Proxy(
   7049     ICaptureGraphBuilder* This,
   7050     IGraphBuilder *pfg);
   7051 void __RPC_STUB ICaptureGraphBuilder_SetFiltergraph_Stub(
   7052     IRpcStubBuffer* This,
   7053     IRpcChannelBuffer* pRpcChannelBuffer,
   7054     PRPC_MESSAGE pRpcMessage,
   7055     DWORD* pdwStubPhase);
   7056 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_GetFiltergraph_Proxy(
   7057     ICaptureGraphBuilder* This,
   7058     IGraphBuilder **ppfg);
   7059 void __RPC_STUB ICaptureGraphBuilder_GetFiltergraph_Stub(
   7060     IRpcStubBuffer* This,
   7061     IRpcChannelBuffer* pRpcChannelBuffer,
   7062     PRPC_MESSAGE pRpcMessage,
   7063     DWORD* pdwStubPhase);
   7064 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_SetOutputFileName_Proxy(
   7065     ICaptureGraphBuilder* This,
   7066     const GUID *pType,
   7067     LPCOLESTR lpstrFile,
   7068     IBaseFilter **ppf,
   7069     IFileSinkFilter **ppSink);
   7070 void __RPC_STUB ICaptureGraphBuilder_SetOutputFileName_Stub(
   7071     IRpcStubBuffer* This,
   7072     IRpcChannelBuffer* pRpcChannelBuffer,
   7073     PRPC_MESSAGE pRpcMessage,
   7074     DWORD* pdwStubPhase);
   7075 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_RemoteFindInterface_Proxy(
   7076     ICaptureGraphBuilder* This,
   7077     const GUID *pCategory,
   7078     IBaseFilter *pf,
   7079     REFIID riid,
   7080     IUnknown **ppint);
   7081 void __RPC_STUB ICaptureGraphBuilder_RemoteFindInterface_Stub(
   7082     IRpcStubBuffer* This,
   7083     IRpcChannelBuffer* pRpcChannelBuffer,
   7084     PRPC_MESSAGE pRpcMessage,
   7085     DWORD* pdwStubPhase);
   7086 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_RenderStream_Proxy(
   7087     ICaptureGraphBuilder* This,
   7088     const GUID *pCategory,
   7089     IUnknown *pSource,
   7090     IBaseFilter *pfCompressor,
   7091     IBaseFilter *pfRenderer);
   7092 void __RPC_STUB ICaptureGraphBuilder_RenderStream_Stub(
   7093     IRpcStubBuffer* This,
   7094     IRpcChannelBuffer* pRpcChannelBuffer,
   7095     PRPC_MESSAGE pRpcMessage,
   7096     DWORD* pdwStubPhase);
   7097 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_ControlStream_Proxy(
   7098     ICaptureGraphBuilder* This,
   7099     const GUID *pCategory,
   7100     IBaseFilter *pFilter,
   7101     REFERENCE_TIME *pstart,
   7102     REFERENCE_TIME *pstop,
   7103     WORD wStartCookie,
   7104     WORD wStopCookie);
   7105 void __RPC_STUB ICaptureGraphBuilder_ControlStream_Stub(
   7106     IRpcStubBuffer* This,
   7107     IRpcChannelBuffer* pRpcChannelBuffer,
   7108     PRPC_MESSAGE pRpcMessage,
   7109     DWORD* pdwStubPhase);
   7110 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_AllocCapFile_Proxy(
   7111     ICaptureGraphBuilder* This,
   7112     LPCOLESTR lpstr,
   7113     DWORDLONG dwlSize);
   7114 void __RPC_STUB ICaptureGraphBuilder_AllocCapFile_Stub(
   7115     IRpcStubBuffer* This,
   7116     IRpcChannelBuffer* pRpcChannelBuffer,
   7117     PRPC_MESSAGE pRpcMessage,
   7118     DWORD* pdwStubPhase);
   7119 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_CopyCaptureFile_Proxy(
   7120     ICaptureGraphBuilder* This,
   7121     LPOLESTR lpwstrOld,
   7122     LPOLESTR lpwstrNew,
   7123     int fAllowEscAbort,
   7124     IAMCopyCaptureFileProgress *pCallback);
   7125 void __RPC_STUB ICaptureGraphBuilder_CopyCaptureFile_Stub(
   7126     IRpcStubBuffer* This,
   7127     IRpcChannelBuffer* pRpcChannelBuffer,
   7128     PRPC_MESSAGE pRpcMessage,
   7129     DWORD* pdwStubPhase);
   7130 HRESULT CALLBACK ICaptureGraphBuilder_FindInterface_Proxy(
   7131     ICaptureGraphBuilder* This,
   7132     const GUID *pCategory,
   7133     IBaseFilter *pf,
   7134     REFIID riid,
   7135     void **ppint);
   7136 HRESULT __RPC_STUB ICaptureGraphBuilder_FindInterface_Stub(
   7137     ICaptureGraphBuilder* This,
   7138     const GUID *pCategory,
   7139     IBaseFilter *pf,
   7140     REFIID riid,
   7141     IUnknown **ppint);
   7142 
   7143 #endif  /* __ICaptureGraphBuilder_INTERFACE_DEFINED__ */
   7144 
   7145 /*****************************************************************************
   7146  * IAMCopyCaptureFileProgress interface
   7147  */
   7148 #ifndef __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
   7149 #define __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
   7150 
   7151 DEFINE_GUID(IID_IAMCopyCaptureFileProgress, 0x670d1d20, 0xa068, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
   7152 #if defined(__cplusplus) && !defined(CINTERFACE)
   7153 MIDL_INTERFACE("670d1d20-a068-11d0-b3f0-00aa003761c5")
   7154 IAMCopyCaptureFileProgress : public IUnknown
   7155 {
   7156     virtual HRESULT STDMETHODCALLTYPE Progress(
   7157         int iProgress) = 0;
   7158 
   7159 };
   7160 #ifdef __CRT_UUID_DECL
   7161 __CRT_UUID_DECL(IAMCopyCaptureFileProgress, 0x670d1d20, 0xa068, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5)
   7162 #endif
   7163 #else
   7164 typedef struct IAMCopyCaptureFileProgressVtbl {
   7165     BEGIN_INTERFACE
   7166 
   7167     /*** IUnknown methods ***/
   7168     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7169         IAMCopyCaptureFileProgress* This,
   7170         REFIID riid,
   7171         void **ppvObject);
   7172 
   7173     ULONG (STDMETHODCALLTYPE *AddRef)(
   7174         IAMCopyCaptureFileProgress* This);
   7175 
   7176     ULONG (STDMETHODCALLTYPE *Release)(
   7177         IAMCopyCaptureFileProgress* This);
   7178 
   7179     /*** IAMCopyCaptureFileProgress methods ***/
   7180     HRESULT (STDMETHODCALLTYPE *Progress)(
   7181         IAMCopyCaptureFileProgress* This,
   7182         int iProgress);
   7183 
   7184     END_INTERFACE
   7185 } IAMCopyCaptureFileProgressVtbl;
   7186 interface IAMCopyCaptureFileProgress {
   7187     CONST_VTBL IAMCopyCaptureFileProgressVtbl* lpVtbl;
   7188 };
   7189 
   7190 #ifdef COBJMACROS
   7191 #ifndef WIDL_C_INLINE_WRAPPERS
   7192 /*** IUnknown methods ***/
   7193 #define IAMCopyCaptureFileProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7194 #define IAMCopyCaptureFileProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
   7195 #define IAMCopyCaptureFileProgress_Release(This) (This)->lpVtbl->Release(This)
   7196 /*** IAMCopyCaptureFileProgress methods ***/
   7197 #define IAMCopyCaptureFileProgress_Progress(This,iProgress) (This)->lpVtbl->Progress(This,iProgress)
   7198 #else
   7199 /*** IUnknown methods ***/
   7200 static FORCEINLINE HRESULT IAMCopyCaptureFileProgress_QueryInterface(IAMCopyCaptureFileProgress* This,REFIID riid,void **ppvObject) {
   7201     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7202 }
   7203 static FORCEINLINE ULONG IAMCopyCaptureFileProgress_AddRef(IAMCopyCaptureFileProgress* This) {
   7204     return This->lpVtbl->AddRef(This);
   7205 }
   7206 static FORCEINLINE ULONG IAMCopyCaptureFileProgress_Release(IAMCopyCaptureFileProgress* This) {
   7207     return This->lpVtbl->Release(This);
   7208 }
   7209 /*** IAMCopyCaptureFileProgress methods ***/
   7210 static FORCEINLINE HRESULT IAMCopyCaptureFileProgress_Progress(IAMCopyCaptureFileProgress* This,int iProgress) {
   7211     return This->lpVtbl->Progress(This,iProgress);
   7212 }
   7213 #endif
   7214 #endif
   7215 
   7216 #endif
   7217 
   7218 HRESULT STDMETHODCALLTYPE IAMCopyCaptureFileProgress_Progress_Proxy(
   7219     IAMCopyCaptureFileProgress* This,
   7220     int iProgress);
   7221 void __RPC_STUB IAMCopyCaptureFileProgress_Progress_Stub(
   7222     IRpcStubBuffer* This,
   7223     IRpcChannelBuffer* pRpcChannelBuffer,
   7224     PRPC_MESSAGE pRpcMessage,
   7225     DWORD* pdwStubPhase);
   7226 
   7227 #endif  /* __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__ */
   7228 
   7229 /*****************************************************************************
   7230  * ICaptureGraphBuilder2 interface
   7231  */
   7232 #ifndef __ICaptureGraphBuilder2_INTERFACE_DEFINED__
   7233 #define __ICaptureGraphBuilder2_INTERFACE_DEFINED__
   7234 
   7235 DEFINE_GUID(IID_ICaptureGraphBuilder2, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,0xfa, 0x00,0xa0,0xc9,0xc6,0xe3,0x8d);
   7236 #if defined(__cplusplus) && !defined(CINTERFACE)
   7237 MIDL_INTERFACE("93e5a4e0-2d50-11d2-abfa-00a0c9c6e38d")
   7238 ICaptureGraphBuilder2 : public IUnknown
   7239 {
   7240     virtual HRESULT STDMETHODCALLTYPE SetFiltergraph(
   7241         IGraphBuilder *pfg) = 0;
   7242 
   7243     virtual HRESULT STDMETHODCALLTYPE GetFiltergraph(
   7244         IGraphBuilder **ppfg) = 0;
   7245 
   7246     virtual HRESULT STDMETHODCALLTYPE SetOutputFileName(
   7247         const GUID *pType,
   7248         LPCOLESTR lpstrFile,
   7249         IBaseFilter **ppf,
   7250         IFileSinkFilter **ppSink) = 0;
   7251 
   7252     virtual HRESULT STDMETHODCALLTYPE FindInterface(
   7253         const GUID *pCategory,
   7254         const GUID *pType,
   7255         IBaseFilter *pf,
   7256         REFIID riid,
   7257         void **ppint) = 0;
   7258 
   7259     virtual HRESULT STDMETHODCALLTYPE RenderStream(
   7260         const GUID *pCategory,
   7261         const GUID *pType,
   7262         IUnknown *pSource,
   7263         IBaseFilter *pfCompressor,
   7264         IBaseFilter *pfRenderer) = 0;
   7265 
   7266     virtual HRESULT STDMETHODCALLTYPE ControlStream(
   7267         const GUID *pCategory,
   7268         const GUID *pType,
   7269         IBaseFilter *pFilter,
   7270         REFERENCE_TIME *pstart,
   7271         REFERENCE_TIME *pstop,
   7272         WORD wStartCookie,
   7273         WORD wStopCookie) = 0;
   7274 
   7275     virtual HRESULT STDMETHODCALLTYPE AllocCapFile(
   7276         LPCOLESTR lpstr,
   7277         DWORDLONG dwlSize) = 0;
   7278 
   7279     virtual HRESULT STDMETHODCALLTYPE CopyCaptureFile(
   7280         LPOLESTR lpwstrOld,
   7281         LPOLESTR lpwstrNew,
   7282         int fAllowEscAbort,
   7283         IAMCopyCaptureFileProgress *pCallback) = 0;
   7284 
   7285     virtual HRESULT STDMETHODCALLTYPE FindPin(
   7286         IUnknown *pSource,
   7287         PIN_DIRECTION pindir,
   7288         const GUID *pCategory,
   7289         const GUID *pType,
   7290         WINBOOL fUnconnected,
   7291         int num,
   7292         IPin **ppPin) = 0;
   7293 
   7294 };
   7295 #ifdef __CRT_UUID_DECL
   7296 __CRT_UUID_DECL(ICaptureGraphBuilder2, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,0xfa, 0x00,0xa0,0xc9,0xc6,0xe3,0x8d)
   7297 #endif
   7298 #else
   7299 typedef struct ICaptureGraphBuilder2Vtbl {
   7300     BEGIN_INTERFACE
   7301 
   7302     /*** IUnknown methods ***/
   7303     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7304         ICaptureGraphBuilder2* This,
   7305         REFIID riid,
   7306         void **ppvObject);
   7307 
   7308     ULONG (STDMETHODCALLTYPE *AddRef)(
   7309         ICaptureGraphBuilder2* This);
   7310 
   7311     ULONG (STDMETHODCALLTYPE *Release)(
   7312         ICaptureGraphBuilder2* This);
   7313 
   7314     /*** ICaptureGraphBuilder2 methods ***/
   7315     HRESULT (STDMETHODCALLTYPE *SetFiltergraph)(
   7316         ICaptureGraphBuilder2* This,
   7317         IGraphBuilder *pfg);
   7318 
   7319     HRESULT (STDMETHODCALLTYPE *GetFiltergraph)(
   7320         ICaptureGraphBuilder2* This,
   7321         IGraphBuilder **ppfg);
   7322 
   7323     HRESULT (STDMETHODCALLTYPE *SetOutputFileName)(
   7324         ICaptureGraphBuilder2* This,
   7325         const GUID *pType,
   7326         LPCOLESTR lpstrFile,
   7327         IBaseFilter **ppf,
   7328         IFileSinkFilter **ppSink);
   7329 
   7330     HRESULT (STDMETHODCALLTYPE *FindInterface)(
   7331         ICaptureGraphBuilder2* This,
   7332         const GUID *pCategory,
   7333         const GUID *pType,
   7334         IBaseFilter *pf,
   7335         REFIID riid,
   7336         void **ppint);
   7337 
   7338     HRESULT (STDMETHODCALLTYPE *RenderStream)(
   7339         ICaptureGraphBuilder2* This,
   7340         const GUID *pCategory,
   7341         const GUID *pType,
   7342         IUnknown *pSource,
   7343         IBaseFilter *pfCompressor,
   7344         IBaseFilter *pfRenderer);
   7345 
   7346     HRESULT (STDMETHODCALLTYPE *ControlStream)(
   7347         ICaptureGraphBuilder2* This,
   7348         const GUID *pCategory,
   7349         const GUID *pType,
   7350         IBaseFilter *pFilter,
   7351         REFERENCE_TIME *pstart,
   7352         REFERENCE_TIME *pstop,
   7353         WORD wStartCookie,
   7354         WORD wStopCookie);
   7355 
   7356     HRESULT (STDMETHODCALLTYPE *AllocCapFile)(
   7357         ICaptureGraphBuilder2* This,
   7358         LPCOLESTR lpstr,
   7359         DWORDLONG dwlSize);
   7360 
   7361     HRESULT (STDMETHODCALLTYPE *CopyCaptureFile)(
   7362         ICaptureGraphBuilder2* This,
   7363         LPOLESTR lpwstrOld,
   7364         LPOLESTR lpwstrNew,
   7365         int fAllowEscAbort,
   7366         IAMCopyCaptureFileProgress *pCallback);
   7367 
   7368     HRESULT (STDMETHODCALLTYPE *FindPin)(
   7369         ICaptureGraphBuilder2* This,
   7370         IUnknown *pSource,
   7371         PIN_DIRECTION pindir,
   7372         const GUID *pCategory,
   7373         const GUID *pType,
   7374         WINBOOL fUnconnected,
   7375         int num,
   7376         IPin **ppPin);
   7377 
   7378     END_INTERFACE
   7379 } ICaptureGraphBuilder2Vtbl;
   7380 interface ICaptureGraphBuilder2 {
   7381     CONST_VTBL ICaptureGraphBuilder2Vtbl* lpVtbl;
   7382 };
   7383 
   7384 #ifdef COBJMACROS
   7385 #ifndef WIDL_C_INLINE_WRAPPERS
   7386 /*** IUnknown methods ***/
   7387 #define ICaptureGraphBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7388 #define ICaptureGraphBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This)
   7389 #define ICaptureGraphBuilder2_Release(This) (This)->lpVtbl->Release(This)
   7390 /*** ICaptureGraphBuilder2 methods ***/
   7391 #define ICaptureGraphBuilder2_SetFiltergraph(This,pfg) (This)->lpVtbl->SetFiltergraph(This,pfg)
   7392 #define ICaptureGraphBuilder2_GetFiltergraph(This,ppfg) (This)->lpVtbl->GetFiltergraph(This,ppfg)
   7393 #define ICaptureGraphBuilder2_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink) (This)->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)
   7394 #define ICaptureGraphBuilder2_FindInterface(This,pCategory,pType,pf,riid,ppint) (This)->lpVtbl->FindInterface(This,pCategory,pType,pf,riid,ppint)
   7395 #define ICaptureGraphBuilder2_RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer) (This)->lpVtbl->RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer)
   7396 #define ICaptureGraphBuilder2_ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie) (This)->lpVtbl->ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie)
   7397 #define ICaptureGraphBuilder2_AllocCapFile(This,lpstr,dwlSize) (This)->lpVtbl->AllocCapFile(This,lpstr,dwlSize)
   7398 #define ICaptureGraphBuilder2_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback) (This)->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)
   7399 #define ICaptureGraphBuilder2_FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin) (This)->lpVtbl->FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin)
   7400 #else
   7401 /*** IUnknown methods ***/
   7402 static FORCEINLINE HRESULT ICaptureGraphBuilder2_QueryInterface(ICaptureGraphBuilder2* This,REFIID riid,void **ppvObject) {
   7403     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7404 }
   7405 static FORCEINLINE ULONG ICaptureGraphBuilder2_AddRef(ICaptureGraphBuilder2* This) {
   7406     return This->lpVtbl->AddRef(This);
   7407 }
   7408 static FORCEINLINE ULONG ICaptureGraphBuilder2_Release(ICaptureGraphBuilder2* This) {
   7409     return This->lpVtbl->Release(This);
   7410 }
   7411 /*** ICaptureGraphBuilder2 methods ***/
   7412 static FORCEINLINE HRESULT ICaptureGraphBuilder2_SetFiltergraph(ICaptureGraphBuilder2* This,IGraphBuilder *pfg) {
   7413     return This->lpVtbl->SetFiltergraph(This,pfg);
   7414 }
   7415 static FORCEINLINE HRESULT ICaptureGraphBuilder2_GetFiltergraph(ICaptureGraphBuilder2* This,IGraphBuilder **ppfg) {
   7416     return This->lpVtbl->GetFiltergraph(This,ppfg);
   7417 }
   7418 static FORCEINLINE HRESULT ICaptureGraphBuilder2_SetOutputFileName(ICaptureGraphBuilder2* This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink) {
   7419     return This->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink);
   7420 }
   7421 static FORCEINLINE HRESULT ICaptureGraphBuilder2_FindInterface(ICaptureGraphBuilder2* This,const GUID *pCategory,const GUID *pType,IBaseFilter *pf,REFIID riid,void **ppint) {
   7422     return This->lpVtbl->FindInterface(This,pCategory,pType,pf,riid,ppint);
   7423 }
   7424 static FORCEINLINE HRESULT ICaptureGraphBuilder2_RenderStream(ICaptureGraphBuilder2* This,const GUID *pCategory,const GUID *pType,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer) {
   7425     return This->lpVtbl->RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer);
   7426 }
   7427 static FORCEINLINE HRESULT ICaptureGraphBuilder2_ControlStream(ICaptureGraphBuilder2* This,const GUID *pCategory,const GUID *pType,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie) {
   7428     return This->lpVtbl->ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie);
   7429 }
   7430 static FORCEINLINE HRESULT ICaptureGraphBuilder2_AllocCapFile(ICaptureGraphBuilder2* This,LPCOLESTR lpstr,DWORDLONG dwlSize) {
   7431     return This->lpVtbl->AllocCapFile(This,lpstr,dwlSize);
   7432 }
   7433 static FORCEINLINE HRESULT ICaptureGraphBuilder2_CopyCaptureFile(ICaptureGraphBuilder2* This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback) {
   7434     return This->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback);
   7435 }
   7436 static FORCEINLINE HRESULT ICaptureGraphBuilder2_FindPin(ICaptureGraphBuilder2* This,IUnknown *pSource,PIN_DIRECTION pindir,const GUID *pCategory,const GUID *pType,WINBOOL fUnconnected,int num,IPin **ppPin) {
   7437     return This->lpVtbl->FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin);
   7438 }
   7439 #endif
   7440 #endif
   7441 
   7442 #endif
   7443 
   7444 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_SetFiltergraph_Proxy(
   7445     ICaptureGraphBuilder2* This,
   7446     IGraphBuilder *pfg);
   7447 void __RPC_STUB ICaptureGraphBuilder2_SetFiltergraph_Stub(
   7448     IRpcStubBuffer* This,
   7449     IRpcChannelBuffer* pRpcChannelBuffer,
   7450     PRPC_MESSAGE pRpcMessage,
   7451     DWORD* pdwStubPhase);
   7452 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_GetFiltergraph_Proxy(
   7453     ICaptureGraphBuilder2* This,
   7454     IGraphBuilder **ppfg);
   7455 void __RPC_STUB ICaptureGraphBuilder2_GetFiltergraph_Stub(
   7456     IRpcStubBuffer* This,
   7457     IRpcChannelBuffer* pRpcChannelBuffer,
   7458     PRPC_MESSAGE pRpcMessage,
   7459     DWORD* pdwStubPhase);
   7460 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_SetOutputFileName_Proxy(
   7461     ICaptureGraphBuilder2* This,
   7462     const GUID *pType,
   7463     LPCOLESTR lpstrFile,
   7464     IBaseFilter **ppf,
   7465     IFileSinkFilter **ppSink);
   7466 void __RPC_STUB ICaptureGraphBuilder2_SetOutputFileName_Stub(
   7467     IRpcStubBuffer* This,
   7468     IRpcChannelBuffer* pRpcChannelBuffer,
   7469     PRPC_MESSAGE pRpcMessage,
   7470     DWORD* pdwStubPhase);
   7471 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_RemoteFindInterface_Proxy(
   7472     ICaptureGraphBuilder2* This,
   7473     const GUID *pCategory,
   7474     const GUID *pType,
   7475     IBaseFilter *pf,
   7476     REFIID riid,
   7477     IUnknown **ppint);
   7478 void __RPC_STUB ICaptureGraphBuilder2_RemoteFindInterface_Stub(
   7479     IRpcStubBuffer* This,
   7480     IRpcChannelBuffer* pRpcChannelBuffer,
   7481     PRPC_MESSAGE pRpcMessage,
   7482     DWORD* pdwStubPhase);
   7483 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_RenderStream_Proxy(
   7484     ICaptureGraphBuilder2* This,
   7485     const GUID *pCategory,
   7486     const GUID *pType,
   7487     IUnknown *pSource,
   7488     IBaseFilter *pfCompressor,
   7489     IBaseFilter *pfRenderer);
   7490 void __RPC_STUB ICaptureGraphBuilder2_RenderStream_Stub(
   7491     IRpcStubBuffer* This,
   7492     IRpcChannelBuffer* pRpcChannelBuffer,
   7493     PRPC_MESSAGE pRpcMessage,
   7494     DWORD* pdwStubPhase);
   7495 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_ControlStream_Proxy(
   7496     ICaptureGraphBuilder2* This,
   7497     const GUID *pCategory,
   7498     const GUID *pType,
   7499     IBaseFilter *pFilter,
   7500     REFERENCE_TIME *pstart,
   7501     REFERENCE_TIME *pstop,
   7502     WORD wStartCookie,
   7503     WORD wStopCookie);
   7504 void __RPC_STUB ICaptureGraphBuilder2_ControlStream_Stub(
   7505     IRpcStubBuffer* This,
   7506     IRpcChannelBuffer* pRpcChannelBuffer,
   7507     PRPC_MESSAGE pRpcMessage,
   7508     DWORD* pdwStubPhase);
   7509 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_AllocCapFile_Proxy(
   7510     ICaptureGraphBuilder2* This,
   7511     LPCOLESTR lpstr,
   7512     DWORDLONG dwlSize);
   7513 void __RPC_STUB ICaptureGraphBuilder2_AllocCapFile_Stub(
   7514     IRpcStubBuffer* This,
   7515     IRpcChannelBuffer* pRpcChannelBuffer,
   7516     PRPC_MESSAGE pRpcMessage,
   7517     DWORD* pdwStubPhase);
   7518 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_CopyCaptureFile_Proxy(
   7519     ICaptureGraphBuilder2* This,
   7520     LPOLESTR lpwstrOld,
   7521     LPOLESTR lpwstrNew,
   7522     int fAllowEscAbort,
   7523     IAMCopyCaptureFileProgress *pCallback);
   7524 void __RPC_STUB ICaptureGraphBuilder2_CopyCaptureFile_Stub(
   7525     IRpcStubBuffer* This,
   7526     IRpcChannelBuffer* pRpcChannelBuffer,
   7527     PRPC_MESSAGE pRpcMessage,
   7528     DWORD* pdwStubPhase);
   7529 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_FindPin_Proxy(
   7530     ICaptureGraphBuilder2* This,
   7531     IUnknown *pSource,
   7532     PIN_DIRECTION pindir,
   7533     const GUID *pCategory,
   7534     const GUID *pType,
   7535     WINBOOL fUnconnected,
   7536     int num,
   7537     IPin **ppPin);
   7538 void __RPC_STUB ICaptureGraphBuilder2_FindPin_Stub(
   7539     IRpcStubBuffer* This,
   7540     IRpcChannelBuffer* pRpcChannelBuffer,
   7541     PRPC_MESSAGE pRpcMessage,
   7542     DWORD* pdwStubPhase);
   7543 HRESULT CALLBACK ICaptureGraphBuilder2_FindInterface_Proxy(
   7544     ICaptureGraphBuilder2* This,
   7545     const GUID *pCategory,
   7546     const GUID *pType,
   7547     IBaseFilter *pf,
   7548     REFIID riid,
   7549     void **ppint);
   7550 HRESULT __RPC_STUB ICaptureGraphBuilder2_FindInterface_Stub(
   7551     ICaptureGraphBuilder2* This,
   7552     const GUID *pCategory,
   7553     const GUID *pType,
   7554     IBaseFilter *pf,
   7555     REFIID riid,
   7556     IUnknown **ppint);
   7557 
   7558 #endif  /* __ICaptureGraphBuilder2_INTERFACE_DEFINED__ */
   7559 
   7560 /*****************************************************************************
   7561  * IConfigAviMux interface
   7562  */
   7563 #ifndef __IConfigAviMux_INTERFACE_DEFINED__
   7564 #define __IConfigAviMux_INTERFACE_DEFINED__
   7565 
   7566 DEFINE_GUID(IID_IConfigAviMux, 0x5acd6aa0, 0xf482, 0x11ce, 0x8b,0x67, 0x00,0xaa,0x00,0xa3,0xf1,0xa6);
   7567 #if defined(__cplusplus) && !defined(CINTERFACE)
   7568 MIDL_INTERFACE("5acd6aa0-f482-11ce-8b67-00aa00a3f1a6")
   7569 IConfigAviMux : public IUnknown
   7570 {
   7571     virtual HRESULT STDMETHODCALLTYPE SetMasterStream(
   7572         LONG iStream) = 0;
   7573 
   7574     virtual HRESULT STDMETHODCALLTYPE GetMasterStream(
   7575         LONG *pStream) = 0;
   7576 
   7577     virtual HRESULT STDMETHODCALLTYPE SetOutputCompatibilityIndex(
   7578         WINBOOL fOldIndex) = 0;
   7579 
   7580     virtual HRESULT STDMETHODCALLTYPE GetOutputCompatibilityIndex(
   7581         WINBOOL *pfOldIndex) = 0;
   7582 
   7583 };
   7584 #ifdef __CRT_UUID_DECL
   7585 __CRT_UUID_DECL(IConfigAviMux, 0x5acd6aa0, 0xf482, 0x11ce, 0x8b,0x67, 0x00,0xaa,0x00,0xa3,0xf1,0xa6)
   7586 #endif
   7587 #else
   7588 typedef struct IConfigAviMuxVtbl {
   7589     BEGIN_INTERFACE
   7590 
   7591     /*** IUnknown methods ***/
   7592     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7593         IConfigAviMux* This,
   7594         REFIID riid,
   7595         void **ppvObject);
   7596 
   7597     ULONG (STDMETHODCALLTYPE *AddRef)(
   7598         IConfigAviMux* This);
   7599 
   7600     ULONG (STDMETHODCALLTYPE *Release)(
   7601         IConfigAviMux* This);
   7602 
   7603     /*** IConfigAviMux methods ***/
   7604     HRESULT (STDMETHODCALLTYPE *SetMasterStream)(
   7605         IConfigAviMux* This,
   7606         LONG iStream);
   7607 
   7608     HRESULT (STDMETHODCALLTYPE *GetMasterStream)(
   7609         IConfigAviMux* This,
   7610         LONG *pStream);
   7611 
   7612     HRESULT (STDMETHODCALLTYPE *SetOutputCompatibilityIndex)(
   7613         IConfigAviMux* This,
   7614         WINBOOL fOldIndex);
   7615 
   7616     HRESULT (STDMETHODCALLTYPE *GetOutputCompatibilityIndex)(
   7617         IConfigAviMux* This,
   7618         WINBOOL *pfOldIndex);
   7619 
   7620     END_INTERFACE
   7621 } IConfigAviMuxVtbl;
   7622 interface IConfigAviMux {
   7623     CONST_VTBL IConfigAviMuxVtbl* lpVtbl;
   7624 };
   7625 
   7626 #ifdef COBJMACROS
   7627 #ifndef WIDL_C_INLINE_WRAPPERS
   7628 /*** IUnknown methods ***/
   7629 #define IConfigAviMux_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7630 #define IConfigAviMux_AddRef(This) (This)->lpVtbl->AddRef(This)
   7631 #define IConfigAviMux_Release(This) (This)->lpVtbl->Release(This)
   7632 /*** IConfigAviMux methods ***/
   7633 #define IConfigAviMux_SetMasterStream(This,iStream) (This)->lpVtbl->SetMasterStream(This,iStream)
   7634 #define IConfigAviMux_GetMasterStream(This,pStream) (This)->lpVtbl->GetMasterStream(This,pStream)
   7635 #define IConfigAviMux_SetOutputCompatibilityIndex(This,fOldIndex) (This)->lpVtbl->SetOutputCompatibilityIndex(This,fOldIndex)
   7636 #define IConfigAviMux_GetOutputCompatibilityIndex(This,pfOldIndex) (This)->lpVtbl->GetOutputCompatibilityIndex(This,pfOldIndex)
   7637 #else
   7638 /*** IUnknown methods ***/
   7639 static FORCEINLINE HRESULT IConfigAviMux_QueryInterface(IConfigAviMux* This,REFIID riid,void **ppvObject) {
   7640     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7641 }
   7642 static FORCEINLINE ULONG IConfigAviMux_AddRef(IConfigAviMux* This) {
   7643     return This->lpVtbl->AddRef(This);
   7644 }
   7645 static FORCEINLINE ULONG IConfigAviMux_Release(IConfigAviMux* This) {
   7646     return This->lpVtbl->Release(This);
   7647 }
   7648 /*** IConfigAviMux methods ***/
   7649 static FORCEINLINE HRESULT IConfigAviMux_SetMasterStream(IConfigAviMux* This,LONG iStream) {
   7650     return This->lpVtbl->SetMasterStream(This,iStream);
   7651 }
   7652 static FORCEINLINE HRESULT IConfigAviMux_GetMasterStream(IConfigAviMux* This,LONG *pStream) {
   7653     return This->lpVtbl->GetMasterStream(This,pStream);
   7654 }
   7655 static FORCEINLINE HRESULT IConfigAviMux_SetOutputCompatibilityIndex(IConfigAviMux* This,WINBOOL fOldIndex) {
   7656     return This->lpVtbl->SetOutputCompatibilityIndex(This,fOldIndex);
   7657 }
   7658 static FORCEINLINE HRESULT IConfigAviMux_GetOutputCompatibilityIndex(IConfigAviMux* This,WINBOOL *pfOldIndex) {
   7659     return This->lpVtbl->GetOutputCompatibilityIndex(This,pfOldIndex);
   7660 }
   7661 #endif
   7662 #endif
   7663 
   7664 #endif
   7665 
   7666 HRESULT STDMETHODCALLTYPE IConfigAviMux_SetMasterStream_Proxy(
   7667     IConfigAviMux* This,
   7668     LONG iStream);
   7669 void __RPC_STUB IConfigAviMux_SetMasterStream_Stub(
   7670     IRpcStubBuffer* This,
   7671     IRpcChannelBuffer* pRpcChannelBuffer,
   7672     PRPC_MESSAGE pRpcMessage,
   7673     DWORD* pdwStubPhase);
   7674 HRESULT STDMETHODCALLTYPE IConfigAviMux_GetMasterStream_Proxy(
   7675     IConfigAviMux* This,
   7676     LONG *pStream);
   7677 void __RPC_STUB IConfigAviMux_GetMasterStream_Stub(
   7678     IRpcStubBuffer* This,
   7679     IRpcChannelBuffer* pRpcChannelBuffer,
   7680     PRPC_MESSAGE pRpcMessage,
   7681     DWORD* pdwStubPhase);
   7682 HRESULT STDMETHODCALLTYPE IConfigAviMux_SetOutputCompatibilityIndex_Proxy(
   7683     IConfigAviMux* This,
   7684     WINBOOL fOldIndex);
   7685 void __RPC_STUB IConfigAviMux_SetOutputCompatibilityIndex_Stub(
   7686     IRpcStubBuffer* This,
   7687     IRpcChannelBuffer* pRpcChannelBuffer,
   7688     PRPC_MESSAGE pRpcMessage,
   7689     DWORD* pdwStubPhase);
   7690 HRESULT STDMETHODCALLTYPE IConfigAviMux_GetOutputCompatibilityIndex_Proxy(
   7691     IConfigAviMux* This,
   7692     WINBOOL *pfOldIndex);
   7693 void __RPC_STUB IConfigAviMux_GetOutputCompatibilityIndex_Stub(
   7694     IRpcStubBuffer* This,
   7695     IRpcChannelBuffer* pRpcChannelBuffer,
   7696     PRPC_MESSAGE pRpcMessage,
   7697     DWORD* pdwStubPhase);
   7698 
   7699 #endif  /* __IConfigAviMux_INTERFACE_DEFINED__ */
   7700 
   7701 /*****************************************************************************
   7702  * IConfigInterleaving interface
   7703  */
   7704 #ifndef __IConfigInterleaving_INTERFACE_DEFINED__
   7705 #define __IConfigInterleaving_INTERFACE_DEFINED__
   7706 
   7707 typedef enum InterleavingMode {
   7708     INTERLEAVE_NONE = 0,
   7709     INTERLEAVE_CAPTURE = 1,
   7710     INTERLEAVE_FULL = 2,
   7711     INTERLEAVE_NONE_BUFFERED = 3
   7712 } InterleavingMode;
   7713 DEFINE_GUID(IID_IConfigInterleaving, 0xbee3d220, 0x157b, 0x11d0, 0xbd,0x23, 0x00,0xa0,0xc9,0x11,0xce,0x86);
   7714 #if defined(__cplusplus) && !defined(CINTERFACE)
   7715 MIDL_INTERFACE("bee3d220-157b-11d0-bd23-00a0c911ce86")
   7716 IConfigInterleaving : public IUnknown
   7717 {
   7718     virtual HRESULT STDMETHODCALLTYPE put_Mode(
   7719         InterleavingMode mode) = 0;
   7720 
   7721     virtual HRESULT STDMETHODCALLTYPE get_Mode(
   7722         InterleavingMode *pMode) = 0;
   7723 
   7724     virtual HRESULT STDMETHODCALLTYPE put_Interleaving(
   7725         const REFERENCE_TIME *prtInterleave,
   7726         const REFERENCE_TIME *prtPreroll) = 0;
   7727 
   7728     virtual HRESULT STDMETHODCALLTYPE get_Interleaving(
   7729         REFERENCE_TIME *prtInterleave,
   7730         REFERENCE_TIME *prtPreroll) = 0;
   7731 
   7732 };
   7733 #ifdef __CRT_UUID_DECL
   7734 __CRT_UUID_DECL(IConfigInterleaving, 0xbee3d220, 0x157b, 0x11d0, 0xbd,0x23, 0x00,0xa0,0xc9,0x11,0xce,0x86)
   7735 #endif
   7736 #else
   7737 typedef struct IConfigInterleavingVtbl {
   7738     BEGIN_INTERFACE
   7739 
   7740     /*** IUnknown methods ***/
   7741     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7742         IConfigInterleaving* This,
   7743         REFIID riid,
   7744         void **ppvObject);
   7745 
   7746     ULONG (STDMETHODCALLTYPE *AddRef)(
   7747         IConfigInterleaving* This);
   7748 
   7749     ULONG (STDMETHODCALLTYPE *Release)(
   7750         IConfigInterleaving* This);
   7751 
   7752     /*** IConfigInterleaving methods ***/
   7753     HRESULT (STDMETHODCALLTYPE *put_Mode)(
   7754         IConfigInterleaving* This,
   7755         InterleavingMode mode);
   7756 
   7757     HRESULT (STDMETHODCALLTYPE *get_Mode)(
   7758         IConfigInterleaving* This,
   7759         InterleavingMode *pMode);
   7760 
   7761     HRESULT (STDMETHODCALLTYPE *put_Interleaving)(
   7762         IConfigInterleaving* This,
   7763         const REFERENCE_TIME *prtInterleave,
   7764         const REFERENCE_TIME *prtPreroll);
   7765 
   7766     HRESULT (STDMETHODCALLTYPE *get_Interleaving)(
   7767         IConfigInterleaving* This,
   7768         REFERENCE_TIME *prtInterleave,
   7769         REFERENCE_TIME *prtPreroll);
   7770 
   7771     END_INTERFACE
   7772 } IConfigInterleavingVtbl;
   7773 interface IConfigInterleaving {
   7774     CONST_VTBL IConfigInterleavingVtbl* lpVtbl;
   7775 };
   7776 
   7777 #ifdef COBJMACROS
   7778 #ifndef WIDL_C_INLINE_WRAPPERS
   7779 /*** IUnknown methods ***/
   7780 #define IConfigInterleaving_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7781 #define IConfigInterleaving_AddRef(This) (This)->lpVtbl->AddRef(This)
   7782 #define IConfigInterleaving_Release(This) (This)->lpVtbl->Release(This)
   7783 /*** IConfigInterleaving methods ***/
   7784 #define IConfigInterleaving_put_Mode(This,mode) (This)->lpVtbl->put_Mode(This,mode)
   7785 #define IConfigInterleaving_get_Mode(This,pMode) (This)->lpVtbl->get_Mode(This,pMode)
   7786 #define IConfigInterleaving_put_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->put_Interleaving(This,prtInterleave,prtPreroll)
   7787 #define IConfigInterleaving_get_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->get_Interleaving(This,prtInterleave,prtPreroll)
   7788 #else
   7789 /*** IUnknown methods ***/
   7790 static FORCEINLINE HRESULT IConfigInterleaving_QueryInterface(IConfigInterleaving* This,REFIID riid,void **ppvObject) {
   7791     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7792 }
   7793 static FORCEINLINE ULONG IConfigInterleaving_AddRef(IConfigInterleaving* This) {
   7794     return This->lpVtbl->AddRef(This);
   7795 }
   7796 static FORCEINLINE ULONG IConfigInterleaving_Release(IConfigInterleaving* This) {
   7797     return This->lpVtbl->Release(This);
   7798 }
   7799 /*** IConfigInterleaving methods ***/
   7800 static FORCEINLINE HRESULT IConfigInterleaving_put_Mode(IConfigInterleaving* This,InterleavingMode mode) {
   7801     return This->lpVtbl->put_Mode(This,mode);
   7802 }
   7803 static FORCEINLINE HRESULT IConfigInterleaving_get_Mode(IConfigInterleaving* This,InterleavingMode *pMode) {
   7804     return This->lpVtbl->get_Mode(This,pMode);
   7805 }
   7806 static FORCEINLINE HRESULT IConfigInterleaving_put_Interleaving(IConfigInterleaving* This,const REFERENCE_TIME *prtInterleave,const REFERENCE_TIME *prtPreroll) {
   7807     return This->lpVtbl->put_Interleaving(This,prtInterleave,prtPreroll);
   7808 }
   7809 static FORCEINLINE HRESULT IConfigInterleaving_get_Interleaving(IConfigInterleaving* This,REFERENCE_TIME *prtInterleave,REFERENCE_TIME *prtPreroll) {
   7810     return This->lpVtbl->get_Interleaving(This,prtInterleave,prtPreroll);
   7811 }
   7812 #endif
   7813 #endif
   7814 
   7815 #endif
   7816 
   7817 HRESULT STDMETHODCALLTYPE IConfigInterleaving_put_Mode_Proxy(
   7818     IConfigInterleaving* This,
   7819     InterleavingMode mode);
   7820 void __RPC_STUB IConfigInterleaving_put_Mode_Stub(
   7821     IRpcStubBuffer* This,
   7822     IRpcChannelBuffer* pRpcChannelBuffer,
   7823     PRPC_MESSAGE pRpcMessage,
   7824     DWORD* pdwStubPhase);
   7825 HRESULT STDMETHODCALLTYPE IConfigInterleaving_get_Mode_Proxy(
   7826     IConfigInterleaving* This,
   7827     InterleavingMode *pMode);
   7828 void __RPC_STUB IConfigInterleaving_get_Mode_Stub(
   7829     IRpcStubBuffer* This,
   7830     IRpcChannelBuffer* pRpcChannelBuffer,
   7831     PRPC_MESSAGE pRpcMessage,
   7832     DWORD* pdwStubPhase);
   7833 HRESULT STDMETHODCALLTYPE IConfigInterleaving_put_Interleaving_Proxy(
   7834     IConfigInterleaving* This,
   7835     const REFERENCE_TIME *prtInterleave,
   7836     const REFERENCE_TIME *prtPreroll);
   7837 void __RPC_STUB IConfigInterleaving_put_Interleaving_Stub(
   7838     IRpcStubBuffer* This,
   7839     IRpcChannelBuffer* pRpcChannelBuffer,
   7840     PRPC_MESSAGE pRpcMessage,
   7841     DWORD* pdwStubPhase);
   7842 HRESULT STDMETHODCALLTYPE IConfigInterleaving_get_Interleaving_Proxy(
   7843     IConfigInterleaving* This,
   7844     REFERENCE_TIME *prtInterleave,
   7845     REFERENCE_TIME *prtPreroll);
   7846 void __RPC_STUB IConfigInterleaving_get_Interleaving_Stub(
   7847     IRpcStubBuffer* This,
   7848     IRpcChannelBuffer* pRpcChannelBuffer,
   7849     PRPC_MESSAGE pRpcMessage,
   7850     DWORD* pdwStubPhase);
   7851 
   7852 #endif  /* __IConfigInterleaving_INTERFACE_DEFINED__ */
   7853 
   7854 /*****************************************************************************
   7855  * IAMClockSlave interface
   7856  */
   7857 #ifndef __IAMClockSlave_INTERFACE_DEFINED__
   7858 #define __IAMClockSlave_INTERFACE_DEFINED__
   7859 
   7860 DEFINE_GUID(IID_IAMClockSlave, 0x9fd52741, 0x176d, 0x4b36, 0x8f,0x51, 0xca,0x8f,0x93,0x32,0x23,0xbe);
   7861 #if defined(__cplusplus) && !defined(CINTERFACE)
   7862 MIDL_INTERFACE("9fd52741-176d-4b36-8f51-ca8f933223be")
   7863 IAMClockSlave : public IUnknown
   7864 {
   7865     virtual HRESULT STDMETHODCALLTYPE SetErrorTolerance(
   7866         DWORD dwTolerance) = 0;
   7867 
   7868     virtual HRESULT STDMETHODCALLTYPE GetErrorTolerance(
   7869         DWORD *pdwTolerance) = 0;
   7870 
   7871 };
   7872 #ifdef __CRT_UUID_DECL
   7873 __CRT_UUID_DECL(IAMClockSlave, 0x9fd52741, 0x176d, 0x4b36, 0x8f,0x51, 0xca,0x8f,0x93,0x32,0x23,0xbe)
   7874 #endif
   7875 #else
   7876 typedef struct IAMClockSlaveVtbl {
   7877     BEGIN_INTERFACE
   7878 
   7879     /*** IUnknown methods ***/
   7880     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7881         IAMClockSlave* This,
   7882         REFIID riid,
   7883         void **ppvObject);
   7884 
   7885     ULONG (STDMETHODCALLTYPE *AddRef)(
   7886         IAMClockSlave* This);
   7887 
   7888     ULONG (STDMETHODCALLTYPE *Release)(
   7889         IAMClockSlave* This);
   7890 
   7891     /*** IAMClockSlave methods ***/
   7892     HRESULT (STDMETHODCALLTYPE *SetErrorTolerance)(
   7893         IAMClockSlave* This,
   7894         DWORD dwTolerance);
   7895 
   7896     HRESULT (STDMETHODCALLTYPE *GetErrorTolerance)(
   7897         IAMClockSlave* This,
   7898         DWORD *pdwTolerance);
   7899 
   7900     END_INTERFACE
   7901 } IAMClockSlaveVtbl;
   7902 interface IAMClockSlave {
   7903     CONST_VTBL IAMClockSlaveVtbl* lpVtbl;
   7904 };
   7905 
   7906 #ifdef COBJMACROS
   7907 #ifndef WIDL_C_INLINE_WRAPPERS
   7908 /*** IUnknown methods ***/
   7909 #define IAMClockSlave_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7910 #define IAMClockSlave_AddRef(This) (This)->lpVtbl->AddRef(This)
   7911 #define IAMClockSlave_Release(This) (This)->lpVtbl->Release(This)
   7912 /*** IAMClockSlave methods ***/
   7913 #define IAMClockSlave_SetErrorTolerance(This,dwTolerance) (This)->lpVtbl->SetErrorTolerance(This,dwTolerance)
   7914 #define IAMClockSlave_GetErrorTolerance(This,pdwTolerance) (This)->lpVtbl->GetErrorTolerance(This,pdwTolerance)
   7915 #else
   7916 /*** IUnknown methods ***/
   7917 static FORCEINLINE HRESULT IAMClockSlave_QueryInterface(IAMClockSlave* This,REFIID riid,void **ppvObject) {
   7918     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7919 }
   7920 static FORCEINLINE ULONG IAMClockSlave_AddRef(IAMClockSlave* This) {
   7921     return This->lpVtbl->AddRef(This);
   7922 }
   7923 static FORCEINLINE ULONG IAMClockSlave_Release(IAMClockSlave* This) {
   7924     return This->lpVtbl->Release(This);
   7925 }
   7926 /*** IAMClockSlave methods ***/
   7927 static FORCEINLINE HRESULT IAMClockSlave_SetErrorTolerance(IAMClockSlave* This,DWORD dwTolerance) {
   7928     return This->lpVtbl->SetErrorTolerance(This,dwTolerance);
   7929 }
   7930 static FORCEINLINE HRESULT IAMClockSlave_GetErrorTolerance(IAMClockSlave* This,DWORD *pdwTolerance) {
   7931     return This->lpVtbl->GetErrorTolerance(This,pdwTolerance);
   7932 }
   7933 #endif
   7934 #endif
   7935 
   7936 #endif
   7937 
   7938 HRESULT STDMETHODCALLTYPE IAMClockSlave_SetErrorTolerance_Proxy(
   7939     IAMClockSlave* This,
   7940     DWORD dwTolerance);
   7941 void __RPC_STUB IAMClockSlave_SetErrorTolerance_Stub(
   7942     IRpcStubBuffer* This,
   7943     IRpcChannelBuffer* pRpcChannelBuffer,
   7944     PRPC_MESSAGE pRpcMessage,
   7945     DWORD* pdwStubPhase);
   7946 HRESULT STDMETHODCALLTYPE IAMClockSlave_GetErrorTolerance_Proxy(
   7947     IAMClockSlave* This,
   7948     DWORD *pdwTolerance);
   7949 void __RPC_STUB IAMClockSlave_GetErrorTolerance_Stub(
   7950     IRpcStubBuffer* This,
   7951     IRpcChannelBuffer* pRpcChannelBuffer,
   7952     PRPC_MESSAGE pRpcMessage,
   7953     DWORD* pdwStubPhase);
   7954 
   7955 #endif  /* __IAMClockSlave_INTERFACE_DEFINED__ */
   7956 
   7957 typedef struct _AMCOPPSignature {
   7958     BYTE Signature[256];
   7959 } AMCOPPSignature;
   7960 typedef struct _AMCOPPCommand {
   7961     GUID macKDI;
   7962     GUID guidCommandID;
   7963     DWORD dwSequence;
   7964     DWORD bSizeData;
   7965     BYTE CommandData[4056];
   7966 } AMCOPPCommand;
   7967 typedef struct _AMCOPPCommand *LPAMCOPPCommand;
   7968 typedef struct _AMCOPPStatusInput {
   7969     GUID rApp;
   7970     GUID guidStatusRequestID;
   7971     DWORD dwSequence;
   7972     DWORD cbSizeData;
   7973     BYTE StatusData[4056];
   7974 } AMCOPPStatusInput;
   7975 typedef struct _AMCOPPStatusInput *LPAMCOPPStatusInput;
   7976 typedef struct _AMCOPPStatusOutput {
   7977     GUID macKDI;
   7978     DWORD cbSizeData;
   7979     BYTE COPPStatus[4076];
   7980 } AMCOPPStatusOutput;
   7981 typedef struct _AMCOPPStatusOutput *LPAMCOPPStatusOutput;
   7982 /*****************************************************************************
   7983  * IAMCertifiedOutputProtection interface
   7984  */
   7985 #ifndef __IAMCertifiedOutputProtection_INTERFACE_DEFINED__
   7986 #define __IAMCertifiedOutputProtection_INTERFACE_DEFINED__
   7987 
   7988 DEFINE_GUID(IID_IAMCertifiedOutputProtection, 0x6feded3e, 0x0ff1, 0x4901, 0xa2,0xf1, 0x43,0xf7,0x01,0x2c,0x85,0x15);
   7989 #if defined(__cplusplus) && !defined(CINTERFACE)
   7990 MIDL_INTERFACE("6feded3e-0ff1-4901-a2f1-43f7012c8515")
   7991 IAMCertifiedOutputProtection : public IUnknown
   7992 {
   7993     virtual HRESULT STDMETHODCALLTYPE KeyExchange(
   7994         GUID *pRandom,
   7995         BYTE **VarLenCertGH,
   7996         DWORD *pdwLengthCertGH) = 0;
   7997 
   7998     virtual HRESULT STDMETHODCALLTYPE SessionSequenceStart(
   7999         AMCOPPSignature *pSig) = 0;
   8000 
   8001     virtual HRESULT STDMETHODCALLTYPE ProtectionCommand(
   8002         const AMCOPPCommand *cmd) = 0;
   8003 
   8004     virtual HRESULT STDMETHODCALLTYPE ProtectionStatus(
   8005         const AMCOPPStatusInput *pStatusInput,
   8006         AMCOPPStatusOutput *pStatusOutput) = 0;
   8007 
   8008 };
   8009 #ifdef __CRT_UUID_DECL
   8010 __CRT_UUID_DECL(IAMCertifiedOutputProtection, 0x6feded3e, 0x0ff1, 0x4901, 0xa2,0xf1, 0x43,0xf7,0x01,0x2c,0x85,0x15)
   8011 #endif
   8012 #else
   8013 typedef struct IAMCertifiedOutputProtectionVtbl {
   8014     BEGIN_INTERFACE
   8015 
   8016     /*** IUnknown methods ***/
   8017     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8018         IAMCertifiedOutputProtection* This,
   8019         REFIID riid,
   8020         void **ppvObject);
   8021 
   8022     ULONG (STDMETHODCALLTYPE *AddRef)(
   8023         IAMCertifiedOutputProtection* This);
   8024 
   8025     ULONG (STDMETHODCALLTYPE *Release)(
   8026         IAMCertifiedOutputProtection* This);
   8027 
   8028     /*** IAMCertifiedOutputProtection methods ***/
   8029     HRESULT (STDMETHODCALLTYPE *KeyExchange)(
   8030         IAMCertifiedOutputProtection* This,
   8031         GUID *pRandom,
   8032         BYTE **VarLenCertGH,
   8033         DWORD *pdwLengthCertGH);
   8034 
   8035     HRESULT (STDMETHODCALLTYPE *SessionSequenceStart)(
   8036         IAMCertifiedOutputProtection* This,
   8037         AMCOPPSignature *pSig);
   8038 
   8039     HRESULT (STDMETHODCALLTYPE *ProtectionCommand)(
   8040         IAMCertifiedOutputProtection* This,
   8041         const AMCOPPCommand *cmd);
   8042 
   8043     HRESULT (STDMETHODCALLTYPE *ProtectionStatus)(
   8044         IAMCertifiedOutputProtection* This,
   8045         const AMCOPPStatusInput *pStatusInput,
   8046         AMCOPPStatusOutput *pStatusOutput);
   8047 
   8048     END_INTERFACE
   8049 } IAMCertifiedOutputProtectionVtbl;
   8050 interface IAMCertifiedOutputProtection {
   8051     CONST_VTBL IAMCertifiedOutputProtectionVtbl* lpVtbl;
   8052 };
   8053 
   8054 #ifdef COBJMACROS
   8055 #ifndef WIDL_C_INLINE_WRAPPERS
   8056 /*** IUnknown methods ***/
   8057 #define IAMCertifiedOutputProtection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8058 #define IAMCertifiedOutputProtection_AddRef(This) (This)->lpVtbl->AddRef(This)
   8059 #define IAMCertifiedOutputProtection_Release(This) (This)->lpVtbl->Release(This)
   8060 /*** IAMCertifiedOutputProtection methods ***/
   8061 #define IAMCertifiedOutputProtection_KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH) (This)->lpVtbl->KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH)
   8062 #define IAMCertifiedOutputProtection_SessionSequenceStart(This,pSig) (This)->lpVtbl->SessionSequenceStart(This,pSig)
   8063 #define IAMCertifiedOutputProtection_ProtectionCommand(This,cmd) (This)->lpVtbl->ProtectionCommand(This,cmd)
   8064 #define IAMCertifiedOutputProtection_ProtectionStatus(This,pStatusInput,pStatusOutput) (This)->lpVtbl->ProtectionStatus(This,pStatusInput,pStatusOutput)
   8065 #else
   8066 /*** IUnknown methods ***/
   8067 static FORCEINLINE HRESULT IAMCertifiedOutputProtection_QueryInterface(IAMCertifiedOutputProtection* This,REFIID riid,void **ppvObject) {
   8068     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8069 }
   8070 static FORCEINLINE ULONG IAMCertifiedOutputProtection_AddRef(IAMCertifiedOutputProtection* This) {
   8071     return This->lpVtbl->AddRef(This);
   8072 }
   8073 static FORCEINLINE ULONG IAMCertifiedOutputProtection_Release(IAMCertifiedOutputProtection* This) {
   8074     return This->lpVtbl->Release(This);
   8075 }
   8076 /*** IAMCertifiedOutputProtection methods ***/
   8077 static FORCEINLINE HRESULT IAMCertifiedOutputProtection_KeyExchange(IAMCertifiedOutputProtection* This,GUID *pRandom,BYTE **VarLenCertGH,DWORD *pdwLengthCertGH) {
   8078     return This->lpVtbl->KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH);
   8079 }
   8080 static FORCEINLINE HRESULT IAMCertifiedOutputProtection_SessionSequenceStart(IAMCertifiedOutputProtection* This,AMCOPPSignature *pSig) {
   8081     return This->lpVtbl->SessionSequenceStart(This,pSig);
   8082 }
   8083 static FORCEINLINE HRESULT IAMCertifiedOutputProtection_ProtectionCommand(IAMCertifiedOutputProtection* This,const AMCOPPCommand *cmd) {
   8084     return This->lpVtbl->ProtectionCommand(This,cmd);
   8085 }
   8086 static FORCEINLINE HRESULT IAMCertifiedOutputProtection_ProtectionStatus(IAMCertifiedOutputProtection* This,const AMCOPPStatusInput *pStatusInput,AMCOPPStatusOutput *pStatusOutput) {
   8087     return This->lpVtbl->ProtectionStatus(This,pStatusInput,pStatusOutput);
   8088 }
   8089 #endif
   8090 #endif
   8091 
   8092 #endif
   8093 
   8094 HRESULT STDMETHODCALLTYPE IAMCertifiedOutputProtection_KeyExchange_Proxy(
   8095     IAMCertifiedOutputProtection* This,
   8096     GUID *pRandom,
   8097     BYTE **VarLenCertGH,
   8098     DWORD *pdwLengthCertGH);
   8099 void __RPC_STUB IAMCertifiedOutputProtection_KeyExchange_Stub(
   8100     IRpcStubBuffer* This,
   8101     IRpcChannelBuffer* pRpcChannelBuffer,
   8102     PRPC_MESSAGE pRpcMessage,
   8103     DWORD* pdwStubPhase);
   8104 HRESULT STDMETHODCALLTYPE IAMCertifiedOutputProtection_SessionSequenceStart_Proxy(
   8105     IAMCertifiedOutputProtection* This,
   8106     AMCOPPSignature *pSig);
   8107 void __RPC_STUB IAMCertifiedOutputProtection_SessionSequenceStart_Stub(
   8108     IRpcStubBuffer* This,
   8109     IRpcChannelBuffer* pRpcChannelBuffer,
   8110     PRPC_MESSAGE pRpcMessage,
   8111     DWORD* pdwStubPhase);
   8112 HRESULT STDMETHODCALLTYPE IAMCertifiedOutputProtection_ProtectionCommand_Proxy(
   8113     IAMCertifiedOutputProtection* This,
   8114     const AMCOPPCommand *cmd);
   8115 void __RPC_STUB IAMCertifiedOutputProtection_ProtectionCommand_Stub(
   8116     IRpcStubBuffer* This,
   8117     IRpcChannelBuffer* pRpcChannelBuffer,
   8118     PRPC_MESSAGE pRpcMessage,
   8119     DWORD* pdwStubPhase);
   8120 HRESULT STDMETHODCALLTYPE IAMCertifiedOutputProtection_ProtectionStatus_Proxy(
   8121     IAMCertifiedOutputProtection* This,
   8122     const AMCOPPStatusInput *pStatusInput,
   8123     AMCOPPStatusOutput *pStatusOutput);
   8124 void __RPC_STUB IAMCertifiedOutputProtection_ProtectionStatus_Stub(
   8125     IRpcStubBuffer* This,
   8126     IRpcChannelBuffer* pRpcChannelBuffer,
   8127     PRPC_MESSAGE pRpcMessage,
   8128     DWORD* pdwStubPhase);
   8129 
   8130 #endif  /* __IAMCertifiedOutputProtection_INTERFACE_DEFINED__ */
   8131 
   8132 enum _AM_RENSDEREXFLAGS {
   8133     AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x1
   8134 };
   8135 
   8136 /*****************************************************************************
   8137  * IFilterGraph2 interface
   8138  */
   8139 #ifndef __IFilterGraph2_INTERFACE_DEFINED__
   8140 #define __IFilterGraph2_INTERFACE_DEFINED__
   8141 
   8142 DEFINE_GUID(IID_IFilterGraph2, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
   8143 #if defined(__cplusplus) && !defined(CINTERFACE)
   8144 MIDL_INTERFACE("36b73882-c2c8-11cf-8b46-00805f6cef60")
   8145 IFilterGraph2 : public IGraphBuilder
   8146 {
   8147     virtual HRESULT STDMETHODCALLTYPE AddSourceFilterForMoniker(
   8148         IMoniker *pMoniker,
   8149         IBindCtx *pCtx,
   8150         LPCWSTR lpcwstrFilterName,
   8151         IBaseFilter **ppFilter) = 0;
   8152 
   8153     virtual HRESULT STDMETHODCALLTYPE ReconnectEx(
   8154         IPin *ppin,
   8155         const AM_MEDIA_TYPE *pmt) = 0;
   8156 
   8157     virtual HRESULT STDMETHODCALLTYPE RenderEx(
   8158         IPin *pPinOut,
   8159         DWORD dwFlags,
   8160         DWORD *pvContext) = 0;
   8161 
   8162 };
   8163 #ifdef __CRT_UUID_DECL
   8164 __CRT_UUID_DECL(IFilterGraph2, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
   8165 #endif
   8166 #else
   8167 typedef struct IFilterGraph2Vtbl {
   8168     BEGIN_INTERFACE
   8169 
   8170     /*** IUnknown methods ***/
   8171     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8172         IFilterGraph2* This,
   8173         REFIID riid,
   8174         void **ppvObject);
   8175 
   8176     ULONG (STDMETHODCALLTYPE *AddRef)(
   8177         IFilterGraph2* This);
   8178 
   8179     ULONG (STDMETHODCALLTYPE *Release)(
   8180         IFilterGraph2* This);
   8181 
   8182     /*** IFilterGraph methods ***/
   8183     HRESULT (STDMETHODCALLTYPE *AddFilter)(
   8184         IFilterGraph2* This,
   8185         IBaseFilter *pFilter,
   8186         LPCWSTR pName);
   8187 
   8188     HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
   8189         IFilterGraph2* This,
   8190         IBaseFilter *pFilter);
   8191 
   8192     HRESULT (STDMETHODCALLTYPE *EnumFilters)(
   8193         IFilterGraph2* This,
   8194         IEnumFilters **ppEnum);
   8195 
   8196     HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
   8197         IFilterGraph2* This,
   8198         LPCWSTR pName,
   8199         IBaseFilter **ppFilter);
   8200 
   8201     HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
   8202         IFilterGraph2* This,
   8203         IPin *ppinOut,
   8204         IPin *ppinIn,
   8205         const AM_MEDIA_TYPE *pmt);
   8206 
   8207     HRESULT (STDMETHODCALLTYPE *Reconnect)(
   8208         IFilterGraph2* This,
   8209         IPin *ppin);
   8210 
   8211     HRESULT (STDMETHODCALLTYPE *Disconnect)(
   8212         IFilterGraph2* This,
   8213         IPin *ppin);
   8214 
   8215     HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
   8216         IFilterGraph2* This);
   8217 
   8218     /*** IGraphBuilder methods ***/
   8219     HRESULT (STDMETHODCALLTYPE *Connect)(
   8220         IFilterGraph2* This,
   8221         IPin *ppinOut,
   8222         IPin *ppinIn);
   8223 
   8224     HRESULT (STDMETHODCALLTYPE *Render)(
   8225         IFilterGraph2* This,
   8226         IPin *ppinOut);
   8227 
   8228     HRESULT (STDMETHODCALLTYPE *RenderFile)(
   8229         IFilterGraph2* This,
   8230         LPCWSTR lpcwstrFile,
   8231         LPCWSTR lpcwstrPlayList);
   8232 
   8233     HRESULT (STDMETHODCALLTYPE *AddSourceFilter)(
   8234         IFilterGraph2* This,
   8235         LPCWSTR lpcwstrFileName,
   8236         LPCWSTR lpcwstrFilterName,
   8237         IBaseFilter **ppFilter);
   8238 
   8239     HRESULT (STDMETHODCALLTYPE *SetLogFile)(
   8240         IFilterGraph2* This,
   8241         DWORD_PTR hFile);
   8242 
   8243     HRESULT (STDMETHODCALLTYPE *Abort)(
   8244         IFilterGraph2* This);
   8245 
   8246     HRESULT (STDMETHODCALLTYPE *ShouldOperationContinue)(
   8247         IFilterGraph2* This);
   8248 
   8249     /*** IFilterGraph2 methods ***/
   8250     HRESULT (STDMETHODCALLTYPE *AddSourceFilterForMoniker)(
   8251         IFilterGraph2* This,
   8252         IMoniker *pMoniker,
   8253         IBindCtx *pCtx,
   8254         LPCWSTR lpcwstrFilterName,
   8255         IBaseFilter **ppFilter);
   8256 
   8257     HRESULT (STDMETHODCALLTYPE *ReconnectEx)(
   8258         IFilterGraph2* This,
   8259         IPin *ppin,
   8260         const AM_MEDIA_TYPE *pmt);
   8261 
   8262     HRESULT (STDMETHODCALLTYPE *RenderEx)(
   8263         IFilterGraph2* This,
   8264         IPin *pPinOut,
   8265         DWORD dwFlags,
   8266         DWORD *pvContext);
   8267 
   8268     END_INTERFACE
   8269 } IFilterGraph2Vtbl;
   8270 interface IFilterGraph2 {
   8271     CONST_VTBL IFilterGraph2Vtbl* lpVtbl;
   8272 };
   8273 
   8274 #ifdef COBJMACROS
   8275 #ifndef WIDL_C_INLINE_WRAPPERS
   8276 /*** IUnknown methods ***/
   8277 #define IFilterGraph2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8278 #define IFilterGraph2_AddRef(This) (This)->lpVtbl->AddRef(This)
   8279 #define IFilterGraph2_Release(This) (This)->lpVtbl->Release(This)
   8280 /*** IFilterGraph methods ***/
   8281 #define IFilterGraph2_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
   8282 #define IFilterGraph2_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
   8283 #define IFilterGraph2_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
   8284 #define IFilterGraph2_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
   8285 #define IFilterGraph2_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
   8286 #define IFilterGraph2_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
   8287 #define IFilterGraph2_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
   8288 #define IFilterGraph2_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
   8289 /*** IGraphBuilder methods ***/
   8290 #define IFilterGraph2_Connect(This,ppinOut,ppinIn) (This)->lpVtbl->Connect(This,ppinOut,ppinIn)
   8291 #define IFilterGraph2_Render(This,ppinOut) (This)->lpVtbl->Render(This,ppinOut)
   8292 #define IFilterGraph2_RenderFile(This,lpcwstrFile,lpcwstrPlayList) (This)->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList)
   8293 #define IFilterGraph2_AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter)
   8294 #define IFilterGraph2_SetLogFile(This,hFile) (This)->lpVtbl->SetLogFile(This,hFile)
   8295 #define IFilterGraph2_Abort(This) (This)->lpVtbl->Abort(This)
   8296 #define IFilterGraph2_ShouldOperationContinue(This) (This)->lpVtbl->ShouldOperationContinue(This)
   8297 /*** IFilterGraph2 methods ***/
   8298 #define IFilterGraph2_AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter)
   8299 #define IFilterGraph2_ReconnectEx(This,ppin,pmt) (This)->lpVtbl->ReconnectEx(This,ppin,pmt)
   8300 #define IFilterGraph2_RenderEx(This,pPinOut,dwFlags,pvContext) (This)->lpVtbl->RenderEx(This,pPinOut,dwFlags,pvContext)
   8301 #else
   8302 /*** IUnknown methods ***/
   8303 static FORCEINLINE HRESULT IFilterGraph2_QueryInterface(IFilterGraph2* This,REFIID riid,void **ppvObject) {
   8304     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8305 }
   8306 static FORCEINLINE ULONG IFilterGraph2_AddRef(IFilterGraph2* This) {
   8307     return This->lpVtbl->AddRef(This);
   8308 }
   8309 static FORCEINLINE ULONG IFilterGraph2_Release(IFilterGraph2* This) {
   8310     return This->lpVtbl->Release(This);
   8311 }
   8312 /*** IFilterGraph methods ***/
   8313 static FORCEINLINE HRESULT IFilterGraph2_AddFilter(IFilterGraph2* This,IBaseFilter *pFilter,LPCWSTR pName) {
   8314     return This->lpVtbl->AddFilter(This,pFilter,pName);
   8315 }
   8316 static FORCEINLINE HRESULT IFilterGraph2_RemoveFilter(IFilterGraph2* This,IBaseFilter *pFilter) {
   8317     return This->lpVtbl->RemoveFilter(This,pFilter);
   8318 }
   8319 static FORCEINLINE HRESULT IFilterGraph2_EnumFilters(IFilterGraph2* This,IEnumFilters **ppEnum) {
   8320     return This->lpVtbl->EnumFilters(This,ppEnum);
   8321 }
   8322 static FORCEINLINE HRESULT IFilterGraph2_FindFilterByName(IFilterGraph2* This,LPCWSTR pName,IBaseFilter **ppFilter) {
   8323     return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
   8324 }
   8325 static FORCEINLINE HRESULT IFilterGraph2_ConnectDirect(IFilterGraph2* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) {
   8326     return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt);
   8327 }
   8328 static FORCEINLINE HRESULT IFilterGraph2_Reconnect(IFilterGraph2* This,IPin *ppin) {
   8329     return This->lpVtbl->Reconnect(This,ppin);
   8330 }
   8331 static FORCEINLINE HRESULT IFilterGraph2_Disconnect(IFilterGraph2* This,IPin *ppin) {
   8332     return This->lpVtbl->Disconnect(This,ppin);
   8333 }
   8334 static FORCEINLINE HRESULT IFilterGraph2_SetDefaultSyncSource(IFilterGraph2* This) {
   8335     return This->lpVtbl->SetDefaultSyncSource(This);
   8336 }
   8337 /*** IGraphBuilder methods ***/
   8338 static FORCEINLINE HRESULT IFilterGraph2_Connect(IFilterGraph2* This,IPin *ppinOut,IPin *ppinIn) {
   8339     return This->lpVtbl->Connect(This,ppinOut,ppinIn);
   8340 }
   8341 static FORCEINLINE HRESULT IFilterGraph2_Render(IFilterGraph2* This,IPin *ppinOut) {
   8342     return This->lpVtbl->Render(This,ppinOut);
   8343 }
   8344 static FORCEINLINE HRESULT IFilterGraph2_RenderFile(IFilterGraph2* This,LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList) {
   8345     return This->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList);
   8346 }
   8347 static FORCEINLINE HRESULT IFilterGraph2_AddSourceFilter(IFilterGraph2* This,LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) {
   8348     return This->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter);
   8349 }
   8350 static FORCEINLINE HRESULT IFilterGraph2_SetLogFile(IFilterGraph2* This,DWORD_PTR hFile) {
   8351     return This->lpVtbl->SetLogFile(This,hFile);
   8352 }
   8353 static FORCEINLINE HRESULT IFilterGraph2_Abort(IFilterGraph2* This) {
   8354     return This->lpVtbl->Abort(This);
   8355 }
   8356 static FORCEINLINE HRESULT IFilterGraph2_ShouldOperationContinue(IFilterGraph2* This) {
   8357     return This->lpVtbl->ShouldOperationContinue(This);
   8358 }
   8359 /*** IFilterGraph2 methods ***/
   8360 static FORCEINLINE HRESULT IFilterGraph2_AddSourceFilterForMoniker(IFilterGraph2* This,IMoniker *pMoniker,IBindCtx *pCtx,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) {
   8361     return This->lpVtbl->AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter);
   8362 }
   8363 static FORCEINLINE HRESULT IFilterGraph2_ReconnectEx(IFilterGraph2* This,IPin *ppin,const AM_MEDIA_TYPE *pmt) {
   8364     return This->lpVtbl->ReconnectEx(This,ppin,pmt);
   8365 }
   8366 static FORCEINLINE HRESULT IFilterGraph2_RenderEx(IFilterGraph2* This,IPin *pPinOut,DWORD dwFlags,DWORD *pvContext) {
   8367     return This->lpVtbl->RenderEx(This,pPinOut,dwFlags,pvContext);
   8368 }
   8369 #endif
   8370 #endif
   8371 
   8372 #endif
   8373 
   8374 HRESULT STDMETHODCALLTYPE IFilterGraph2_AddSourceFilterForMoniker_Proxy(
   8375     IFilterGraph2* This,
   8376     IMoniker *pMoniker,
   8377     IBindCtx *pCtx,
   8378     LPCWSTR lpcwstrFilterName,
   8379     IBaseFilter **ppFilter);
   8380 void __RPC_STUB IFilterGraph2_AddSourceFilterForMoniker_Stub(
   8381     IRpcStubBuffer* This,
   8382     IRpcChannelBuffer* pRpcChannelBuffer,
   8383     PRPC_MESSAGE pRpcMessage,
   8384     DWORD* pdwStubPhase);
   8385 HRESULT STDMETHODCALLTYPE IFilterGraph2_ReconnectEx_Proxy(
   8386     IFilterGraph2* This,
   8387     IPin *ppin,
   8388     const AM_MEDIA_TYPE *pmt);
   8389 void __RPC_STUB IFilterGraph2_ReconnectEx_Stub(
   8390     IRpcStubBuffer* This,
   8391     IRpcChannelBuffer* pRpcChannelBuffer,
   8392     PRPC_MESSAGE pRpcMessage,
   8393     DWORD* pdwStubPhase);
   8394 HRESULT STDMETHODCALLTYPE IFilterGraph2_RenderEx_Proxy(
   8395     IFilterGraph2* This,
   8396     IPin *pPinOut,
   8397     DWORD dwFlags,
   8398     DWORD *pvContext);
   8399 void __RPC_STUB IFilterGraph2_RenderEx_Stub(
   8400     IRpcStubBuffer* This,
   8401     IRpcChannelBuffer* pRpcChannelBuffer,
   8402     PRPC_MESSAGE pRpcMessage,
   8403     DWORD* pdwStubPhase);
   8404 
   8405 #endif  /* __IFilterGraph2_INTERFACE_DEFINED__ */
   8406 
   8407 /*****************************************************************************
   8408  * IStreamBuilder interface
   8409  */
   8410 #ifndef __IStreamBuilder_INTERFACE_DEFINED__
   8411 #define __IStreamBuilder_INTERFACE_DEFINED__
   8412 
   8413 DEFINE_GUID(IID_IStreamBuilder, 0x56a868bf, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   8414 #if defined(__cplusplus) && !defined(CINTERFACE)
   8415 MIDL_INTERFACE("56a868bf-0ad4-11ce-b03a-0020af0ba770")
   8416 IStreamBuilder : public IUnknown
   8417 {
   8418     virtual HRESULT STDMETHODCALLTYPE Render(
   8419         IPin *ppinOut,
   8420         IGraphBuilder *pGraph) = 0;
   8421 
   8422     virtual HRESULT STDMETHODCALLTYPE Backout(
   8423         IPin *ppinOut,
   8424         IGraphBuilder *pGraph) = 0;
   8425 
   8426 };
   8427 #ifdef __CRT_UUID_DECL
   8428 __CRT_UUID_DECL(IStreamBuilder, 0x56a868bf, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   8429 #endif
   8430 #else
   8431 typedef struct IStreamBuilderVtbl {
   8432     BEGIN_INTERFACE
   8433 
   8434     /*** IUnknown methods ***/
   8435     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8436         IStreamBuilder* This,
   8437         REFIID riid,
   8438         void **ppvObject);
   8439 
   8440     ULONG (STDMETHODCALLTYPE *AddRef)(
   8441         IStreamBuilder* This);
   8442 
   8443     ULONG (STDMETHODCALLTYPE *Release)(
   8444         IStreamBuilder* This);
   8445 
   8446     /*** IStreamBuilder methods ***/
   8447     HRESULT (STDMETHODCALLTYPE *Render)(
   8448         IStreamBuilder* This,
   8449         IPin *ppinOut,
   8450         IGraphBuilder *pGraph);
   8451 
   8452     HRESULT (STDMETHODCALLTYPE *Backout)(
   8453         IStreamBuilder* This,
   8454         IPin *ppinOut,
   8455         IGraphBuilder *pGraph);
   8456 
   8457     END_INTERFACE
   8458 } IStreamBuilderVtbl;
   8459 interface IStreamBuilder {
   8460     CONST_VTBL IStreamBuilderVtbl* lpVtbl;
   8461 };
   8462 
   8463 #ifdef COBJMACROS
   8464 #ifndef WIDL_C_INLINE_WRAPPERS
   8465 /*** IUnknown methods ***/
   8466 #define IStreamBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8467 #define IStreamBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
   8468 #define IStreamBuilder_Release(This) (This)->lpVtbl->Release(This)
   8469 /*** IStreamBuilder methods ***/
   8470 #define IStreamBuilder_Render(This,ppinOut,pGraph) (This)->lpVtbl->Render(This,ppinOut,pGraph)
   8471 #define IStreamBuilder_Backout(This,ppinOut,pGraph) (This)->lpVtbl->Backout(This,ppinOut,pGraph)
   8472 #else
   8473 /*** IUnknown methods ***/
   8474 static FORCEINLINE HRESULT IStreamBuilder_QueryInterface(IStreamBuilder* This,REFIID riid,void **ppvObject) {
   8475     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8476 }
   8477 static FORCEINLINE ULONG IStreamBuilder_AddRef(IStreamBuilder* This) {
   8478     return This->lpVtbl->AddRef(This);
   8479 }
   8480 static FORCEINLINE ULONG IStreamBuilder_Release(IStreamBuilder* This) {
   8481     return This->lpVtbl->Release(This);
   8482 }
   8483 /*** IStreamBuilder methods ***/
   8484 static FORCEINLINE HRESULT IStreamBuilder_Render(IStreamBuilder* This,IPin *ppinOut,IGraphBuilder *pGraph) {
   8485     return This->lpVtbl->Render(This,ppinOut,pGraph);
   8486 }
   8487 static FORCEINLINE HRESULT IStreamBuilder_Backout(IStreamBuilder* This,IPin *ppinOut,IGraphBuilder *pGraph) {
   8488     return This->lpVtbl->Backout(This,ppinOut,pGraph);
   8489 }
   8490 #endif
   8491 #endif
   8492 
   8493 #endif
   8494 
   8495 HRESULT STDMETHODCALLTYPE IStreamBuilder_Render_Proxy(
   8496     IStreamBuilder* This,
   8497     IPin *ppinOut,
   8498     IGraphBuilder *pGraph);
   8499 void __RPC_STUB IStreamBuilder_Render_Stub(
   8500     IRpcStubBuffer* This,
   8501     IRpcChannelBuffer* pRpcChannelBuffer,
   8502     PRPC_MESSAGE pRpcMessage,
   8503     DWORD* pdwStubPhase);
   8504 HRESULT STDMETHODCALLTYPE IStreamBuilder_Backout_Proxy(
   8505     IStreamBuilder* This,
   8506     IPin *ppinOut,
   8507     IGraphBuilder *pGraph);
   8508 void __RPC_STUB IStreamBuilder_Backout_Stub(
   8509     IRpcStubBuffer* This,
   8510     IRpcChannelBuffer* pRpcChannelBuffer,
   8511     PRPC_MESSAGE pRpcMessage,
   8512     DWORD* pdwStubPhase);
   8513 
   8514 #endif  /* __IStreamBuilder_INTERFACE_DEFINED__ */
   8515 
   8516 /*****************************************************************************
   8517  * IAMStreamConfig interface
   8518  */
   8519 #ifndef __IAMStreamConfig_INTERFACE_DEFINED__
   8520 #define __IAMStreamConfig_INTERFACE_DEFINED__
   8521 
   8522 typedef struct _VIDEO_STREAM_CONFIG_CAPS {
   8523     GUID guid;
   8524     ULONG VideoStandard;
   8525     SIZE InputSize;
   8526     SIZE MinCroppingSize;
   8527     SIZE MaxCroppingSize;
   8528     int CropGranularityX;
   8529     int CropGranularityY;
   8530     int CropAlignX;
   8531     int CropAlignY;
   8532     SIZE MinOutputSize;
   8533     SIZE MaxOutputSize;
   8534     int OutputGranularityX;
   8535     int OutputGranularityY;
   8536     int StretchTapsX;
   8537     int StretchTapsY;
   8538     int ShrinkTapsX;
   8539     int ShrinkTapsY;
   8540     LONGLONG MinFrameInterval;
   8541     LONGLONG MaxFrameInterval;
   8542     LONG MinBitsPerSecond;
   8543     LONG MaxBitsPerSecond;
   8544 } VIDEO_STREAM_CONFIG_CAPS;
   8545 typedef struct _AUDIO_STREAM_CONFIG_CAPS {
   8546     GUID guid;
   8547     ULONG MinimumChannels;
   8548     ULONG MaximumChannels;
   8549     ULONG ChannelsGranularity;
   8550     ULONG MinimumBitsPerSample;
   8551     ULONG MaximumBitsPerSample;
   8552     ULONG BitsPerSampleGranularity;
   8553     ULONG MinimumSampleFrequency;
   8554     ULONG MaximumSampleFrequency;
   8555     ULONG SampleFrequencyGranularity;
   8556 } AUDIO_STREAM_CONFIG_CAPS;
   8557 DEFINE_GUID(IID_IAMStreamConfig, 0xc6e13340, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
   8558 #if defined(__cplusplus) && !defined(CINTERFACE)
   8559 MIDL_INTERFACE("c6e13340-30ac-11d0-a18c-00a0c9118956")
   8560 IAMStreamConfig : public IUnknown
   8561 {
   8562     virtual HRESULT STDMETHODCALLTYPE SetFormat(
   8563         AM_MEDIA_TYPE *pmt) = 0;
   8564 
   8565     virtual HRESULT STDMETHODCALLTYPE GetFormat(
   8566         AM_MEDIA_TYPE **pmt) = 0;
   8567 
   8568     virtual HRESULT STDMETHODCALLTYPE GetNumberOfCapabilities(
   8569         int *piCount,
   8570         int *piSize) = 0;
   8571 
   8572     virtual HRESULT STDMETHODCALLTYPE GetStreamCaps(
   8573         int iIndex,
   8574         AM_MEDIA_TYPE **pmt,
   8575         BYTE *pSCC) = 0;
   8576 
   8577 };
   8578 #ifdef __CRT_UUID_DECL
   8579 __CRT_UUID_DECL(IAMStreamConfig, 0xc6e13340, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
   8580 #endif
   8581 #else
   8582 typedef struct IAMStreamConfigVtbl {
   8583     BEGIN_INTERFACE
   8584 
   8585     /*** IUnknown methods ***/
   8586     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8587         IAMStreamConfig* This,
   8588         REFIID riid,
   8589         void **ppvObject);
   8590 
   8591     ULONG (STDMETHODCALLTYPE *AddRef)(
   8592         IAMStreamConfig* This);
   8593 
   8594     ULONG (STDMETHODCALLTYPE *Release)(
   8595         IAMStreamConfig* This);
   8596 
   8597     /*** IAMStreamConfig methods ***/
   8598     HRESULT (STDMETHODCALLTYPE *SetFormat)(
   8599         IAMStreamConfig* This,
   8600         AM_MEDIA_TYPE *pmt);
   8601 
   8602     HRESULT (STDMETHODCALLTYPE *GetFormat)(
   8603         IAMStreamConfig* This,
   8604         AM_MEDIA_TYPE **pmt);
   8605 
   8606     HRESULT (STDMETHODCALLTYPE *GetNumberOfCapabilities)(
   8607         IAMStreamConfig* This,
   8608         int *piCount,
   8609         int *piSize);
   8610 
   8611     HRESULT (STDMETHODCALLTYPE *GetStreamCaps)(
   8612         IAMStreamConfig* This,
   8613         int iIndex,
   8614         AM_MEDIA_TYPE **pmt,
   8615         BYTE *pSCC);
   8616 
   8617     END_INTERFACE
   8618 } IAMStreamConfigVtbl;
   8619 interface IAMStreamConfig {
   8620     CONST_VTBL IAMStreamConfigVtbl* lpVtbl;
   8621 };
   8622 
   8623 #ifdef COBJMACROS
   8624 #ifndef WIDL_C_INLINE_WRAPPERS
   8625 /*** IUnknown methods ***/
   8626 #define IAMStreamConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8627 #define IAMStreamConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
   8628 #define IAMStreamConfig_Release(This) (This)->lpVtbl->Release(This)
   8629 /*** IAMStreamConfig methods ***/
   8630 #define IAMStreamConfig_SetFormat(This,pmt) (This)->lpVtbl->SetFormat(This,pmt)
   8631 #define IAMStreamConfig_GetFormat(This,pmt) (This)->lpVtbl->GetFormat(This,pmt)
   8632 #define IAMStreamConfig_GetNumberOfCapabilities(This,piCount,piSize) (This)->lpVtbl->GetNumberOfCapabilities(This,piCount,piSize)
   8633 #define IAMStreamConfig_GetStreamCaps(This,iIndex,pmt,pSCC) (This)->lpVtbl->GetStreamCaps(This,iIndex,pmt,pSCC)
   8634 #else
   8635 /*** IUnknown methods ***/
   8636 static FORCEINLINE HRESULT IAMStreamConfig_QueryInterface(IAMStreamConfig* This,REFIID riid,void **ppvObject) {
   8637     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8638 }
   8639 static FORCEINLINE ULONG IAMStreamConfig_AddRef(IAMStreamConfig* This) {
   8640     return This->lpVtbl->AddRef(This);
   8641 }
   8642 static FORCEINLINE ULONG IAMStreamConfig_Release(IAMStreamConfig* This) {
   8643     return This->lpVtbl->Release(This);
   8644 }
   8645 /*** IAMStreamConfig methods ***/
   8646 static FORCEINLINE HRESULT IAMStreamConfig_SetFormat(IAMStreamConfig* This,AM_MEDIA_TYPE *pmt) {
   8647     return This->lpVtbl->SetFormat(This,pmt);
   8648 }
   8649 static FORCEINLINE HRESULT IAMStreamConfig_GetFormat(IAMStreamConfig* This,AM_MEDIA_TYPE **pmt) {
   8650     return This->lpVtbl->GetFormat(This,pmt);
   8651 }
   8652 static FORCEINLINE HRESULT IAMStreamConfig_GetNumberOfCapabilities(IAMStreamConfig* This,int *piCount,int *piSize) {
   8653     return This->lpVtbl->GetNumberOfCapabilities(This,piCount,piSize);
   8654 }
   8655 static FORCEINLINE HRESULT IAMStreamConfig_GetStreamCaps(IAMStreamConfig* This,int iIndex,AM_MEDIA_TYPE **pmt,BYTE *pSCC) {
   8656     return This->lpVtbl->GetStreamCaps(This,iIndex,pmt,pSCC);
   8657 }
   8658 #endif
   8659 #endif
   8660 
   8661 #endif
   8662 
   8663 HRESULT STDMETHODCALLTYPE IAMStreamConfig_SetFormat_Proxy(
   8664     IAMStreamConfig* This,
   8665     AM_MEDIA_TYPE *pmt);
   8666 void __RPC_STUB IAMStreamConfig_SetFormat_Stub(
   8667     IRpcStubBuffer* This,
   8668     IRpcChannelBuffer* pRpcChannelBuffer,
   8669     PRPC_MESSAGE pRpcMessage,
   8670     DWORD* pdwStubPhase);
   8671 HRESULT STDMETHODCALLTYPE IAMStreamConfig_GetFormat_Proxy(
   8672     IAMStreamConfig* This,
   8673     AM_MEDIA_TYPE **pmt);
   8674 void __RPC_STUB IAMStreamConfig_GetFormat_Stub(
   8675     IRpcStubBuffer* This,
   8676     IRpcChannelBuffer* pRpcChannelBuffer,
   8677     PRPC_MESSAGE pRpcMessage,
   8678     DWORD* pdwStubPhase);
   8679 HRESULT STDMETHODCALLTYPE IAMStreamConfig_GetNumberOfCapabilities_Proxy(
   8680     IAMStreamConfig* This,
   8681     int *piCount,
   8682     int *piSize);
   8683 void __RPC_STUB IAMStreamConfig_GetNumberOfCapabilities_Stub(
   8684     IRpcStubBuffer* This,
   8685     IRpcChannelBuffer* pRpcChannelBuffer,
   8686     PRPC_MESSAGE pRpcMessage,
   8687     DWORD* pdwStubPhase);
   8688 HRESULT STDMETHODCALLTYPE IAMStreamConfig_GetStreamCaps_Proxy(
   8689     IAMStreamConfig* This,
   8690     int iIndex,
   8691     AM_MEDIA_TYPE **pmt,
   8692     BYTE *pSCC);
   8693 void __RPC_STUB IAMStreamConfig_GetStreamCaps_Stub(
   8694     IRpcStubBuffer* This,
   8695     IRpcChannelBuffer* pRpcChannelBuffer,
   8696     PRPC_MESSAGE pRpcMessage,
   8697     DWORD* pdwStubPhase);
   8698 
   8699 #endif  /* __IAMStreamConfig_INTERFACE_DEFINED__ */
   8700 
   8701 typedef enum tagVideoProcAmpProperty {
   8702     VideoProcAmp_Brightness = 0,
   8703     VideoProcAmp_Contrast = 1,
   8704     VideoProcAmp_Hue = 2,
   8705     VideoProcAmp_Saturation = 3,
   8706     VideoProcAmp_Sharpness = 4,
   8707     VideoProcAmp_Gamma = 5,
   8708     VideoProcAmp_ColorEnable = 6,
   8709     VideoProcAmp_WhiteBalance = 7,
   8710     VideoProcAmp_BacklightCompensation = 8,
   8711     VideoProcAmp_Gain = 9
   8712 } VideoProcAmpProperty;
   8713 typedef enum tagVideoProcAmpFlags {
   8714     VideoProcAmp_Flags_Auto = 0x1,
   8715     VideoProcAmp_Flags_Manual = 0x2
   8716 } VideoProcAmpFlags;
   8717 /*****************************************************************************
   8718  * IAMVideoProcAmp interface
   8719  */
   8720 #ifndef __IAMVideoProcAmp_INTERFACE_DEFINED__
   8721 #define __IAMVideoProcAmp_INTERFACE_DEFINED__
   8722 
   8723 DEFINE_GUID(IID_IAMVideoProcAmp, 0xc6e13360, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
   8724 #if defined(__cplusplus) && !defined(CINTERFACE)
   8725 MIDL_INTERFACE("c6e13360-30ac-11d0-a18c-00a0c9118956")
   8726 IAMVideoProcAmp : public IUnknown
   8727 {
   8728     virtual HRESULT STDMETHODCALLTYPE GetRange(
   8729         LONG Property,
   8730         LONG *pMin,
   8731         LONG *pMax,
   8732         LONG *pSteppingDelta,
   8733         LONG *pDefault,
   8734         LONG *pCapsFlags) = 0;
   8735 
   8736     virtual HRESULT STDMETHODCALLTYPE Set(
   8737         LONG Property,
   8738         LONG lValue,
   8739         LONG Flags) = 0;
   8740 
   8741     virtual HRESULT STDMETHODCALLTYPE Get(
   8742         LONG Property,
   8743         LONG *lValue,
   8744         LONG *Flags) = 0;
   8745 
   8746 };
   8747 #ifdef __CRT_UUID_DECL
   8748 __CRT_UUID_DECL(IAMVideoProcAmp, 0xc6e13360, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
   8749 #endif
   8750 #else
   8751 typedef struct IAMVideoProcAmpVtbl {
   8752     BEGIN_INTERFACE
   8753 
   8754     /*** IUnknown methods ***/
   8755     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8756         IAMVideoProcAmp* This,
   8757         REFIID riid,
   8758         void **ppvObject);
   8759 
   8760     ULONG (STDMETHODCALLTYPE *AddRef)(
   8761         IAMVideoProcAmp* This);
   8762 
   8763     ULONG (STDMETHODCALLTYPE *Release)(
   8764         IAMVideoProcAmp* This);
   8765 
   8766     /*** IAMVideoProcAmp methods ***/
   8767     HRESULT (STDMETHODCALLTYPE *GetRange)(
   8768         IAMVideoProcAmp* This,
   8769         LONG Property,
   8770         LONG *pMin,
   8771         LONG *pMax,
   8772         LONG *pSteppingDelta,
   8773         LONG *pDefault,
   8774         LONG *pCapsFlags);
   8775 
   8776     HRESULT (STDMETHODCALLTYPE *Set)(
   8777         IAMVideoProcAmp* This,
   8778         LONG Property,
   8779         LONG lValue,
   8780         LONG Flags);
   8781 
   8782     HRESULT (STDMETHODCALLTYPE *Get)(
   8783         IAMVideoProcAmp* This,
   8784         LONG Property,
   8785         LONG *lValue,
   8786         LONG *Flags);
   8787 
   8788     END_INTERFACE
   8789 } IAMVideoProcAmpVtbl;
   8790 interface IAMVideoProcAmp {
   8791     CONST_VTBL IAMVideoProcAmpVtbl* lpVtbl;
   8792 };
   8793 
   8794 #ifdef COBJMACROS
   8795 #ifndef WIDL_C_INLINE_WRAPPERS
   8796 /*** IUnknown methods ***/
   8797 #define IAMVideoProcAmp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8798 #define IAMVideoProcAmp_AddRef(This) (This)->lpVtbl->AddRef(This)
   8799 #define IAMVideoProcAmp_Release(This) (This)->lpVtbl->Release(This)
   8800 /*** IAMVideoProcAmp methods ***/
   8801 #define IAMVideoProcAmp_GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags) (This)->lpVtbl->GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags)
   8802 #define IAMVideoProcAmp_Set(This,Property,lValue,Flags) (This)->lpVtbl->Set(This,Property,lValue,Flags)
   8803 #define IAMVideoProcAmp_Get(This,Property,lValue,Flags) (This)->lpVtbl->Get(This,Property,lValue,Flags)
   8804 #else
   8805 /*** IUnknown methods ***/
   8806 static FORCEINLINE HRESULT IAMVideoProcAmp_QueryInterface(IAMVideoProcAmp* This,REFIID riid,void **ppvObject) {
   8807     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8808 }
   8809 static FORCEINLINE ULONG IAMVideoProcAmp_AddRef(IAMVideoProcAmp* This) {
   8810     return This->lpVtbl->AddRef(This);
   8811 }
   8812 static FORCEINLINE ULONG IAMVideoProcAmp_Release(IAMVideoProcAmp* This) {
   8813     return This->lpVtbl->Release(This);
   8814 }
   8815 /*** IAMVideoProcAmp methods ***/
   8816 static FORCEINLINE HRESULT IAMVideoProcAmp_GetRange(IAMVideoProcAmp* This,LONG Property,LONG *pMin,LONG *pMax,LONG *pSteppingDelta,LONG *pDefault,LONG *pCapsFlags) {
   8817     return This->lpVtbl->GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags);
   8818 }
   8819 static FORCEINLINE HRESULT IAMVideoProcAmp_Set(IAMVideoProcAmp* This,LONG Property,LONG lValue,LONG Flags) {
   8820     return This->lpVtbl->Set(This,Property,lValue,Flags);
   8821 }
   8822 static FORCEINLINE HRESULT IAMVideoProcAmp_Get(IAMVideoProcAmp* This,LONG Property,LONG *lValue,LONG *Flags) {
   8823     return This->lpVtbl->Get(This,Property,lValue,Flags);
   8824 }
   8825 #endif
   8826 #endif
   8827 
   8828 #endif
   8829 
   8830 HRESULT STDMETHODCALLTYPE IAMVideoProcAmp_GetRange_Proxy(
   8831     IAMVideoProcAmp* This,
   8832     LONG Property,
   8833     LONG *pMin,
   8834     LONG *pMax,
   8835     LONG *pSteppingDelta,
   8836     LONG *pDefault,
   8837     LONG *pCapsFlags);
   8838 void __RPC_STUB IAMVideoProcAmp_GetRange_Stub(
   8839     IRpcStubBuffer* This,
   8840     IRpcChannelBuffer* pRpcChannelBuffer,
   8841     PRPC_MESSAGE pRpcMessage,
   8842     DWORD* pdwStubPhase);
   8843 HRESULT STDMETHODCALLTYPE IAMVideoProcAmp_Set_Proxy(
   8844     IAMVideoProcAmp* This,
   8845     LONG Property,
   8846     LONG lValue,
   8847     LONG Flags);
   8848 void __RPC_STUB IAMVideoProcAmp_Set_Stub(
   8849     IRpcStubBuffer* This,
   8850     IRpcChannelBuffer* pRpcChannelBuffer,
   8851     PRPC_MESSAGE pRpcMessage,
   8852     DWORD* pdwStubPhase);
   8853 HRESULT STDMETHODCALLTYPE IAMVideoProcAmp_Get_Proxy(
   8854     IAMVideoProcAmp* This,
   8855     LONG Property,
   8856     LONG *lValue,
   8857     LONG *Flags);
   8858 void __RPC_STUB IAMVideoProcAmp_Get_Stub(
   8859     IRpcStubBuffer* This,
   8860     IRpcChannelBuffer* pRpcChannelBuffer,
   8861     PRPC_MESSAGE pRpcMessage,
   8862     DWORD* pdwStubPhase);
   8863 
   8864 #endif  /* __IAMVideoProcAmp_INTERFACE_DEFINED__ */
   8865 
   8866 /*****************************************************************************
   8867  * IAsyncReader interface
   8868  */
   8869 #ifndef __IAsyncReader_INTERFACE_DEFINED__
   8870 #define __IAsyncReader_INTERFACE_DEFINED__
   8871 
   8872 DEFINE_GUID(IID_IAsyncReader, 0x56a868aa, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   8873 #if defined(__cplusplus) && !defined(CINTERFACE)
   8874 MIDL_INTERFACE("56a868aa-0ad4-11ce-b03a-0020af0ba770")
   8875 IAsyncReader : public IUnknown
   8876 {
   8877     virtual HRESULT STDMETHODCALLTYPE RequestAllocator(
   8878         IMemAllocator *pPreferred,
   8879         ALLOCATOR_PROPERTIES *pProps,
   8880         IMemAllocator **ppActual) = 0;
   8881 
   8882     virtual HRESULT STDMETHODCALLTYPE Request(
   8883         IMediaSample *pSample,
   8884         DWORD_PTR dwUser) = 0;
   8885 
   8886     virtual HRESULT STDMETHODCALLTYPE WaitForNext(
   8887         DWORD dwTimeout,
   8888         IMediaSample **ppSample,
   8889         DWORD_PTR *pdwUser) = 0;
   8890 
   8891     virtual HRESULT STDMETHODCALLTYPE SyncReadAligned(
   8892         IMediaSample *pSample) = 0;
   8893 
   8894     virtual HRESULT STDMETHODCALLTYPE SyncRead(
   8895         LONGLONG llPosition,
   8896         LONG lLength,
   8897         BYTE *pBuffer) = 0;
   8898 
   8899     virtual HRESULT STDMETHODCALLTYPE Length(
   8900         LONGLONG *pTotal,
   8901         LONGLONG *pAvailable) = 0;
   8902 
   8903     virtual HRESULT STDMETHODCALLTYPE BeginFlush(
   8904         ) = 0;
   8905 
   8906     virtual HRESULT STDMETHODCALLTYPE EndFlush(
   8907         ) = 0;
   8908 
   8909 };
   8910 #ifdef __CRT_UUID_DECL
   8911 __CRT_UUID_DECL(IAsyncReader, 0x56a868aa, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   8912 #endif
   8913 #else
   8914 typedef struct IAsyncReaderVtbl {
   8915     BEGIN_INTERFACE
   8916 
   8917     /*** IUnknown methods ***/
   8918     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8919         IAsyncReader* This,
   8920         REFIID riid,
   8921         void **ppvObject);
   8922 
   8923     ULONG (STDMETHODCALLTYPE *AddRef)(
   8924         IAsyncReader* This);
   8925 
   8926     ULONG (STDMETHODCALLTYPE *Release)(
   8927         IAsyncReader* This);
   8928 
   8929     /*** IAsyncReader methods ***/
   8930     HRESULT (STDMETHODCALLTYPE *RequestAllocator)(
   8931         IAsyncReader* This,
   8932         IMemAllocator *pPreferred,
   8933         ALLOCATOR_PROPERTIES *pProps,
   8934         IMemAllocator **ppActual);
   8935 
   8936     HRESULT (STDMETHODCALLTYPE *Request)(
   8937         IAsyncReader* This,
   8938         IMediaSample *pSample,
   8939         DWORD_PTR dwUser);
   8940 
   8941     HRESULT (STDMETHODCALLTYPE *WaitForNext)(
   8942         IAsyncReader* This,
   8943         DWORD dwTimeout,
   8944         IMediaSample **ppSample,
   8945         DWORD_PTR *pdwUser);
   8946 
   8947     HRESULT (STDMETHODCALLTYPE *SyncReadAligned)(
   8948         IAsyncReader* This,
   8949         IMediaSample *pSample);
   8950 
   8951     HRESULT (STDMETHODCALLTYPE *SyncRead)(
   8952         IAsyncReader* This,
   8953         LONGLONG llPosition,
   8954         LONG lLength,
   8955         BYTE *pBuffer);
   8956 
   8957     HRESULT (STDMETHODCALLTYPE *Length)(
   8958         IAsyncReader* This,
   8959         LONGLONG *pTotal,
   8960         LONGLONG *pAvailable);
   8961 
   8962     HRESULT (STDMETHODCALLTYPE *BeginFlush)(
   8963         IAsyncReader* This);
   8964 
   8965     HRESULT (STDMETHODCALLTYPE *EndFlush)(
   8966         IAsyncReader* This);
   8967 
   8968     END_INTERFACE
   8969 } IAsyncReaderVtbl;
   8970 interface IAsyncReader {
   8971     CONST_VTBL IAsyncReaderVtbl* lpVtbl;
   8972 };
   8973 
   8974 #ifdef COBJMACROS
   8975 #ifndef WIDL_C_INLINE_WRAPPERS
   8976 /*** IUnknown methods ***/
   8977 #define IAsyncReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8978 #define IAsyncReader_AddRef(This) (This)->lpVtbl->AddRef(This)
   8979 #define IAsyncReader_Release(This) (This)->lpVtbl->Release(This)
   8980 /*** IAsyncReader methods ***/
   8981 #define IAsyncReader_RequestAllocator(This,pPreferred,pProps,ppActual) (This)->lpVtbl->RequestAllocator(This,pPreferred,pProps,ppActual)
   8982 #define IAsyncReader_Request(This,pSample,dwUser) (This)->lpVtbl->Request(This,pSample,dwUser)
   8983 #define IAsyncReader_WaitForNext(This,dwTimeout,ppSample,pdwUser) (This)->lpVtbl->WaitForNext(This,dwTimeout,ppSample,pdwUser)
   8984 #define IAsyncReader_SyncReadAligned(This,pSample) (This)->lpVtbl->SyncReadAligned(This,pSample)
   8985 #define IAsyncReader_SyncRead(This,llPosition,lLength,pBuffer) (This)->lpVtbl->SyncRead(This,llPosition,lLength,pBuffer)
   8986 #define IAsyncReader_Length(This,pTotal,pAvailable) (This)->lpVtbl->Length(This,pTotal,pAvailable)
   8987 #define IAsyncReader_BeginFlush(This) (This)->lpVtbl->BeginFlush(This)
   8988 #define IAsyncReader_EndFlush(This) (This)->lpVtbl->EndFlush(This)
   8989 #else
   8990 /*** IUnknown methods ***/
   8991 static FORCEINLINE HRESULT IAsyncReader_QueryInterface(IAsyncReader* This,REFIID riid,void **ppvObject) {
   8992     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8993 }
   8994 static FORCEINLINE ULONG IAsyncReader_AddRef(IAsyncReader* This) {
   8995     return This->lpVtbl->AddRef(This);
   8996 }
   8997 static FORCEINLINE ULONG IAsyncReader_Release(IAsyncReader* This) {
   8998     return This->lpVtbl->Release(This);
   8999 }
   9000 /*** IAsyncReader methods ***/
   9001 static FORCEINLINE HRESULT IAsyncReader_RequestAllocator(IAsyncReader* This,IMemAllocator *pPreferred,ALLOCATOR_PROPERTIES *pProps,IMemAllocator **ppActual) {
   9002     return This->lpVtbl->RequestAllocator(This,pPreferred,pProps,ppActual);
   9003 }
   9004 static FORCEINLINE HRESULT IAsyncReader_Request(IAsyncReader* This,IMediaSample *pSample,DWORD_PTR dwUser) {
   9005     return This->lpVtbl->Request(This,pSample,dwUser);
   9006 }
   9007 static FORCEINLINE HRESULT IAsyncReader_WaitForNext(IAsyncReader* This,DWORD dwTimeout,IMediaSample **ppSample,DWORD_PTR *pdwUser) {
   9008     return This->lpVtbl->WaitForNext(This,dwTimeout,ppSample,pdwUser);
   9009 }
   9010 static FORCEINLINE HRESULT IAsyncReader_SyncReadAligned(IAsyncReader* This,IMediaSample *pSample) {
   9011     return This->lpVtbl->SyncReadAligned(This,pSample);
   9012 }
   9013 static FORCEINLINE HRESULT IAsyncReader_SyncRead(IAsyncReader* This,LONGLONG llPosition,LONG lLength,BYTE *pBuffer) {
   9014     return This->lpVtbl->SyncRead(This,llPosition,lLength,pBuffer);
   9015 }
   9016 static FORCEINLINE HRESULT IAsyncReader_Length(IAsyncReader* This,LONGLONG *pTotal,LONGLONG *pAvailable) {
   9017     return This->lpVtbl->Length(This,pTotal,pAvailable);
   9018 }
   9019 static FORCEINLINE HRESULT IAsyncReader_BeginFlush(IAsyncReader* This) {
   9020     return This->lpVtbl->BeginFlush(This);
   9021 }
   9022 static FORCEINLINE HRESULT IAsyncReader_EndFlush(IAsyncReader* This) {
   9023     return This->lpVtbl->EndFlush(This);
   9024 }
   9025 #endif
   9026 #endif
   9027 
   9028 #endif
   9029 
   9030 HRESULT STDMETHODCALLTYPE IAsyncReader_RequestAllocator_Proxy(
   9031     IAsyncReader* This,
   9032     IMemAllocator *pPreferred,
   9033     ALLOCATOR_PROPERTIES *pProps,
   9034     IMemAllocator **ppActual);
   9035 void __RPC_STUB IAsyncReader_RequestAllocator_Stub(
   9036     IRpcStubBuffer* This,
   9037     IRpcChannelBuffer* pRpcChannelBuffer,
   9038     PRPC_MESSAGE pRpcMessage,
   9039     DWORD* pdwStubPhase);
   9040 HRESULT STDMETHODCALLTYPE IAsyncReader_Request_Proxy(
   9041     IAsyncReader* This,
   9042     IMediaSample *pSample,
   9043     DWORD_PTR dwUser);
   9044 void __RPC_STUB IAsyncReader_Request_Stub(
   9045     IRpcStubBuffer* This,
   9046     IRpcChannelBuffer* pRpcChannelBuffer,
   9047     PRPC_MESSAGE pRpcMessage,
   9048     DWORD* pdwStubPhase);
   9049 HRESULT STDMETHODCALLTYPE IAsyncReader_WaitForNext_Proxy(
   9050     IAsyncReader* This,
   9051     DWORD dwTimeout,
   9052     IMediaSample **ppSample,
   9053     DWORD_PTR *pdwUser);
   9054 void __RPC_STUB IAsyncReader_WaitForNext_Stub(
   9055     IRpcStubBuffer* This,
   9056     IRpcChannelBuffer* pRpcChannelBuffer,
   9057     PRPC_MESSAGE pRpcMessage,
   9058     DWORD* pdwStubPhase);
   9059 HRESULT STDMETHODCALLTYPE IAsyncReader_SyncReadAligned_Proxy(
   9060     IAsyncReader*