Home | History | Annotate | Download | only in include
      1 /*** Autogenerated by WIDL 1.5.29 from /tmp/build-mingw64-toolchain-digit/src/mingw-w64-svn-r5861/mingw-w64-headers/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 __IMediaSample_FWD_DEFINED__
     66 #define __IMediaSample_FWD_DEFINED__
     67 typedef interface IMediaSample IMediaSample;
     68 #endif
     69 
     70 #ifndef __IMediaSample2_FWD_DEFINED__
     71 #define __IMediaSample2_FWD_DEFINED__
     72 typedef interface IMediaSample2 IMediaSample2;
     73 #endif
     74 
     75 #ifndef __IMemAllocator_FWD_DEFINED__
     76 #define __IMemAllocator_FWD_DEFINED__
     77 typedef interface IMemAllocator IMemAllocator;
     78 #endif
     79 
     80 #ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__
     81 #define __IMemAllocatorCallbackTemp_FWD_DEFINED__
     82 typedef interface IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp;
     83 #endif
     84 
     85 #ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
     86 #define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
     87 typedef interface IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp;
     88 #endif
     89 
     90 #ifndef __IMemInputPin_FWD_DEFINED__
     91 #define __IMemInputPin_FWD_DEFINED__
     92 typedef interface IMemInputPin IMemInputPin;
     93 #endif
     94 
     95 #ifndef __IAMovieSetup_FWD_DEFINED__
     96 #define __IAMovieSetup_FWD_DEFINED__
     97 typedef interface IAMovieSetup IAMovieSetup;
     98 #endif
     99 
    100 #ifndef __IMediaSeeking_FWD_DEFINED__
    101 #define __IMediaSeeking_FWD_DEFINED__
    102 typedef interface IMediaSeeking IMediaSeeking;
    103 #endif
    104 
    105 #ifndef __IEnumRegFilters_FWD_DEFINED__
    106 #define __IEnumRegFilters_FWD_DEFINED__
    107 typedef interface IEnumRegFilters IEnumRegFilters;
    108 #endif
    109 
    110 #ifndef __IFilterMapper_FWD_DEFINED__
    111 #define __IFilterMapper_FWD_DEFINED__
    112 typedef interface IFilterMapper IFilterMapper;
    113 #endif
    114 
    115 #ifndef __IFilterMapper2_FWD_DEFINED__
    116 #define __IFilterMapper2_FWD_DEFINED__
    117 typedef interface IFilterMapper2 IFilterMapper2;
    118 #endif
    119 
    120 #ifndef __IFilterMapper3_FWD_DEFINED__
    121 #define __IFilterMapper3_FWD_DEFINED__
    122 typedef interface IFilterMapper3 IFilterMapper3;
    123 #endif
    124 
    125 #ifndef __IQualityControl_FWD_DEFINED__
    126 #define __IQualityControl_FWD_DEFINED__
    127 typedef interface IQualityControl IQualityControl;
    128 #endif
    129 
    130 #ifndef __IOverlayNotify_FWD_DEFINED__
    131 #define __IOverlayNotify_FWD_DEFINED__
    132 typedef interface IOverlayNotify IOverlayNotify;
    133 #endif
    134 
    135 #ifndef __IOverlayNotify2_FWD_DEFINED__
    136 #define __IOverlayNotify2_FWD_DEFINED__
    137 typedef interface IOverlayNotify2 IOverlayNotify2;
    138 #endif
    139 
    140 #ifndef __IOverlay_FWD_DEFINED__
    141 #define __IOverlay_FWD_DEFINED__
    142 typedef interface IOverlay IOverlay;
    143 #endif
    144 
    145 #ifndef __IMediaEventSink_FWD_DEFINED__
    146 #define __IMediaEventSink_FWD_DEFINED__
    147 typedef interface IMediaEventSink IMediaEventSink;
    148 #endif
    149 
    150 #ifndef __IFileSourceFilter_FWD_DEFINED__
    151 #define __IFileSourceFilter_FWD_DEFINED__
    152 typedef interface IFileSourceFilter IFileSourceFilter;
    153 #endif
    154 
    155 #ifndef __IFileSinkFilter_FWD_DEFINED__
    156 #define __IFileSinkFilter_FWD_DEFINED__
    157 typedef interface IFileSinkFilter IFileSinkFilter;
    158 #endif
    159 
    160 #ifndef __IFileSinkFilter2_FWD_DEFINED__
    161 #define __IFileSinkFilter2_FWD_DEFINED__
    162 typedef interface IFileSinkFilter2 IFileSinkFilter2;
    163 #endif
    164 
    165 #ifndef __IGraphBuilder_FWD_DEFINED__
    166 #define __IGraphBuilder_FWD_DEFINED__
    167 typedef interface IGraphBuilder IGraphBuilder;
    168 #endif
    169 
    170 #ifndef __ICaptureGraphBuilder_FWD_DEFINED__
    171 #define __ICaptureGraphBuilder_FWD_DEFINED__
    172 typedef interface ICaptureGraphBuilder ICaptureGraphBuilder;
    173 #endif
    174 
    175 #ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__
    176 #define __IAMCopyCaptureFileProgress_FWD_DEFINED__
    177 typedef interface IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
    178 #endif
    179 
    180 #ifndef __ICaptureGraphBuilder2_FWD_DEFINED__
    181 #define __ICaptureGraphBuilder2_FWD_DEFINED__
    182 typedef interface ICaptureGraphBuilder2 ICaptureGraphBuilder2;
    183 #endif
    184 
    185 #ifndef __IFilterGraph2_FWD_DEFINED__
    186 #define __IFilterGraph2_FWD_DEFINED__
    187 typedef interface IFilterGraph2 IFilterGraph2;
    188 #endif
    189 
    190 #ifndef __IStreamBuilder_FWD_DEFINED__
    191 #define __IStreamBuilder_FWD_DEFINED__
    192 typedef interface IStreamBuilder IStreamBuilder;
    193 #endif
    194 
    195 #ifndef __IAMStreamConfig_FWD_DEFINED__
    196 #define __IAMStreamConfig_FWD_DEFINED__
    197 typedef interface IAMStreamConfig IAMStreamConfig;
    198 #endif
    199 
    200 #ifndef __IAMVideoProcAmp_FWD_DEFINED__
    201 #define __IAMVideoProcAmp_FWD_DEFINED__
    202 typedef interface IAMVideoProcAmp IAMVideoProcAmp;
    203 #endif
    204 
    205 #ifndef __IAsyncReader_FWD_DEFINED__
    206 #define __IAsyncReader_FWD_DEFINED__
    207 typedef interface IAsyncReader IAsyncReader;
    208 #endif
    209 
    210 #ifndef __IGraphVersion_FWD_DEFINED__
    211 #define __IGraphVersion_FWD_DEFINED__
    212 typedef interface IGraphVersion IGraphVersion;
    213 #endif
    214 
    215 #ifndef __IResourceConsumer_FWD_DEFINED__
    216 #define __IResourceConsumer_FWD_DEFINED__
    217 typedef interface IResourceConsumer IResourceConsumer;
    218 #endif
    219 
    220 #ifndef __IResourceManager_FWD_DEFINED__
    221 #define __IResourceManager_FWD_DEFINED__
    222 typedef interface IResourceManager IResourceManager;
    223 #endif
    224 
    225 #ifndef __IKsPropertySet_FWD_DEFINED__
    226 #define __IKsPropertySet_FWD_DEFINED__
    227 typedef interface IKsPropertySet IKsPropertySet;
    228 #endif
    229 
    230 #ifndef __ISeekingPassThru_FWD_DEFINED__
    231 #define __ISeekingPassThru_FWD_DEFINED__
    232 typedef interface ISeekingPassThru ISeekingPassThru;
    233 #endif
    234 
    235 #ifndef __IAMFilterMiscFlags_FWD_DEFINED__
    236 #define __IAMFilterMiscFlags_FWD_DEFINED__
    237 typedef interface IAMFilterMiscFlags IAMFilterMiscFlags;
    238 #endif
    239 
    240 #ifndef __IAMGraphBuilderCallback_FWD_DEFINED__
    241 #define __IAMGraphBuilderCallback_FWD_DEFINED__
    242 typedef interface IAMGraphBuilderCallback IAMGraphBuilderCallback;
    243 #endif
    244 
    245 /* Headers for imported files */
    246 
    247 #include <unknwn.h>
    248 #include <objidl.h>
    249 #include <oaidl.h>
    250 
    251 #ifdef __cplusplus
    252 extern "C" {
    253 #endif
    254 
    255 #define CDEF_CLASS_DEFAULT 0x0001
    256 #define CDEF_BYPASS_CLASS_MANAGER 0x0002
    257 #define CDEF_MERIT_ABOVE_DO_NOT_USE 0x0008
    258 #define CDEF_DEVMON_CMGR_DEVICE 0x0010
    259 #define CDEF_DEVMON_DMO 0x0020
    260 #define CDEF_DEVMON_PNP_DEVICE 0x0040
    261 #define CDEF_DEVMON_FILTER 0x0080
    262 #define CDEF_DEVMON_SELECTIVE_MASK 0x00f0
    263 /*****************************************************************************
    264  * ICreateDevEnum interface
    265  */
    266 #ifndef __ICreateDevEnum_INTERFACE_DEFINED__
    267 #define __ICreateDevEnum_INTERFACE_DEFINED__
    268 
    269 DEFINE_GUID(IID_ICreateDevEnum, 0x29840822, 0x5b84, 0x11d0, 0xbd,0x3b, 0x00,0xa0,0xc9,0x11,0xce,0x86);
    270 #if defined(__cplusplus) && !defined(CINTERFACE)
    271 MIDL_INTERFACE("29840822-5b84-11d0-bd3b-00a0c911ce86")
    272 ICreateDevEnum : public IUnknown
    273 {
    274     virtual HRESULT STDMETHODCALLTYPE CreateClassEnumerator(
    275         REFCLSID clsidDeviceClass,
    276         IEnumMoniker **ppEnumMoniker,
    277         DWORD dwFlags) = 0;
    278 
    279 };
    280 #ifdef __CRT_UUID_DECL
    281 __CRT_UUID_DECL(ICreateDevEnum, 0x29840822, 0x5b84, 0x11d0, 0xbd,0x3b, 0x00,0xa0,0xc9,0x11,0xce,0x86)
    282 #endif
    283 #else
    284 typedef struct ICreateDevEnumVtbl {
    285     BEGIN_INTERFACE
    286 
    287     /*** IUnknown methods ***/
    288     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    289         ICreateDevEnum* This,
    290         REFIID riid,
    291         void **ppvObject);
    292 
    293     ULONG (STDMETHODCALLTYPE *AddRef)(
    294         ICreateDevEnum* This);
    295 
    296     ULONG (STDMETHODCALLTYPE *Release)(
    297         ICreateDevEnum* This);
    298 
    299     /*** ICreateDevEnum methods ***/
    300     HRESULT (STDMETHODCALLTYPE *CreateClassEnumerator)(
    301         ICreateDevEnum* This,
    302         REFCLSID clsidDeviceClass,
    303         IEnumMoniker **ppEnumMoniker,
    304         DWORD dwFlags);
    305 
    306     END_INTERFACE
    307 } ICreateDevEnumVtbl;
    308 interface ICreateDevEnum {
    309     CONST_VTBL ICreateDevEnumVtbl* lpVtbl;
    310 };
    311 
    312 #ifdef COBJMACROS
    313 #ifndef WIDL_C_INLINE_WRAPPERS
    314 /*** IUnknown methods ***/
    315 #define ICreateDevEnum_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    316 #define ICreateDevEnum_AddRef(This) (This)->lpVtbl->AddRef(This)
    317 #define ICreateDevEnum_Release(This) (This)->lpVtbl->Release(This)
    318 /*** ICreateDevEnum methods ***/
    319 #define ICreateDevEnum_CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags) (This)->lpVtbl->CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags)
    320 #else
    321 /*** IUnknown methods ***/
    322 static FORCEINLINE HRESULT ICreateDevEnum_QueryInterface(ICreateDevEnum* This,REFIID riid,void **ppvObject) {
    323     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    324 }
    325 static FORCEINLINE ULONG ICreateDevEnum_AddRef(ICreateDevEnum* This) {
    326     return This->lpVtbl->AddRef(This);
    327 }
    328 static FORCEINLINE ULONG ICreateDevEnum_Release(ICreateDevEnum* This) {
    329     return This->lpVtbl->Release(This);
    330 }
    331 /*** ICreateDevEnum methods ***/
    332 static FORCEINLINE HRESULT ICreateDevEnum_CreateClassEnumerator(ICreateDevEnum* This,REFCLSID clsidDeviceClass,IEnumMoniker **ppEnumMoniker,DWORD dwFlags) {
    333     return This->lpVtbl->CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags);
    334 }
    335 #endif
    336 #endif
    337 
    338 #endif
    339 
    340 HRESULT STDMETHODCALLTYPE ICreateDevEnum_CreateClassEnumerator_Proxy(
    341     ICreateDevEnum* This,
    342     REFCLSID clsidDeviceClass,
    343     IEnumMoniker **ppEnumMoniker,
    344     DWORD dwFlags);
    345 void __RPC_STUB ICreateDevEnum_CreateClassEnumerator_Stub(
    346     IRpcStubBuffer* This,
    347     IRpcChannelBuffer* pRpcChannelBuffer,
    348     PRPC_MESSAGE pRpcMessage,
    349     DWORD* pdwStubPhase);
    350 
    351 #endif  /* __ICreateDevEnum_INTERFACE_DEFINED__ */
    352 
    353 #define CHARS_IN_GUID 39
    354 #ifdef WINE_NO_UNICODE_MACROS
    355 #undef GetTimeFormat
    356 #endif
    357 typedef struct _AMMediaType {
    358     GUID majortype;
    359     GUID subtype;
    360     WINBOOL bFixedSizeSamples;
    361     WINBOOL bTemporalCompression;
    362     ULONG lSampleSize;
    363     GUID formattype;
    364     IUnknown *pUnk;
    365     ULONG cbFormat;
    366     BYTE *pbFormat;
    367 } AM_MEDIA_TYPE;
    368 typedef enum _PinDirection {
    369     PINDIR_INPUT = 0,
    370     PINDIR_OUTPUT = 1
    371 } PIN_DIRECTION;
    372 #define MAX_PIN_NAME    128
    373 #define MAX_FILTER_NAME 128
    374 #ifndef REFERENCE_TIME_DEFINED
    375 #define REFERENCE_TIME_DEFINED
    376 typedef LONGLONG REFERENCE_TIME;
    377 #endif
    378 #ifndef REFTIME_DEFINED
    379 #define REFTIME_DEFINED
    380 typedef DOUBLE REFTIME;
    381 #endif
    382 typedef DWORD_PTR HSEMAPHORE;
    383 typedef DWORD_PTR HEVENT;
    384 typedef struct _AllocatorProperties {
    385     LONG cBuffers;
    386     LONG cbBuffer;
    387     LONG cbAlign;
    388     LONG cbPrefix;
    389 } ALLOCATOR_PROPERTIES;
    390 #ifndef __IAMovieSetup_FWD_DEFINED__
    391 #define __IAMovieSetup_FWD_DEFINED__
    392 typedef interface IAMovieSetup IAMovieSetup;
    393 #endif
    394 
    395 #ifndef __IEnumFilters_FWD_DEFINED__
    396 #define __IEnumFilters_FWD_DEFINED__
    397 typedef interface IEnumFilters IEnumFilters;
    398 #endif
    399 
    400 #ifndef __IEnumMediaTypes_FWD_DEFINED__
    401 #define __IEnumMediaTypes_FWD_DEFINED__
    402 typedef interface IEnumMediaTypes IEnumMediaTypes;
    403 #endif
    404 
    405 #ifndef __IEnumPins_FWD_DEFINED__
    406 #define __IEnumPins_FWD_DEFINED__
    407 typedef interface IEnumPins IEnumPins;
    408 #endif
    409 
    410 #ifndef __IBaseFilter_FWD_DEFINED__
    411 #define __IBaseFilter_FWD_DEFINED__
    412 typedef interface IBaseFilter IBaseFilter;
    413 #endif
    414 
    415 #ifndef __IFilterGraph_FWD_DEFINED__
    416 #define __IFilterGraph_FWD_DEFINED__
    417 typedef interface IFilterGraph IFilterGraph;
    418 #endif
    419 
    420 #ifndef __IMediaFilter_FWD_DEFINED__
    421 #define __IMediaFilter_FWD_DEFINED__
    422 typedef interface IMediaFilter IMediaFilter;
    423 #endif
    424 
    425 #ifndef __IMediaSample_FWD_DEFINED__
    426 #define __IMediaSample_FWD_DEFINED__
    427 typedef interface IMediaSample IMediaSample;
    428 #endif
    429 
    430 #ifndef __IMemAllocator_FWD_DEFINED__
    431 #define __IMemAllocator_FWD_DEFINED__
    432 typedef interface IMemAllocator IMemAllocator;
    433 #endif
    434 
    435 #ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__
    436 #define __IMemAllocatorCallbackTemp_FWD_DEFINED__
    437 typedef interface IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp;
    438 #endif
    439 
    440 #ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
    441 #define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
    442 typedef interface IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp;
    443 #endif
    444 
    445 #ifndef __IMemInputPin_FWD_DEFINED__
    446 #define __IMemInputPin_FWD_DEFINED__
    447 typedef interface IMemInputPin IMemInputPin;
    448 #endif
    449 
    450 #ifndef __IPin_FWD_DEFINED__
    451 #define __IPin_FWD_DEFINED__
    452 typedef interface IPin IPin;
    453 #endif
    454 
    455 #ifndef __IReferenceClock_FWD_DEFINED__
    456 #define __IReferenceClock_FWD_DEFINED__
    457 typedef interface IReferenceClock IReferenceClock;
    458 #endif
    459 
    460 /*****************************************************************************
    461  * IPin interface
    462  */
    463 #ifndef __IPin_INTERFACE_DEFINED__
    464 #define __IPin_INTERFACE_DEFINED__
    465 
    466 typedef struct _PinInfo {
    467     IBaseFilter *pFilter;
    468     PIN_DIRECTION dir;
    469     WCHAR achName[128];
    470 } PIN_INFO;
    471 DEFINE_GUID(IID_IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
    472 #if defined(__cplusplus) && !defined(CINTERFACE)
    473 MIDL_INTERFACE("56a86891-0ad4-11ce-b03a-0020af0ba770")
    474 IPin : public IUnknown
    475 {
    476     virtual HRESULT STDMETHODCALLTYPE Connect(
    477         IPin *pReceivePin,
    478         const AM_MEDIA_TYPE *pmt) = 0;
    479 
    480     virtual HRESULT STDMETHODCALLTYPE ReceiveConnection(
    481         IPin *pConnector,
    482         const AM_MEDIA_TYPE *pmt) = 0;
    483 
    484     virtual HRESULT STDMETHODCALLTYPE Disconnect(
    485         ) = 0;
    486 
    487     virtual HRESULT STDMETHODCALLTYPE ConnectedTo(
    488         IPin **pPin) = 0;
    489 
    490     virtual HRESULT STDMETHODCALLTYPE ConnectionMediaType(
    491         AM_MEDIA_TYPE *pmt) = 0;
    492 
    493     virtual HRESULT STDMETHODCALLTYPE QueryPinInfo(
    494         PIN_INFO *pInfo) = 0;
    495 
    496     virtual HRESULT STDMETHODCALLTYPE QueryDirection(
    497         PIN_DIRECTION *pPinDir) = 0;
    498 
    499     virtual HRESULT STDMETHODCALLTYPE QueryId(
    500         LPWSTR *Id) = 0;
    501 
    502     virtual HRESULT STDMETHODCALLTYPE QueryAccept(
    503         const AM_MEDIA_TYPE *pmt) = 0;
    504 
    505     virtual HRESULT STDMETHODCALLTYPE EnumMediaTypes(
    506         IEnumMediaTypes **ppEnum) = 0;
    507 
    508     virtual HRESULT STDMETHODCALLTYPE QueryInternalConnections(
    509         IPin **apPin,
    510         ULONG *nPin) = 0;
    511 
    512     virtual HRESULT STDMETHODCALLTYPE EndOfStream(
    513         ) = 0;
    514 
    515     virtual HRESULT STDMETHODCALLTYPE BeginFlush(
    516         ) = 0;
    517 
    518     virtual HRESULT STDMETHODCALLTYPE EndFlush(
    519         ) = 0;
    520 
    521     virtual HRESULT STDMETHODCALLTYPE NewSegment(
    522         REFERENCE_TIME tStart,
    523         REFERENCE_TIME tStop,
    524         double dRate) = 0;
    525 
    526 };
    527 #ifdef __CRT_UUID_DECL
    528 __CRT_UUID_DECL(IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
    529 #endif
    530 #else
    531 typedef struct IPinVtbl {
    532     BEGIN_INTERFACE
    533 
    534     /*** IUnknown methods ***/
    535     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    536         IPin* This,
    537         REFIID riid,
    538         void **ppvObject);
    539 
    540     ULONG (STDMETHODCALLTYPE *AddRef)(
    541         IPin* This);
    542 
    543     ULONG (STDMETHODCALLTYPE *Release)(
    544         IPin* This);
    545 
    546     /*** IPin methods ***/
    547     HRESULT (STDMETHODCALLTYPE *Connect)(
    548         IPin* This,
    549         IPin *pReceivePin,
    550         const AM_MEDIA_TYPE *pmt);
    551 
    552     HRESULT (STDMETHODCALLTYPE *ReceiveConnection)(
    553         IPin* This,
    554         IPin *pConnector,
    555         const AM_MEDIA_TYPE *pmt);
    556 
    557     HRESULT (STDMETHODCALLTYPE *Disconnect)(
    558         IPin* This);
    559 
    560     HRESULT (STDMETHODCALLTYPE *ConnectedTo)(
    561         IPin* This,
    562         IPin **pPin);
    563 
    564     HRESULT (STDMETHODCALLTYPE *ConnectionMediaType)(
    565         IPin* This,
    566         AM_MEDIA_TYPE *pmt);
    567 
    568     HRESULT (STDMETHODCALLTYPE *QueryPinInfo)(
    569         IPin* This,
    570         PIN_INFO *pInfo);
    571 
    572     HRESULT (STDMETHODCALLTYPE *QueryDirection)(
    573         IPin* This,
    574         PIN_DIRECTION *pPinDir);
    575 
    576     HRESULT (STDMETHODCALLTYPE *QueryId)(
    577         IPin* This,
    578         LPWSTR *Id);
    579 
    580     HRESULT (STDMETHODCALLTYPE *QueryAccept)(
    581         IPin* This,
    582         const AM_MEDIA_TYPE *pmt);
    583 
    584     HRESULT (STDMETHODCALLTYPE *EnumMediaTypes)(
    585         IPin* This,
    586         IEnumMediaTypes **ppEnum);
    587 
    588     HRESULT (STDMETHODCALLTYPE *QueryInternalConnections)(
    589         IPin* This,
    590         IPin **apPin,
    591         ULONG *nPin);
    592 
    593     HRESULT (STDMETHODCALLTYPE *EndOfStream)(
    594         IPin* This);
    595 
    596     HRESULT (STDMETHODCALLTYPE *BeginFlush)(
    597         IPin* This);
    598 
    599     HRESULT (STDMETHODCALLTYPE *EndFlush)(
    600         IPin* This);
    601 
    602     HRESULT (STDMETHODCALLTYPE *NewSegment)(
    603         IPin* This,
    604         REFERENCE_TIME tStart,
    605         REFERENCE_TIME tStop,
    606         double dRate);
    607 
    608     END_INTERFACE
    609 } IPinVtbl;
    610 interface IPin {
    611     CONST_VTBL IPinVtbl* lpVtbl;
    612 };
    613 
    614 #ifdef COBJMACROS
    615 #ifndef WIDL_C_INLINE_WRAPPERS
    616 /*** IUnknown methods ***/
    617 #define IPin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    618 #define IPin_AddRef(This) (This)->lpVtbl->AddRef(This)
    619 #define IPin_Release(This) (This)->lpVtbl->Release(This)
    620 /*** IPin methods ***/
    621 #define IPin_Connect(This,pReceivePin,pmt) (This)->lpVtbl->Connect(This,pReceivePin,pmt)
    622 #define IPin_ReceiveConnection(This,pConnector,pmt) (This)->lpVtbl->ReceiveConnection(This,pConnector,pmt)
    623 #define IPin_Disconnect(This) (This)->lpVtbl->Disconnect(This)
    624 #define IPin_ConnectedTo(This,pPin) (This)->lpVtbl->ConnectedTo(This,pPin)
    625 #define IPin_ConnectionMediaType(This,pmt) (This)->lpVtbl->ConnectionMediaType(This,pmt)
    626 #define IPin_QueryPinInfo(This,pInfo) (This)->lpVtbl->QueryPinInfo(This,pInfo)
    627 #define IPin_QueryDirection(This,pPinDir) (This)->lpVtbl->QueryDirection(This,pPinDir)
    628 #define IPin_QueryId(This,Id) (This)->lpVtbl->QueryId(This,Id)
    629 #define IPin_QueryAccept(This,pmt) (This)->lpVtbl->QueryAccept(This,pmt)
    630 #define IPin_EnumMediaTypes(This,ppEnum) (This)->lpVtbl->EnumMediaTypes(This,ppEnum)
    631 #define IPin_QueryInternalConnections(This,apPin,nPin) (This)->lpVtbl->QueryInternalConnections(This,apPin,nPin)
    632 #define IPin_EndOfStream(This) (This)->lpVtbl->EndOfStream(This)
    633 #define IPin_BeginFlush(This) (This)->lpVtbl->BeginFlush(This)
    634 #define IPin_EndFlush(This) (This)->lpVtbl->EndFlush(This)
    635 #define IPin_NewSegment(This,tStart,tStop,dRate) (This)->lpVtbl->NewSegment(This,tStart,tStop,dRate)
    636 #else
    637 /*** IUnknown methods ***/
    638 static FORCEINLINE HRESULT IPin_QueryInterface(IPin* This,REFIID riid,void **ppvObject) {
    639     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    640 }
    641 static FORCEINLINE ULONG IPin_AddRef(IPin* This) {
    642     return This->lpVtbl->AddRef(This);
    643 }
    644 static FORCEINLINE ULONG IPin_Release(IPin* This) {
    645     return This->lpVtbl->Release(This);
    646 }
    647 /*** IPin methods ***/
    648 static FORCEINLINE HRESULT IPin_Connect(IPin* This,IPin *pReceivePin,const AM_MEDIA_TYPE *pmt) {
    649     return This->lpVtbl->Connect(This,pReceivePin,pmt);
    650 }
    651 static FORCEINLINE HRESULT IPin_ReceiveConnection(IPin* This,IPin *pConnector,const AM_MEDIA_TYPE *pmt) {
    652     return This->lpVtbl->ReceiveConnection(This,pConnector,pmt);
    653 }
    654 static FORCEINLINE HRESULT IPin_Disconnect(IPin* This) {
    655     return This->lpVtbl->Disconnect(This);
    656 }
    657 static FORCEINLINE HRESULT IPin_ConnectedTo(IPin* This,IPin **pPin) {
    658     return This->lpVtbl->ConnectedTo(This,pPin);
    659 }
    660 static FORCEINLINE HRESULT IPin_ConnectionMediaType(IPin* This,AM_MEDIA_TYPE *pmt) {
    661     return This->lpVtbl->ConnectionMediaType(This,pmt);
    662 }
    663 static FORCEINLINE HRESULT IPin_QueryPinInfo(IPin* This,PIN_INFO *pInfo) {
    664     return This->lpVtbl->QueryPinInfo(This,pInfo);
    665 }
    666 static FORCEINLINE HRESULT IPin_QueryDirection(IPin* This,PIN_DIRECTION *pPinDir) {
    667     return This->lpVtbl->QueryDirection(This,pPinDir);
    668 }
    669 static FORCEINLINE HRESULT IPin_QueryId(IPin* This,LPWSTR *Id) {
    670     return This->lpVtbl->QueryId(This,Id);
    671 }
    672 static FORCEINLINE HRESULT IPin_QueryAccept(IPin* This,const AM_MEDIA_TYPE *pmt) {
    673     return This->lpVtbl->QueryAccept(This,pmt);
    674 }
    675 static FORCEINLINE HRESULT IPin_EnumMediaTypes(IPin* This,IEnumMediaTypes **ppEnum) {
    676     return This->lpVtbl->EnumMediaTypes(This,ppEnum);
    677 }
    678 static FORCEINLINE HRESULT IPin_QueryInternalConnections(IPin* This,IPin **apPin,ULONG *nPin) {
    679     return This->lpVtbl->QueryInternalConnections(This,apPin,nPin);
    680 }
    681 static FORCEINLINE HRESULT IPin_EndOfStream(IPin* This) {
    682     return This->lpVtbl->EndOfStream(This);
    683 }
    684 static FORCEINLINE HRESULT IPin_BeginFlush(IPin* This) {
    685     return This->lpVtbl->BeginFlush(This);
    686 }
    687 static FORCEINLINE HRESULT IPin_EndFlush(IPin* This) {
    688     return This->lpVtbl->EndFlush(This);
    689 }
    690 static FORCEINLINE HRESULT IPin_NewSegment(IPin* This,REFERENCE_TIME tStart,REFERENCE_TIME tStop,double dRate) {
    691     return This->lpVtbl->NewSegment(This,tStart,tStop,dRate);
    692 }
    693 #endif
    694 #endif
    695 
    696 #endif
    697 
    698 HRESULT STDMETHODCALLTYPE IPin_Connect_Proxy(
    699     IPin* This,
    700     IPin *pReceivePin,
    701     const AM_MEDIA_TYPE *pmt);
    702 void __RPC_STUB IPin_Connect_Stub(
    703     IRpcStubBuffer* This,
    704     IRpcChannelBuffer* pRpcChannelBuffer,
    705     PRPC_MESSAGE pRpcMessage,
    706     DWORD* pdwStubPhase);
    707 HRESULT STDMETHODCALLTYPE IPin_ReceiveConnection_Proxy(
    708     IPin* This,
    709     IPin *pConnector,
    710     const AM_MEDIA_TYPE *pmt);
    711 void __RPC_STUB IPin_ReceiveConnection_Stub(
    712     IRpcStubBuffer* This,
    713     IRpcChannelBuffer* pRpcChannelBuffer,
    714     PRPC_MESSAGE pRpcMessage,
    715     DWORD* pdwStubPhase);
    716 HRESULT STDMETHODCALLTYPE IPin_Disconnect_Proxy(
    717     IPin* This);
    718 void __RPC_STUB IPin_Disconnect_Stub(
    719     IRpcStubBuffer* This,
    720     IRpcChannelBuffer* pRpcChannelBuffer,
    721     PRPC_MESSAGE pRpcMessage,
    722     DWORD* pdwStubPhase);
    723 HRESULT STDMETHODCALLTYPE IPin_ConnectedTo_Proxy(
    724     IPin* This,
    725     IPin **pPin);
    726 void __RPC_STUB IPin_ConnectedTo_Stub(
    727     IRpcStubBuffer* This,
    728     IRpcChannelBuffer* pRpcChannelBuffer,
    729     PRPC_MESSAGE pRpcMessage,
    730     DWORD* pdwStubPhase);
    731 HRESULT STDMETHODCALLTYPE IPin_ConnectionMediaType_Proxy(
    732     IPin* This,
    733     AM_MEDIA_TYPE *pmt);
    734 void __RPC_STUB IPin_ConnectionMediaType_Stub(
    735     IRpcStubBuffer* This,
    736     IRpcChannelBuffer* pRpcChannelBuffer,
    737     PRPC_MESSAGE pRpcMessage,
    738     DWORD* pdwStubPhase);
    739 HRESULT STDMETHODCALLTYPE IPin_QueryPinInfo_Proxy(
    740     IPin* This,
    741     PIN_INFO *pInfo);
    742 void __RPC_STUB IPin_QueryPinInfo_Stub(
    743     IRpcStubBuffer* This,
    744     IRpcChannelBuffer* pRpcChannelBuffer,
    745     PRPC_MESSAGE pRpcMessage,
    746     DWORD* pdwStubPhase);
    747 HRESULT STDMETHODCALLTYPE IPin_QueryDirection_Proxy(
    748     IPin* This,
    749     PIN_DIRECTION *pPinDir);
    750 void __RPC_STUB IPin_QueryDirection_Stub(
    751     IRpcStubBuffer* This,
    752     IRpcChannelBuffer* pRpcChannelBuffer,
    753     PRPC_MESSAGE pRpcMessage,
    754     DWORD* pdwStubPhase);
    755 HRESULT STDMETHODCALLTYPE IPin_QueryId_Proxy(
    756     IPin* This,
    757     LPWSTR *Id);
    758 void __RPC_STUB IPin_QueryId_Stub(
    759     IRpcStubBuffer* This,
    760     IRpcChannelBuffer* pRpcChannelBuffer,
    761     PRPC_MESSAGE pRpcMessage,
    762     DWORD* pdwStubPhase);
    763 HRESULT STDMETHODCALLTYPE IPin_QueryAccept_Proxy(
    764     IPin* This,
    765     const AM_MEDIA_TYPE *pmt);
    766 void __RPC_STUB IPin_QueryAccept_Stub(
    767     IRpcStubBuffer* This,
    768     IRpcChannelBuffer* pRpcChannelBuffer,
    769     PRPC_MESSAGE pRpcMessage,
    770     DWORD* pdwStubPhase);
    771 HRESULT STDMETHODCALLTYPE IPin_EnumMediaTypes_Proxy(
    772     IPin* This,
    773     IEnumMediaTypes **ppEnum);
    774 void __RPC_STUB IPin_EnumMediaTypes_Stub(
    775     IRpcStubBuffer* This,
    776     IRpcChannelBuffer* pRpcChannelBuffer,
    777     PRPC_MESSAGE pRpcMessage,
    778     DWORD* pdwStubPhase);
    779 HRESULT STDMETHODCALLTYPE IPin_QueryInternalConnections_Proxy(
    780     IPin* This,
    781     IPin **apPin,
    782     ULONG *nPin);
    783 void __RPC_STUB IPin_QueryInternalConnections_Stub(
    784     IRpcStubBuffer* This,
    785     IRpcChannelBuffer* pRpcChannelBuffer,
    786     PRPC_MESSAGE pRpcMessage,
    787     DWORD* pdwStubPhase);
    788 HRESULT STDMETHODCALLTYPE IPin_EndOfStream_Proxy(
    789     IPin* This);
    790 void __RPC_STUB IPin_EndOfStream_Stub(
    791     IRpcStubBuffer* This,
    792     IRpcChannelBuffer* pRpcChannelBuffer,
    793     PRPC_MESSAGE pRpcMessage,
    794     DWORD* pdwStubPhase);
    795 HRESULT STDMETHODCALLTYPE IPin_BeginFlush_Proxy(
    796     IPin* This);
    797 void __RPC_STUB IPin_BeginFlush_Stub(
    798     IRpcStubBuffer* This,
    799     IRpcChannelBuffer* pRpcChannelBuffer,
    800     PRPC_MESSAGE pRpcMessage,
    801     DWORD* pdwStubPhase);
    802 HRESULT STDMETHODCALLTYPE IPin_EndFlush_Proxy(
    803     IPin* This);
    804 void __RPC_STUB IPin_EndFlush_Stub(
    805     IRpcStubBuffer* This,
    806     IRpcChannelBuffer* pRpcChannelBuffer,
    807     PRPC_MESSAGE pRpcMessage,
    808     DWORD* pdwStubPhase);
    809 HRESULT STDMETHODCALLTYPE IPin_NewSegment_Proxy(
    810     IPin* This,
    811     REFERENCE_TIME tStart,
    812     REFERENCE_TIME tStop,
    813     double dRate);
    814 void __RPC_STUB IPin_NewSegment_Stub(
    815     IRpcStubBuffer* This,
    816     IRpcChannelBuffer* pRpcChannelBuffer,
    817     PRPC_MESSAGE pRpcMessage,
    818     DWORD* pdwStubPhase);
    819 
    820 #endif  /* __IPin_INTERFACE_DEFINED__ */
    821 
    822 typedef IPin *PPIN;
    823 /*****************************************************************************
    824  * IEnumPins interface
    825  */
    826 #ifndef __IEnumPins_INTERFACE_DEFINED__
    827 #define __IEnumPins_INTERFACE_DEFINED__
    828 
    829 DEFINE_GUID(IID_IEnumPins, 0x56a86892, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
    830 #if defined(__cplusplus) && !defined(CINTERFACE)
    831 MIDL_INTERFACE("56a86892-0ad4-11ce-b03a-0020af0ba770")
    832 IEnumPins : public IUnknown
    833 {
    834     virtual HRESULT STDMETHODCALLTYPE Next(
    835         ULONG cPins,
    836         IPin **ppPins,
    837         ULONG *pcFetched) = 0;
    838 
    839     virtual HRESULT STDMETHODCALLTYPE Skip(
    840         ULONG cPins) = 0;
    841 
    842     virtual HRESULT STDMETHODCALLTYPE Reset(
    843         ) = 0;
    844 
    845     virtual HRESULT STDMETHODCALLTYPE Clone(
    846         IEnumPins **ppEnum) = 0;
    847 
    848 };
    849 #ifdef __CRT_UUID_DECL
    850 __CRT_UUID_DECL(IEnumPins, 0x56a86892, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
    851 #endif
    852 #else
    853 typedef struct IEnumPinsVtbl {
    854     BEGIN_INTERFACE
    855 
    856     /*** IUnknown methods ***/
    857     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    858         IEnumPins* This,
    859         REFIID riid,
    860         void **ppvObject);
    861 
    862     ULONG (STDMETHODCALLTYPE *AddRef)(
    863         IEnumPins* This);
    864 
    865     ULONG (STDMETHODCALLTYPE *Release)(
    866         IEnumPins* This);
    867 
    868     /*** IEnumPins methods ***/
    869     HRESULT (STDMETHODCALLTYPE *Next)(
    870         IEnumPins* This,
    871         ULONG cPins,
    872         IPin **ppPins,
    873         ULONG *pcFetched);
    874 
    875     HRESULT (STDMETHODCALLTYPE *Skip)(
    876         IEnumPins* This,
    877         ULONG cPins);
    878 
    879     HRESULT (STDMETHODCALLTYPE *Reset)(
    880         IEnumPins* This);
    881 
    882     HRESULT (STDMETHODCALLTYPE *Clone)(
    883         IEnumPins* This,
    884         IEnumPins **ppEnum);
    885 
    886     END_INTERFACE
    887 } IEnumPinsVtbl;
    888 interface IEnumPins {
    889     CONST_VTBL IEnumPinsVtbl* lpVtbl;
    890 };
    891 
    892 #ifdef COBJMACROS
    893 #ifndef WIDL_C_INLINE_WRAPPERS
    894 /*** IUnknown methods ***/
    895 #define IEnumPins_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    896 #define IEnumPins_AddRef(This) (This)->lpVtbl->AddRef(This)
    897 #define IEnumPins_Release(This) (This)->lpVtbl->Release(This)
    898 /*** IEnumPins methods ***/
    899 #define IEnumPins_Next(This,cPins,ppPins,pcFetched) (This)->lpVtbl->Next(This,cPins,ppPins,pcFetched)
    900 #define IEnumPins_Skip(This,cPins) (This)->lpVtbl->Skip(This,cPins)
    901 #define IEnumPins_Reset(This) (This)->lpVtbl->Reset(This)
    902 #define IEnumPins_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
    903 #else
    904 /*** IUnknown methods ***/
    905 static FORCEINLINE HRESULT IEnumPins_QueryInterface(IEnumPins* This,REFIID riid,void **ppvObject) {
    906     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    907 }
    908 static FORCEINLINE ULONG IEnumPins_AddRef(IEnumPins* This) {
    909     return This->lpVtbl->AddRef(This);
    910 }
    911 static FORCEINLINE ULONG IEnumPins_Release(IEnumPins* This) {
    912     return This->lpVtbl->Release(This);
    913 }
    914 /*** IEnumPins methods ***/
    915 static FORCEINLINE HRESULT IEnumPins_Next(IEnumPins* This,ULONG cPins,IPin **ppPins,ULONG *pcFetched) {
    916     return This->lpVtbl->Next(This,cPins,ppPins,pcFetched);
    917 }
    918 static FORCEINLINE HRESULT IEnumPins_Skip(IEnumPins* This,ULONG cPins) {
    919     return This->lpVtbl->Skip(This,cPins);
    920 }
    921 static FORCEINLINE HRESULT IEnumPins_Reset(IEnumPins* This) {
    922     return This->lpVtbl->Reset(This);
    923 }
    924 static FORCEINLINE HRESULT IEnumPins_Clone(IEnumPins* This,IEnumPins **ppEnum) {
    925     return This->lpVtbl->Clone(This,ppEnum);
    926 }
    927 #endif
    928 #endif
    929 
    930 #endif
    931 
    932 HRESULT STDMETHODCALLTYPE IEnumPins_Next_Proxy(
    933     IEnumPins* This,
    934     ULONG cPins,
    935     IPin **ppPins,
    936     ULONG *pcFetched);
    937 void __RPC_STUB IEnumPins_Next_Stub(
    938     IRpcStubBuffer* This,
    939     IRpcChannelBuffer* pRpcChannelBuffer,
    940     PRPC_MESSAGE pRpcMessage,
    941     DWORD* pdwStubPhase);
    942 HRESULT STDMETHODCALLTYPE IEnumPins_Skip_Proxy(
    943     IEnumPins* This,
    944     ULONG cPins);
    945 void __RPC_STUB IEnumPins_Skip_Stub(
    946     IRpcStubBuffer* This,
    947     IRpcChannelBuffer* pRpcChannelBuffer,
    948     PRPC_MESSAGE pRpcMessage,
    949     DWORD* pdwStubPhase);
    950 HRESULT STDMETHODCALLTYPE IEnumPins_Reset_Proxy(
    951     IEnumPins* This);
    952 void __RPC_STUB IEnumPins_Reset_Stub(
    953     IRpcStubBuffer* This,
    954     IRpcChannelBuffer* pRpcChannelBuffer,
    955     PRPC_MESSAGE pRpcMessage,
    956     DWORD* pdwStubPhase);
    957 HRESULT STDMETHODCALLTYPE IEnumPins_Clone_Proxy(
    958     IEnumPins* This,
    959     IEnumPins **ppEnum);
    960 void __RPC_STUB IEnumPins_Clone_Stub(
    961     IRpcStubBuffer* This,
    962     IRpcChannelBuffer* pRpcChannelBuffer,
    963     PRPC_MESSAGE pRpcMessage,
    964     DWORD* pdwStubPhase);
    965 
    966 #endif  /* __IEnumPins_INTERFACE_DEFINED__ */
    967 
    968 typedef IEnumPins *PENUMPINS;
    969 /*****************************************************************************
    970  * IEnumMediaTypes interface
    971  */
    972 #ifndef __IEnumMediaTypes_INTERFACE_DEFINED__
    973 #define __IEnumMediaTypes_INTERFACE_DEFINED__
    974 
    975 DEFINE_GUID(IID_IEnumMediaTypes, 0x89c31040, 0x846b, 0x11ce, 0x97,0xd3, 0x00,0xaa,0x00,0x55,0x59,0x5a);
    976 #if defined(__cplusplus) && !defined(CINTERFACE)
    977 MIDL_INTERFACE("89c31040-846b-11ce-97d3-00aa0055595a")
    978 IEnumMediaTypes : public IUnknown
    979 {
    980     virtual HRESULT STDMETHODCALLTYPE Next(
    981         ULONG cMediaTypes,
    982         AM_MEDIA_TYPE **ppMediaTypes,
    983         ULONG *pcFetched) = 0;
    984 
    985     virtual HRESULT STDMETHODCALLTYPE Skip(
    986         ULONG cMediaTypes) = 0;
    987 
    988     virtual HRESULT STDMETHODCALLTYPE Reset(
    989         ) = 0;
    990 
    991     virtual HRESULT STDMETHODCALLTYPE Clone(
    992         IEnumMediaTypes **ppEnum) = 0;
    993 
    994 };
    995 #ifdef __CRT_UUID_DECL
    996 __CRT_UUID_DECL(IEnumMediaTypes, 0x89c31040, 0x846b, 0x11ce, 0x97,0xd3, 0x00,0xaa,0x00,0x55,0x59,0x5a)
    997 #endif
    998 #else
    999 typedef struct IEnumMediaTypesVtbl {
   1000     BEGIN_INTERFACE
   1001 
   1002     /*** IUnknown methods ***/
   1003     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1004         IEnumMediaTypes* This,
   1005         REFIID riid,
   1006         void **ppvObject);
   1007 
   1008     ULONG (STDMETHODCALLTYPE *AddRef)(
   1009         IEnumMediaTypes* This);
   1010 
   1011     ULONG (STDMETHODCALLTYPE *Release)(
   1012         IEnumMediaTypes* This);
   1013 
   1014     /*** IEnumMediaTypes methods ***/
   1015     HRESULT (STDMETHODCALLTYPE *Next)(
   1016         IEnumMediaTypes* This,
   1017         ULONG cMediaTypes,
   1018         AM_MEDIA_TYPE **ppMediaTypes,
   1019         ULONG *pcFetched);
   1020 
   1021     HRESULT (STDMETHODCALLTYPE *Skip)(
   1022         IEnumMediaTypes* This,
   1023         ULONG cMediaTypes);
   1024 
   1025     HRESULT (STDMETHODCALLTYPE *Reset)(
   1026         IEnumMediaTypes* This);
   1027 
   1028     HRESULT (STDMETHODCALLTYPE *Clone)(
   1029         IEnumMediaTypes* This,
   1030         IEnumMediaTypes **ppEnum);
   1031 
   1032     END_INTERFACE
   1033 } IEnumMediaTypesVtbl;
   1034 interface IEnumMediaTypes {
   1035     CONST_VTBL IEnumMediaTypesVtbl* lpVtbl;
   1036 };
   1037 
   1038 #ifdef COBJMACROS
   1039 #ifndef WIDL_C_INLINE_WRAPPERS
   1040 /*** IUnknown methods ***/
   1041 #define IEnumMediaTypes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1042 #define IEnumMediaTypes_AddRef(This) (This)->lpVtbl->AddRef(This)
   1043 #define IEnumMediaTypes_Release(This) (This)->lpVtbl->Release(This)
   1044 /*** IEnumMediaTypes methods ***/
   1045 #define IEnumMediaTypes_Next(This,cMediaTypes,ppMediaTypes,pcFetched) (This)->lpVtbl->Next(This,cMediaTypes,ppMediaTypes,pcFetched)
   1046 #define IEnumMediaTypes_Skip(This,cMediaTypes) (This)->lpVtbl->Skip(This,cMediaTypes)
   1047 #define IEnumMediaTypes_Reset(This) (This)->lpVtbl->Reset(This)
   1048 #define IEnumMediaTypes_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
   1049 #else
   1050 /*** IUnknown methods ***/
   1051 static FORCEINLINE HRESULT IEnumMediaTypes_QueryInterface(IEnumMediaTypes* This,REFIID riid,void **ppvObject) {
   1052     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1053 }
   1054 static FORCEINLINE ULONG IEnumMediaTypes_AddRef(IEnumMediaTypes* This) {
   1055     return This->lpVtbl->AddRef(This);
   1056 }
   1057 static FORCEINLINE ULONG IEnumMediaTypes_Release(IEnumMediaTypes* This) {
   1058     return This->lpVtbl->Release(This);
   1059 }
   1060 /*** IEnumMediaTypes methods ***/
   1061 static FORCEINLINE HRESULT IEnumMediaTypes_Next(IEnumMediaTypes* This,ULONG cMediaTypes,AM_MEDIA_TYPE **ppMediaTypes,ULONG *pcFetched) {
   1062     return This->lpVtbl->Next(This,cMediaTypes,ppMediaTypes,pcFetched);
   1063 }
   1064 static FORCEINLINE HRESULT IEnumMediaTypes_Skip(IEnumMediaTypes* This,ULONG cMediaTypes) {
   1065     return This->lpVtbl->Skip(This,cMediaTypes);
   1066 }
   1067 static FORCEINLINE HRESULT IEnumMediaTypes_Reset(IEnumMediaTypes* This) {
   1068     return This->lpVtbl->Reset(This);
   1069 }
   1070 static FORCEINLINE HRESULT IEnumMediaTypes_Clone(IEnumMediaTypes* This,IEnumMediaTypes **ppEnum) {
   1071     return This->lpVtbl->Clone(This,ppEnum);
   1072 }
   1073 #endif
   1074 #endif
   1075 
   1076 #endif
   1077 
   1078 HRESULT STDMETHODCALLTYPE IEnumMediaTypes_Next_Proxy(
   1079     IEnumMediaTypes* This,
   1080     ULONG cMediaTypes,
   1081     AM_MEDIA_TYPE **ppMediaTypes,
   1082     ULONG *pcFetched);
   1083 void __RPC_STUB IEnumMediaTypes_Next_Stub(
   1084     IRpcStubBuffer* This,
   1085     IRpcChannelBuffer* pRpcChannelBuffer,
   1086     PRPC_MESSAGE pRpcMessage,
   1087     DWORD* pdwStubPhase);
   1088 HRESULT STDMETHODCALLTYPE IEnumMediaTypes_Skip_Proxy(
   1089     IEnumMediaTypes* This,
   1090     ULONG cMediaTypes);
   1091 void __RPC_STUB IEnumMediaTypes_Skip_Stub(
   1092     IRpcStubBuffer* This,
   1093     IRpcChannelBuffer* pRpcChannelBuffer,
   1094     PRPC_MESSAGE pRpcMessage,
   1095     DWORD* pdwStubPhase);
   1096 HRESULT STDMETHODCALLTYPE IEnumMediaTypes_Reset_Proxy(
   1097     IEnumMediaTypes* This);
   1098 void __RPC_STUB IEnumMediaTypes_Reset_Stub(
   1099     IRpcStubBuffer* This,
   1100     IRpcChannelBuffer* pRpcChannelBuffer,
   1101     PRPC_MESSAGE pRpcMessage,
   1102     DWORD* pdwStubPhase);
   1103 HRESULT STDMETHODCALLTYPE IEnumMediaTypes_Clone_Proxy(
   1104     IEnumMediaTypes* This,
   1105     IEnumMediaTypes **ppEnum);
   1106 void __RPC_STUB IEnumMediaTypes_Clone_Stub(
   1107     IRpcStubBuffer* This,
   1108     IRpcChannelBuffer* pRpcChannelBuffer,
   1109     PRPC_MESSAGE pRpcMessage,
   1110     DWORD* pdwStubPhase);
   1111 
   1112 #endif  /* __IEnumMediaTypes_INTERFACE_DEFINED__ */
   1113 
   1114 typedef IEnumMediaTypes *PENUMMEDIATYPES;
   1115 /*****************************************************************************
   1116  * IFilterGraph interface
   1117  */
   1118 #ifndef __IFilterGraph_INTERFACE_DEFINED__
   1119 #define __IFilterGraph_INTERFACE_DEFINED__
   1120 
   1121 DEFINE_GUID(IID_IFilterGraph, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   1122 #if defined(__cplusplus) && !defined(CINTERFACE)
   1123 MIDL_INTERFACE("56a8689f-0ad4-11ce-b03a-0020af0ba770")
   1124 IFilterGraph : public IUnknown
   1125 {
   1126     virtual HRESULT STDMETHODCALLTYPE AddFilter(
   1127         IBaseFilter *pFilter,
   1128         LPCWSTR pName) = 0;
   1129 
   1130     virtual HRESULT STDMETHODCALLTYPE RemoveFilter(
   1131         IBaseFilter *pFilter) = 0;
   1132 
   1133     virtual HRESULT STDMETHODCALLTYPE EnumFilters(
   1134         IEnumFilters **ppEnum) = 0;
   1135 
   1136     virtual HRESULT STDMETHODCALLTYPE FindFilterByName(
   1137         LPCWSTR pName,
   1138         IBaseFilter **ppFilter) = 0;
   1139 
   1140     virtual HRESULT STDMETHODCALLTYPE ConnectDirect(
   1141         IPin *ppinOut,
   1142         IPin *ppinIn,
   1143         const AM_MEDIA_TYPE *pmt) = 0;
   1144 
   1145     virtual HRESULT STDMETHODCALLTYPE Reconnect(
   1146         IPin *ppin) = 0;
   1147 
   1148     virtual HRESULT STDMETHODCALLTYPE Disconnect(
   1149         IPin *ppin) = 0;
   1150 
   1151     virtual HRESULT STDMETHODCALLTYPE SetDefaultSyncSource(
   1152         ) = 0;
   1153 
   1154 };
   1155 #ifdef __CRT_UUID_DECL
   1156 __CRT_UUID_DECL(IFilterGraph, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   1157 #endif
   1158 #else
   1159 typedef struct IFilterGraphVtbl {
   1160     BEGIN_INTERFACE
   1161 
   1162     /*** IUnknown methods ***/
   1163     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1164         IFilterGraph* This,
   1165         REFIID riid,
   1166         void **ppvObject);
   1167 
   1168     ULONG (STDMETHODCALLTYPE *AddRef)(
   1169         IFilterGraph* This);
   1170 
   1171     ULONG (STDMETHODCALLTYPE *Release)(
   1172         IFilterGraph* This);
   1173 
   1174     /*** IFilterGraph methods ***/
   1175     HRESULT (STDMETHODCALLTYPE *AddFilter)(
   1176         IFilterGraph* This,
   1177         IBaseFilter *pFilter,
   1178         LPCWSTR pName);
   1179 
   1180     HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
   1181         IFilterGraph* This,
   1182         IBaseFilter *pFilter);
   1183 
   1184     HRESULT (STDMETHODCALLTYPE *EnumFilters)(
   1185         IFilterGraph* This,
   1186         IEnumFilters **ppEnum);
   1187 
   1188     HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
   1189         IFilterGraph* This,
   1190         LPCWSTR pName,
   1191         IBaseFilter **ppFilter);
   1192 
   1193     HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
   1194         IFilterGraph* This,
   1195         IPin *ppinOut,
   1196         IPin *ppinIn,
   1197         const AM_MEDIA_TYPE *pmt);
   1198 
   1199     HRESULT (STDMETHODCALLTYPE *Reconnect)(
   1200         IFilterGraph* This,
   1201         IPin *ppin);
   1202 
   1203     HRESULT (STDMETHODCALLTYPE *Disconnect)(
   1204         IFilterGraph* This,
   1205         IPin *ppin);
   1206 
   1207     HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
   1208         IFilterGraph* This);
   1209 
   1210     END_INTERFACE
   1211 } IFilterGraphVtbl;
   1212 interface IFilterGraph {
   1213     CONST_VTBL IFilterGraphVtbl* lpVtbl;
   1214 };
   1215 
   1216 #ifdef COBJMACROS
   1217 #ifndef WIDL_C_INLINE_WRAPPERS
   1218 /*** IUnknown methods ***/
   1219 #define IFilterGraph_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1220 #define IFilterGraph_AddRef(This) (This)->lpVtbl->AddRef(This)
   1221 #define IFilterGraph_Release(This) (This)->lpVtbl->Release(This)
   1222 /*** IFilterGraph methods ***/
   1223 #define IFilterGraph_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
   1224 #define IFilterGraph_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
   1225 #define IFilterGraph_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
   1226 #define IFilterGraph_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
   1227 #define IFilterGraph_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
   1228 #define IFilterGraph_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
   1229 #define IFilterGraph_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
   1230 #define IFilterGraph_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
   1231 #else
   1232 /*** IUnknown methods ***/
   1233 static FORCEINLINE HRESULT IFilterGraph_QueryInterface(IFilterGraph* This,REFIID riid,void **ppvObject) {
   1234     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1235 }
   1236 static FORCEINLINE ULONG IFilterGraph_AddRef(IFilterGraph* This) {
   1237     return This->lpVtbl->AddRef(This);
   1238 }
   1239 static FORCEINLINE ULONG IFilterGraph_Release(IFilterGraph* This) {
   1240     return This->lpVtbl->Release(This);
   1241 }
   1242 /*** IFilterGraph methods ***/
   1243 static FORCEINLINE HRESULT IFilterGraph_AddFilter(IFilterGraph* This,IBaseFilter *pFilter,LPCWSTR pName) {
   1244     return This->lpVtbl->AddFilter(This,pFilter,pName);
   1245 }
   1246 static FORCEINLINE HRESULT IFilterGraph_RemoveFilter(IFilterGraph* This,IBaseFilter *pFilter) {
   1247     return This->lpVtbl->RemoveFilter(This,pFilter);
   1248 }
   1249 static FORCEINLINE HRESULT IFilterGraph_EnumFilters(IFilterGraph* This,IEnumFilters **ppEnum) {
   1250     return This->lpVtbl->EnumFilters(This,ppEnum);
   1251 }
   1252 static FORCEINLINE HRESULT IFilterGraph_FindFilterByName(IFilterGraph* This,LPCWSTR pName,IBaseFilter **ppFilter) {
   1253     return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
   1254 }
   1255 static FORCEINLINE HRESULT IFilterGraph_ConnectDirect(IFilterGraph* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) {
   1256     return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt);
   1257 }
   1258 static FORCEINLINE HRESULT IFilterGraph_Reconnect(IFilterGraph* This,IPin *ppin) {
   1259     return This->lpVtbl->Reconnect(This,ppin);
   1260 }
   1261 static FORCEINLINE HRESULT IFilterGraph_Disconnect(IFilterGraph* This,IPin *ppin) {
   1262     return This->lpVtbl->Disconnect(This,ppin);
   1263 }
   1264 static FORCEINLINE HRESULT IFilterGraph_SetDefaultSyncSource(IFilterGraph* This) {
   1265     return This->lpVtbl->SetDefaultSyncSource(This);
   1266 }
   1267 #endif
   1268 #endif
   1269 
   1270 #endif
   1271 
   1272 HRESULT STDMETHODCALLTYPE IFilterGraph_AddFilter_Proxy(
   1273     IFilterGraph* This,
   1274     IBaseFilter *pFilter,
   1275     LPCWSTR pName);
   1276 void __RPC_STUB IFilterGraph_AddFilter_Stub(
   1277     IRpcStubBuffer* This,
   1278     IRpcChannelBuffer* pRpcChannelBuffer,
   1279     PRPC_MESSAGE pRpcMessage,
   1280     DWORD* pdwStubPhase);
   1281 HRESULT STDMETHODCALLTYPE IFilterGraph_RemoveFilter_Proxy(
   1282     IFilterGraph* This,
   1283     IBaseFilter *pFilter);
   1284 void __RPC_STUB IFilterGraph_RemoveFilter_Stub(
   1285     IRpcStubBuffer* This,
   1286     IRpcChannelBuffer* pRpcChannelBuffer,
   1287     PRPC_MESSAGE pRpcMessage,
   1288     DWORD* pdwStubPhase);
   1289 HRESULT STDMETHODCALLTYPE IFilterGraph_EnumFilters_Proxy(
   1290     IFilterGraph* This,
   1291     IEnumFilters **ppEnum);
   1292 void __RPC_STUB IFilterGraph_EnumFilters_Stub(
   1293     IRpcStubBuffer* This,
   1294     IRpcChannelBuffer* pRpcChannelBuffer,
   1295     PRPC_MESSAGE pRpcMessage,
   1296     DWORD* pdwStubPhase);
   1297 HRESULT STDMETHODCALLTYPE IFilterGraph_FindFilterByName_Proxy(
   1298     IFilterGraph* This,
   1299     LPCWSTR pName,
   1300     IBaseFilter **ppFilter);
   1301 void __RPC_STUB IFilterGraph_FindFilterByName_Stub(
   1302     IRpcStubBuffer* This,
   1303     IRpcChannelBuffer* pRpcChannelBuffer,
   1304     PRPC_MESSAGE pRpcMessage,
   1305     DWORD* pdwStubPhase);
   1306 HRESULT STDMETHODCALLTYPE IFilterGraph_ConnectDirect_Proxy(
   1307     IFilterGraph* This,
   1308     IPin *ppinOut,
   1309     IPin *ppinIn,
   1310     const AM_MEDIA_TYPE *pmt);
   1311 void __RPC_STUB IFilterGraph_ConnectDirect_Stub(
   1312     IRpcStubBuffer* This,
   1313     IRpcChannelBuffer* pRpcChannelBuffer,
   1314     PRPC_MESSAGE pRpcMessage,
   1315     DWORD* pdwStubPhase);
   1316 HRESULT STDMETHODCALLTYPE IFilterGraph_Reconnect_Proxy(
   1317     IFilterGraph* This,
   1318     IPin *ppin);
   1319 void __RPC_STUB IFilterGraph_Reconnect_Stub(
   1320     IRpcStubBuffer* This,
   1321     IRpcChannelBuffer* pRpcChannelBuffer,
   1322     PRPC_MESSAGE pRpcMessage,
   1323     DWORD* pdwStubPhase);
   1324 HRESULT STDMETHODCALLTYPE IFilterGraph_Disconnect_Proxy(
   1325     IFilterGraph* This,
   1326     IPin *ppin);
   1327 void __RPC_STUB IFilterGraph_Disconnect_Stub(
   1328     IRpcStubBuffer* This,
   1329     IRpcChannelBuffer* pRpcChannelBuffer,
   1330     PRPC_MESSAGE pRpcMessage,
   1331     DWORD* pdwStubPhase);
   1332 HRESULT STDMETHODCALLTYPE IFilterGraph_SetDefaultSyncSource_Proxy(
   1333     IFilterGraph* This);
   1334 void __RPC_STUB IFilterGraph_SetDefaultSyncSource_Stub(
   1335     IRpcStubBuffer* This,
   1336     IRpcChannelBuffer* pRpcChannelBuffer,
   1337     PRPC_MESSAGE pRpcMessage,
   1338     DWORD* pdwStubPhase);
   1339 
   1340 #endif  /* __IFilterGraph_INTERFACE_DEFINED__ */
   1341 
   1342 typedef IFilterGraph *PFILTERGRAPH;
   1343 /*****************************************************************************
   1344  * IEnumFilters interface
   1345  */
   1346 #ifndef __IEnumFilters_INTERFACE_DEFINED__
   1347 #define __IEnumFilters_INTERFACE_DEFINED__
   1348 
   1349 DEFINE_GUID(IID_IEnumFilters, 0x56a86893, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   1350 #if defined(__cplusplus) && !defined(CINTERFACE)
   1351 MIDL_INTERFACE("56a86893-0ad4-11ce-b03a-0020af0ba770")
   1352 IEnumFilters : public IUnknown
   1353 {
   1354     virtual HRESULT STDMETHODCALLTYPE Next(
   1355         ULONG cFilters,
   1356         IBaseFilter **ppFilter,
   1357         ULONG *pcFetched) = 0;
   1358 
   1359     virtual HRESULT STDMETHODCALLTYPE Skip(
   1360         ULONG cFilters) = 0;
   1361 
   1362     virtual HRESULT STDMETHODCALLTYPE Reset(
   1363         ) = 0;
   1364 
   1365     virtual HRESULT STDMETHODCALLTYPE Clone(
   1366         IEnumFilters **ppEnum) = 0;
   1367 
   1368 };
   1369 #ifdef __CRT_UUID_DECL
   1370 __CRT_UUID_DECL(IEnumFilters, 0x56a86893, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   1371 #endif
   1372 #else
   1373 typedef struct IEnumFiltersVtbl {
   1374     BEGIN_INTERFACE
   1375 
   1376     /*** IUnknown methods ***/
   1377     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1378         IEnumFilters* This,
   1379         REFIID riid,
   1380         void **ppvObject);
   1381 
   1382     ULONG (STDMETHODCALLTYPE *AddRef)(
   1383         IEnumFilters* This);
   1384 
   1385     ULONG (STDMETHODCALLTYPE *Release)(
   1386         IEnumFilters* This);
   1387 
   1388     /*** IEnumFilters methods ***/
   1389     HRESULT (STDMETHODCALLTYPE *Next)(
   1390         IEnumFilters* This,
   1391         ULONG cFilters,
   1392         IBaseFilter **ppFilter,
   1393         ULONG *pcFetched);
   1394 
   1395     HRESULT (STDMETHODCALLTYPE *Skip)(
   1396         IEnumFilters* This,
   1397         ULONG cFilters);
   1398 
   1399     HRESULT (STDMETHODCALLTYPE *Reset)(
   1400         IEnumFilters* This);
   1401 
   1402     HRESULT (STDMETHODCALLTYPE *Clone)(
   1403         IEnumFilters* This,
   1404         IEnumFilters **ppEnum);
   1405 
   1406     END_INTERFACE
   1407 } IEnumFiltersVtbl;
   1408 interface IEnumFilters {
   1409     CONST_VTBL IEnumFiltersVtbl* lpVtbl;
   1410 };
   1411 
   1412 #ifdef COBJMACROS
   1413 #ifndef WIDL_C_INLINE_WRAPPERS
   1414 /*** IUnknown methods ***/
   1415 #define IEnumFilters_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1416 #define IEnumFilters_AddRef(This) (This)->lpVtbl->AddRef(This)
   1417 #define IEnumFilters_Release(This) (This)->lpVtbl->Release(This)
   1418 /*** IEnumFilters methods ***/
   1419 #define IEnumFilters_Next(This,cFilters,ppFilter,pcFetched) (This)->lpVtbl->Next(This,cFilters,ppFilter,pcFetched)
   1420 #define IEnumFilters_Skip(This,cFilters) (This)->lpVtbl->Skip(This,cFilters)
   1421 #define IEnumFilters_Reset(This) (This)->lpVtbl->Reset(This)
   1422 #define IEnumFilters_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
   1423 #else
   1424 /*** IUnknown methods ***/
   1425 static FORCEINLINE HRESULT IEnumFilters_QueryInterface(IEnumFilters* This,REFIID riid,void **ppvObject) {
   1426     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1427 }
   1428 static FORCEINLINE ULONG IEnumFilters_AddRef(IEnumFilters* This) {
   1429     return This->lpVtbl->AddRef(This);
   1430 }
   1431 static FORCEINLINE ULONG IEnumFilters_Release(IEnumFilters* This) {
   1432     return This->lpVtbl->Release(This);
   1433 }
   1434 /*** IEnumFilters methods ***/
   1435 static FORCEINLINE HRESULT IEnumFilters_Next(IEnumFilters* This,ULONG cFilters,IBaseFilter **ppFilter,ULONG *pcFetched) {
   1436     return This->lpVtbl->Next(This,cFilters,ppFilter,pcFetched);
   1437 }
   1438 static FORCEINLINE HRESULT IEnumFilters_Skip(IEnumFilters* This,ULONG cFilters) {
   1439     return This->lpVtbl->Skip(This,cFilters);
   1440 }
   1441 static FORCEINLINE HRESULT IEnumFilters_Reset(IEnumFilters* This) {
   1442     return This->lpVtbl->Reset(This);
   1443 }
   1444 static FORCEINLINE HRESULT IEnumFilters_Clone(IEnumFilters* This,IEnumFilters **ppEnum) {
   1445     return This->lpVtbl->Clone(This,ppEnum);
   1446 }
   1447 #endif
   1448 #endif
   1449 
   1450 #endif
   1451 
   1452 HRESULT STDMETHODCALLTYPE IEnumFilters_Next_Proxy(
   1453     IEnumFilters* This,
   1454     ULONG cFilters,
   1455     IBaseFilter **ppFilter,
   1456     ULONG *pcFetched);
   1457 void __RPC_STUB IEnumFilters_Next_Stub(
   1458     IRpcStubBuffer* This,
   1459     IRpcChannelBuffer* pRpcChannelBuffer,
   1460     PRPC_MESSAGE pRpcMessage,
   1461     DWORD* pdwStubPhase);
   1462 HRESULT STDMETHODCALLTYPE IEnumFilters_Skip_Proxy(
   1463     IEnumFilters* This,
   1464     ULONG cFilters);
   1465 void __RPC_STUB IEnumFilters_Skip_Stub(
   1466     IRpcStubBuffer* This,
   1467     IRpcChannelBuffer* pRpcChannelBuffer,
   1468     PRPC_MESSAGE pRpcMessage,
   1469     DWORD* pdwStubPhase);
   1470 HRESULT STDMETHODCALLTYPE IEnumFilters_Reset_Proxy(
   1471     IEnumFilters* This);
   1472 void __RPC_STUB IEnumFilters_Reset_Stub(
   1473     IRpcStubBuffer* This,
   1474     IRpcChannelBuffer* pRpcChannelBuffer,
   1475     PRPC_MESSAGE pRpcMessage,
   1476     DWORD* pdwStubPhase);
   1477 HRESULT STDMETHODCALLTYPE IEnumFilters_Clone_Proxy(
   1478     IEnumFilters* This,
   1479     IEnumFilters **ppEnum);
   1480 void __RPC_STUB IEnumFilters_Clone_Stub(
   1481     IRpcStubBuffer* This,
   1482     IRpcChannelBuffer* pRpcChannelBuffer,
   1483     PRPC_MESSAGE pRpcMessage,
   1484     DWORD* pdwStubPhase);
   1485 
   1486 #endif  /* __IEnumFilters_INTERFACE_DEFINED__ */
   1487 
   1488 typedef IEnumFilters *PENUMFILTERS;
   1489 /*****************************************************************************
   1490  * IMediaFilter interface
   1491  */
   1492 #ifndef __IMediaFilter_INTERFACE_DEFINED__
   1493 #define __IMediaFilter_INTERFACE_DEFINED__
   1494 
   1495 typedef enum _FilterState {
   1496     State_Stopped = 0,
   1497     State_Paused = 1,
   1498     State_Running = 2
   1499 } FILTER_STATE;
   1500 DEFINE_GUID(IID_IMediaFilter, 0x56a86899, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   1501 #if defined(__cplusplus) && !defined(CINTERFACE)
   1502 MIDL_INTERFACE("56a86899-0ad4-11ce-b03a-0020af0ba770")
   1503 IMediaFilter : public IPersist
   1504 {
   1505     virtual HRESULT STDMETHODCALLTYPE Stop(
   1506         ) = 0;
   1507 
   1508     virtual HRESULT STDMETHODCALLTYPE Pause(
   1509         ) = 0;
   1510 
   1511     virtual HRESULT STDMETHODCALLTYPE Run(
   1512         REFERENCE_TIME tStart) = 0;
   1513 
   1514     virtual HRESULT STDMETHODCALLTYPE GetState(
   1515         DWORD dwMilliSecsTimeout,
   1516         FILTER_STATE *State) = 0;
   1517 
   1518     virtual HRESULT STDMETHODCALLTYPE SetSyncSource(
   1519         IReferenceClock *pClock) = 0;
   1520 
   1521     virtual HRESULT STDMETHODCALLTYPE GetSyncSource(
   1522         IReferenceClock **pClock) = 0;
   1523 
   1524 };
   1525 #ifdef __CRT_UUID_DECL
   1526 __CRT_UUID_DECL(IMediaFilter, 0x56a86899, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   1527 #endif
   1528 #else
   1529 typedef struct IMediaFilterVtbl {
   1530     BEGIN_INTERFACE
   1531 
   1532     /*** IUnknown methods ***/
   1533     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1534         IMediaFilter* This,
   1535         REFIID riid,
   1536         void **ppvObject);
   1537 
   1538     ULONG (STDMETHODCALLTYPE *AddRef)(
   1539         IMediaFilter* This);
   1540 
   1541     ULONG (STDMETHODCALLTYPE *Release)(
   1542         IMediaFilter* This);
   1543 
   1544     /*** IPersist methods ***/
   1545     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   1546         IMediaFilter* This,
   1547         CLSID *pClassID);
   1548 
   1549     /*** IMediaFilter methods ***/
   1550     HRESULT (STDMETHODCALLTYPE *Stop)(
   1551         IMediaFilter* This);
   1552 
   1553     HRESULT (STDMETHODCALLTYPE *Pause)(
   1554         IMediaFilter* This);
   1555 
   1556     HRESULT (STDMETHODCALLTYPE *Run)(
   1557         IMediaFilter* This,
   1558         REFERENCE_TIME tStart);
   1559 
   1560     HRESULT (STDMETHODCALLTYPE *GetState)(
   1561         IMediaFilter* This,
   1562         DWORD dwMilliSecsTimeout,
   1563         FILTER_STATE *State);
   1564 
   1565     HRESULT (STDMETHODCALLTYPE *SetSyncSource)(
   1566         IMediaFilter* This,
   1567         IReferenceClock *pClock);
   1568 
   1569     HRESULT (STDMETHODCALLTYPE *GetSyncSource)(
   1570         IMediaFilter* This,
   1571         IReferenceClock **pClock);
   1572 
   1573     END_INTERFACE
   1574 } IMediaFilterVtbl;
   1575 interface IMediaFilter {
   1576     CONST_VTBL IMediaFilterVtbl* lpVtbl;
   1577 };
   1578 
   1579 #ifdef COBJMACROS
   1580 #ifndef WIDL_C_INLINE_WRAPPERS
   1581 /*** IUnknown methods ***/
   1582 #define IMediaFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1583 #define IMediaFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
   1584 #define IMediaFilter_Release(This) (This)->lpVtbl->Release(This)
   1585 /*** IPersist methods ***/
   1586 #define IMediaFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   1587 /*** IMediaFilter methods ***/
   1588 #define IMediaFilter_Stop(This) (This)->lpVtbl->Stop(This)
   1589 #define IMediaFilter_Pause(This) (This)->lpVtbl->Pause(This)
   1590 #define IMediaFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
   1591 #define IMediaFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State)
   1592 #define IMediaFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
   1593 #define IMediaFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock)
   1594 #else
   1595 /*** IUnknown methods ***/
   1596 static FORCEINLINE HRESULT IMediaFilter_QueryInterface(IMediaFilter* This,REFIID riid,void **ppvObject) {
   1597     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1598 }
   1599 static FORCEINLINE ULONG IMediaFilter_AddRef(IMediaFilter* This) {
   1600     return This->lpVtbl->AddRef(This);
   1601 }
   1602 static FORCEINLINE ULONG IMediaFilter_Release(IMediaFilter* This) {
   1603     return This->lpVtbl->Release(This);
   1604 }
   1605 /*** IPersist methods ***/
   1606 static FORCEINLINE HRESULT IMediaFilter_GetClassID(IMediaFilter* This,CLSID *pClassID) {
   1607     return This->lpVtbl->GetClassID(This,pClassID);
   1608 }
   1609 /*** IMediaFilter methods ***/
   1610 static FORCEINLINE HRESULT IMediaFilter_Stop(IMediaFilter* This) {
   1611     return This->lpVtbl->Stop(This);
   1612 }
   1613 static FORCEINLINE HRESULT IMediaFilter_Pause(IMediaFilter* This) {
   1614     return This->lpVtbl->Pause(This);
   1615 }
   1616 static FORCEINLINE HRESULT IMediaFilter_Run(IMediaFilter* This,REFERENCE_TIME tStart) {
   1617     return This->lpVtbl->Run(This,tStart);
   1618 }
   1619 static FORCEINLINE HRESULT IMediaFilter_GetState(IMediaFilter* This,DWORD dwMilliSecsTimeout,FILTER_STATE *State) {
   1620     return This->lpVtbl->GetState(This,dwMilliSecsTimeout,State);
   1621 }
   1622 static FORCEINLINE HRESULT IMediaFilter_SetSyncSource(IMediaFilter* This,IReferenceClock *pClock) {
   1623     return This->lpVtbl->SetSyncSource(This,pClock);
   1624 }
   1625 static FORCEINLINE HRESULT IMediaFilter_GetSyncSource(IMediaFilter* This,IReferenceClock **pClock) {
   1626     return This->lpVtbl->GetSyncSource(This,pClock);
   1627 }
   1628 #endif
   1629 #endif
   1630 
   1631 #endif
   1632 
   1633 HRESULT STDMETHODCALLTYPE IMediaFilter_Stop_Proxy(
   1634     IMediaFilter* This);
   1635 void __RPC_STUB IMediaFilter_Stop_Stub(
   1636     IRpcStubBuffer* This,
   1637     IRpcChannelBuffer* pRpcChannelBuffer,
   1638     PRPC_MESSAGE pRpcMessage,
   1639     DWORD* pdwStubPhase);
   1640 HRESULT STDMETHODCALLTYPE IMediaFilter_Pause_Proxy(
   1641     IMediaFilter* This);
   1642 void __RPC_STUB IMediaFilter_Pause_Stub(
   1643     IRpcStubBuffer* This,
   1644     IRpcChannelBuffer* pRpcChannelBuffer,
   1645     PRPC_MESSAGE pRpcMessage,
   1646     DWORD* pdwStubPhase);
   1647 HRESULT STDMETHODCALLTYPE IMediaFilter_Run_Proxy(
   1648     IMediaFilter* This,
   1649     REFERENCE_TIME tStart);
   1650 void __RPC_STUB IMediaFilter_Run_Stub(
   1651     IRpcStubBuffer* This,
   1652     IRpcChannelBuffer* pRpcChannelBuffer,
   1653     PRPC_MESSAGE pRpcMessage,
   1654     DWORD* pdwStubPhase);
   1655 HRESULT STDMETHODCALLTYPE IMediaFilter_GetState_Proxy(
   1656     IMediaFilter* This,
   1657     DWORD dwMilliSecsTimeout,
   1658     FILTER_STATE *State);
   1659 void __RPC_STUB IMediaFilter_GetState_Stub(
   1660     IRpcStubBuffer* This,
   1661     IRpcChannelBuffer* pRpcChannelBuffer,
   1662     PRPC_MESSAGE pRpcMessage,
   1663     DWORD* pdwStubPhase);
   1664 HRESULT STDMETHODCALLTYPE IMediaFilter_SetSyncSource_Proxy(
   1665     IMediaFilter* This,
   1666     IReferenceClock *pClock);
   1667 void __RPC_STUB IMediaFilter_SetSyncSource_Stub(
   1668     IRpcStubBuffer* This,
   1669     IRpcChannelBuffer* pRpcChannelBuffer,
   1670     PRPC_MESSAGE pRpcMessage,
   1671     DWORD* pdwStubPhase);
   1672 HRESULT STDMETHODCALLTYPE IMediaFilter_GetSyncSource_Proxy(
   1673     IMediaFilter* This,
   1674     IReferenceClock **pClock);
   1675 void __RPC_STUB IMediaFilter_GetSyncSource_Stub(
   1676     IRpcStubBuffer* This,
   1677     IRpcChannelBuffer* pRpcChannelBuffer,
   1678     PRPC_MESSAGE pRpcMessage,
   1679     DWORD* pdwStubPhase);
   1680 
   1681 #endif  /* __IMediaFilter_INTERFACE_DEFINED__ */
   1682 
   1683 typedef IMediaFilter *PMEDIAFILTER;
   1684 /*****************************************************************************
   1685  * IBaseFilter interface
   1686  */
   1687 #ifndef __IBaseFilter_INTERFACE_DEFINED__
   1688 #define __IBaseFilter_INTERFACE_DEFINED__
   1689 
   1690 typedef struct _FilterInfo {
   1691     WCHAR achName[128];
   1692     IFilterGraph *pGraph;
   1693 } FILTER_INFO;
   1694 DEFINE_GUID(IID_IBaseFilter, 0x56a86895, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   1695 #if defined(__cplusplus) && !defined(CINTERFACE)
   1696 MIDL_INTERFACE("56a86895-0ad4-11ce-b03a-0020af0ba770")
   1697 IBaseFilter : public IMediaFilter
   1698 {
   1699     virtual HRESULT STDMETHODCALLTYPE EnumPins(
   1700         IEnumPins **ppEnum) = 0;
   1701 
   1702     virtual HRESULT STDMETHODCALLTYPE FindPin(
   1703         LPCWSTR Id,
   1704         IPin **ppPin) = 0;
   1705 
   1706     virtual HRESULT STDMETHODCALLTYPE QueryFilterInfo(
   1707         FILTER_INFO *pInfo) = 0;
   1708 
   1709     virtual HRESULT STDMETHODCALLTYPE JoinFilterGraph(
   1710         IFilterGraph *pGraph,
   1711         LPCWSTR pName) = 0;
   1712 
   1713     virtual HRESULT STDMETHODCALLTYPE QueryVendorInfo(
   1714         LPWSTR *pVendorInfo) = 0;
   1715 
   1716 };
   1717 #ifdef __CRT_UUID_DECL
   1718 __CRT_UUID_DECL(IBaseFilter, 0x56a86895, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   1719 #endif
   1720 #else
   1721 typedef struct IBaseFilterVtbl {
   1722     BEGIN_INTERFACE
   1723 
   1724     /*** IUnknown methods ***/
   1725     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1726         IBaseFilter* This,
   1727         REFIID riid,
   1728         void **ppvObject);
   1729 
   1730     ULONG (STDMETHODCALLTYPE *AddRef)(
   1731         IBaseFilter* This);
   1732 
   1733     ULONG (STDMETHODCALLTYPE *Release)(
   1734         IBaseFilter* This);
   1735 
   1736     /*** IPersist methods ***/
   1737     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   1738         IBaseFilter* This,
   1739         CLSID *pClassID);
   1740 
   1741     /*** IMediaFilter methods ***/
   1742     HRESULT (STDMETHODCALLTYPE *Stop)(
   1743         IBaseFilter* This);
   1744 
   1745     HRESULT (STDMETHODCALLTYPE *Pause)(
   1746         IBaseFilter* This);
   1747 
   1748     HRESULT (STDMETHODCALLTYPE *Run)(
   1749         IBaseFilter* This,
   1750         REFERENCE_TIME tStart);
   1751 
   1752     HRESULT (STDMETHODCALLTYPE *GetState)(
   1753         IBaseFilter* This,
   1754         DWORD dwMilliSecsTimeout,
   1755         FILTER_STATE *State);
   1756 
   1757     HRESULT (STDMETHODCALLTYPE *SetSyncSource)(
   1758         IBaseFilter* This,
   1759         IReferenceClock *pClock);
   1760 
   1761     HRESULT (STDMETHODCALLTYPE *GetSyncSource)(
   1762         IBaseFilter* This,
   1763         IReferenceClock **pClock);
   1764 
   1765     /*** IBaseFilter methods ***/
   1766     HRESULT (STDMETHODCALLTYPE *EnumPins)(
   1767         IBaseFilter* This,
   1768         IEnumPins **ppEnum);
   1769 
   1770     HRESULT (STDMETHODCALLTYPE *FindPin)(
   1771         IBaseFilter* This,
   1772         LPCWSTR Id,
   1773         IPin **ppPin);
   1774 
   1775     HRESULT (STDMETHODCALLTYPE *QueryFilterInfo)(
   1776         IBaseFilter* This,
   1777         FILTER_INFO *pInfo);
   1778 
   1779     HRESULT (STDMETHODCALLTYPE *JoinFilterGraph)(
   1780         IBaseFilter* This,
   1781         IFilterGraph *pGraph,
   1782         LPCWSTR pName);
   1783 
   1784     HRESULT (STDMETHODCALLTYPE *QueryVendorInfo)(
   1785         IBaseFilter* This,
   1786         LPWSTR *pVendorInfo);
   1787 
   1788     END_INTERFACE
   1789 } IBaseFilterVtbl;
   1790 interface IBaseFilter {
   1791     CONST_VTBL IBaseFilterVtbl* lpVtbl;
   1792 };
   1793 
   1794 #ifdef COBJMACROS
   1795 #ifndef WIDL_C_INLINE_WRAPPERS
   1796 /*** IUnknown methods ***/
   1797 #define IBaseFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1798 #define IBaseFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
   1799 #define IBaseFilter_Release(This) (This)->lpVtbl->Release(This)
   1800 /*** IPersist methods ***/
   1801 #define IBaseFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   1802 /*** IMediaFilter methods ***/
   1803 #define IBaseFilter_Stop(This) (This)->lpVtbl->Stop(This)
   1804 #define IBaseFilter_Pause(This) (This)->lpVtbl->Pause(This)
   1805 #define IBaseFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
   1806 #define IBaseFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State)
   1807 #define IBaseFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
   1808 #define IBaseFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock)
   1809 /*** IBaseFilter methods ***/
   1810 #define IBaseFilter_EnumPins(This,ppEnum) (This)->lpVtbl->EnumPins(This,ppEnum)
   1811 #define IBaseFilter_FindPin(This,Id,ppPin) (This)->lpVtbl->FindPin(This,Id,ppPin)
   1812 #define IBaseFilter_QueryFilterInfo(This,pInfo) (This)->lpVtbl->QueryFilterInfo(This,pInfo)
   1813 #define IBaseFilter_JoinFilterGraph(This,pGraph,pName) (This)->lpVtbl->JoinFilterGraph(This,pGraph,pName)
   1814 #define IBaseFilter_QueryVendorInfo(This,pVendorInfo) (This)->lpVtbl->QueryVendorInfo(This,pVendorInfo)
   1815 #else
   1816 /*** IUnknown methods ***/
   1817 static FORCEINLINE HRESULT IBaseFilter_QueryInterface(IBaseFilter* This,REFIID riid,void **ppvObject) {
   1818     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1819 }
   1820 static FORCEINLINE ULONG IBaseFilter_AddRef(IBaseFilter* This) {
   1821     return This->lpVtbl->AddRef(This);
   1822 }
   1823 static FORCEINLINE ULONG IBaseFilter_Release(IBaseFilter* This) {
   1824     return This->lpVtbl->Release(This);
   1825 }
   1826 /*** IPersist methods ***/
   1827 static FORCEINLINE HRESULT IBaseFilter_GetClassID(IBaseFilter* This,CLSID *pClassID) {
   1828     return This->lpVtbl->GetClassID(This,pClassID);
   1829 }
   1830 /*** IMediaFilter methods ***/
   1831 static FORCEINLINE HRESULT IBaseFilter_Stop(IBaseFilter* This) {
   1832     return This->lpVtbl->Stop(This);
   1833 }
   1834 static FORCEINLINE HRESULT IBaseFilter_Pause(IBaseFilter* This) {
   1835     return This->lpVtbl->Pause(This);
   1836 }
   1837 static FORCEINLINE HRESULT IBaseFilter_Run(IBaseFilter* This,REFERENCE_TIME tStart) {
   1838     return This->lpVtbl->Run(This,tStart);
   1839 }
   1840 static FORCEINLINE HRESULT IBaseFilter_GetState(IBaseFilter* This,DWORD dwMilliSecsTimeout,FILTER_STATE *State) {
   1841     return This->lpVtbl->GetState(This,dwMilliSecsTimeout,State);
   1842 }
   1843 static FORCEINLINE HRESULT IBaseFilter_SetSyncSource(IBaseFilter* This,IReferenceClock *pClock) {
   1844     return This->lpVtbl->SetSyncSource(This,pClock);
   1845 }
   1846 static FORCEINLINE HRESULT IBaseFilter_GetSyncSource(IBaseFilter* This,IReferenceClock **pClock) {
   1847     return This->lpVtbl->GetSyncSource(This,pClock);
   1848 }
   1849 /*** IBaseFilter methods ***/
   1850 static FORCEINLINE HRESULT IBaseFilter_EnumPins(IBaseFilter* This,IEnumPins **ppEnum) {
   1851     return This->lpVtbl->EnumPins(This,ppEnum);
   1852 }
   1853 static FORCEINLINE HRESULT IBaseFilter_FindPin(IBaseFilter* This,LPCWSTR Id,IPin **ppPin) {
   1854     return This->lpVtbl->FindPin(This,Id,ppPin);
   1855 }
   1856 static FORCEINLINE HRESULT IBaseFilter_QueryFilterInfo(IBaseFilter* This,FILTER_INFO *pInfo) {
   1857     return This->lpVtbl->QueryFilterInfo(This,pInfo);
   1858 }
   1859 static FORCEINLINE HRESULT IBaseFilter_JoinFilterGraph(IBaseFilter* This,IFilterGraph *pGraph,LPCWSTR pName) {
   1860     return This->lpVtbl->JoinFilterGraph(This,pGraph,pName);
   1861 }
   1862 static FORCEINLINE HRESULT IBaseFilter_QueryVendorInfo(IBaseFilter* This,LPWSTR *pVendorInfo) {
   1863     return This->lpVtbl->QueryVendorInfo(This,pVendorInfo);
   1864 }
   1865 #endif
   1866 #endif
   1867 
   1868 #endif
   1869 
   1870 HRESULT STDMETHODCALLTYPE IBaseFilter_EnumPins_Proxy(
   1871     IBaseFilter* This,
   1872     IEnumPins **ppEnum);
   1873 void __RPC_STUB IBaseFilter_EnumPins_Stub(
   1874     IRpcStubBuffer* This,
   1875     IRpcChannelBuffer* pRpcChannelBuffer,
   1876     PRPC_MESSAGE pRpcMessage,
   1877     DWORD* pdwStubPhase);
   1878 HRESULT STDMETHODCALLTYPE IBaseFilter_FindPin_Proxy(
   1879     IBaseFilter* This,
   1880     LPCWSTR Id,
   1881     IPin **ppPin);
   1882 void __RPC_STUB IBaseFilter_FindPin_Stub(
   1883     IRpcStubBuffer* This,
   1884     IRpcChannelBuffer* pRpcChannelBuffer,
   1885     PRPC_MESSAGE pRpcMessage,
   1886     DWORD* pdwStubPhase);
   1887 HRESULT STDMETHODCALLTYPE IBaseFilter_QueryFilterInfo_Proxy(
   1888     IBaseFilter* This,
   1889     FILTER_INFO *pInfo);
   1890 void __RPC_STUB IBaseFilter_QueryFilterInfo_Stub(
   1891     IRpcStubBuffer* This,
   1892     IRpcChannelBuffer* pRpcChannelBuffer,
   1893     PRPC_MESSAGE pRpcMessage,
   1894     DWORD* pdwStubPhase);
   1895 HRESULT STDMETHODCALLTYPE IBaseFilter_JoinFilterGraph_Proxy(
   1896     IBaseFilter* This,
   1897     IFilterGraph *pGraph,
   1898     LPCWSTR pName);
   1899 void __RPC_STUB IBaseFilter_JoinFilterGraph_Stub(
   1900     IRpcStubBuffer* This,
   1901     IRpcChannelBuffer* pRpcChannelBuffer,
   1902     PRPC_MESSAGE pRpcMessage,
   1903     DWORD* pdwStubPhase);
   1904 HRESULT STDMETHODCALLTYPE IBaseFilter_QueryVendorInfo_Proxy(
   1905     IBaseFilter* This,
   1906     LPWSTR *pVendorInfo);
   1907 void __RPC_STUB IBaseFilter_QueryVendorInfo_Stub(
   1908     IRpcStubBuffer* This,
   1909     IRpcChannelBuffer* pRpcChannelBuffer,
   1910     PRPC_MESSAGE pRpcMessage,
   1911     DWORD* pdwStubPhase);
   1912 
   1913 #endif  /* __IBaseFilter_INTERFACE_DEFINED__ */
   1914 
   1915 typedef IBaseFilter *PFILTER;
   1916 /*****************************************************************************
   1917  * IReferenceClock interface
   1918  */
   1919 #ifndef __IReferenceClock_INTERFACE_DEFINED__
   1920 #define __IReferenceClock_INTERFACE_DEFINED__
   1921 
   1922 DEFINE_GUID(IID_IReferenceClock, 0x56a86897, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   1923 #if defined(__cplusplus) && !defined(CINTERFACE)
   1924 MIDL_INTERFACE("56a86897-0ad4-11ce-b03a-0020af0ba770")
   1925 IReferenceClock : public IUnknown
   1926 {
   1927     virtual HRESULT STDMETHODCALLTYPE GetTime(
   1928         REFERENCE_TIME *pTime) = 0;
   1929 
   1930     virtual HRESULT STDMETHODCALLTYPE AdviseTime(
   1931         REFERENCE_TIME baseTime,
   1932         REFERENCE_TIME streamTime,
   1933         HEVENT hEvent,
   1934         DWORD_PTR *pdwAdviseCookie) = 0;
   1935 
   1936     virtual HRESULT STDMETHODCALLTYPE AdvisePeriodic(
   1937         REFERENCE_TIME startTime,
   1938         REFERENCE_TIME periodTime,
   1939         HSEMAPHORE hSemaphore,
   1940         DWORD_PTR *pdwAdviseCookie) = 0;
   1941 
   1942     virtual HRESULT STDMETHODCALLTYPE Unadvise(
   1943         DWORD_PTR dwAdviseCookie) = 0;
   1944 
   1945 };
   1946 #ifdef __CRT_UUID_DECL
   1947 __CRT_UUID_DECL(IReferenceClock, 0x56a86897, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   1948 #endif
   1949 #else
   1950 typedef struct IReferenceClockVtbl {
   1951     BEGIN_INTERFACE
   1952 
   1953     /*** IUnknown methods ***/
   1954     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1955         IReferenceClock* This,
   1956         REFIID riid,
   1957         void **ppvObject);
   1958 
   1959     ULONG (STDMETHODCALLTYPE *AddRef)(
   1960         IReferenceClock* This);
   1961 
   1962     ULONG (STDMETHODCALLTYPE *Release)(
   1963         IReferenceClock* This);
   1964 
   1965     /*** IReferenceClock methods ***/
   1966     HRESULT (STDMETHODCALLTYPE *GetTime)(
   1967         IReferenceClock* This,
   1968         REFERENCE_TIME *pTime);
   1969 
   1970     HRESULT (STDMETHODCALLTYPE *AdviseTime)(
   1971         IReferenceClock* This,
   1972         REFERENCE_TIME baseTime,
   1973         REFERENCE_TIME streamTime,
   1974         HEVENT hEvent,
   1975         DWORD_PTR *pdwAdviseCookie);
   1976 
   1977     HRESULT (STDMETHODCALLTYPE *AdvisePeriodic)(
   1978         IReferenceClock* This,
   1979         REFERENCE_TIME startTime,
   1980         REFERENCE_TIME periodTime,
   1981         HSEMAPHORE hSemaphore,
   1982         DWORD_PTR *pdwAdviseCookie);
   1983 
   1984     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   1985         IReferenceClock* This,
   1986         DWORD_PTR dwAdviseCookie);
   1987 
   1988     END_INTERFACE
   1989 } IReferenceClockVtbl;
   1990 interface IReferenceClock {
   1991     CONST_VTBL IReferenceClockVtbl* lpVtbl;
   1992 };
   1993 
   1994 #ifdef COBJMACROS
   1995 #ifndef WIDL_C_INLINE_WRAPPERS
   1996 /*** IUnknown methods ***/
   1997 #define IReferenceClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1998 #define IReferenceClock_AddRef(This) (This)->lpVtbl->AddRef(This)
   1999 #define IReferenceClock_Release(This) (This)->lpVtbl->Release(This)
   2000 /*** IReferenceClock methods ***/
   2001 #define IReferenceClock_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
   2002 #define IReferenceClock_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
   2003 #define IReferenceClock_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
   2004 #define IReferenceClock_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
   2005 #else
   2006 /*** IUnknown methods ***/
   2007 static FORCEINLINE HRESULT IReferenceClock_QueryInterface(IReferenceClock* This,REFIID riid,void **ppvObject) {
   2008     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2009 }
   2010 static FORCEINLINE ULONG IReferenceClock_AddRef(IReferenceClock* This) {
   2011     return This->lpVtbl->AddRef(This);
   2012 }
   2013 static FORCEINLINE ULONG IReferenceClock_Release(IReferenceClock* This) {
   2014     return This->lpVtbl->Release(This);
   2015 }
   2016 /*** IReferenceClock methods ***/
   2017 static FORCEINLINE HRESULT IReferenceClock_GetTime(IReferenceClock* This,REFERENCE_TIME *pTime) {
   2018     return This->lpVtbl->GetTime(This,pTime);
   2019 }
   2020 static FORCEINLINE HRESULT IReferenceClock_AdviseTime(IReferenceClock* This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie) {
   2021     return This->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie);
   2022 }
   2023 static FORCEINLINE HRESULT IReferenceClock_AdvisePeriodic(IReferenceClock* This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie) {
   2024     return This->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie);
   2025 }
   2026 static FORCEINLINE HRESULT IReferenceClock_Unadvise(IReferenceClock* This,DWORD_PTR dwAdviseCookie) {
   2027     return This->lpVtbl->Unadvise(This,dwAdviseCookie);
   2028 }
   2029 #endif
   2030 #endif
   2031 
   2032 #endif
   2033 
   2034 HRESULT STDMETHODCALLTYPE IReferenceClock_GetTime_Proxy(
   2035     IReferenceClock* This,
   2036     REFERENCE_TIME *pTime);
   2037 void __RPC_STUB IReferenceClock_GetTime_Stub(
   2038     IRpcStubBuffer* This,
   2039     IRpcChannelBuffer* pRpcChannelBuffer,
   2040     PRPC_MESSAGE pRpcMessage,
   2041     DWORD* pdwStubPhase);
   2042 HRESULT STDMETHODCALLTYPE IReferenceClock_AdviseTime_Proxy(
   2043     IReferenceClock* This,
   2044     REFERENCE_TIME baseTime,
   2045     REFERENCE_TIME streamTime,
   2046     HEVENT hEvent,
   2047     DWORD_PTR *pdwAdviseCookie);
   2048 void __RPC_STUB IReferenceClock_AdviseTime_Stub(
   2049     IRpcStubBuffer* This,
   2050     IRpcChannelBuffer* pRpcChannelBuffer,
   2051     PRPC_MESSAGE pRpcMessage,
   2052     DWORD* pdwStubPhase);
   2053 HRESULT STDMETHODCALLTYPE IReferenceClock_AdvisePeriodic_Proxy(
   2054     IReferenceClock* This,
   2055     REFERENCE_TIME startTime,
   2056     REFERENCE_TIME periodTime,
   2057     HSEMAPHORE hSemaphore,
   2058     DWORD_PTR *pdwAdviseCookie);
   2059 void __RPC_STUB IReferenceClock_AdvisePeriodic_Stub(
   2060     IRpcStubBuffer* This,
   2061     IRpcChannelBuffer* pRpcChannelBuffer,
   2062     PRPC_MESSAGE pRpcMessage,
   2063     DWORD* pdwStubPhase);
   2064 HRESULT STDMETHODCALLTYPE IReferenceClock_Unadvise_Proxy(
   2065     IReferenceClock* This,
   2066     DWORD_PTR dwAdviseCookie);
   2067 void __RPC_STUB IReferenceClock_Unadvise_Stub(
   2068     IRpcStubBuffer* This,
   2069     IRpcChannelBuffer* pRpcChannelBuffer,
   2070     PRPC_MESSAGE pRpcMessage,
   2071     DWORD* pdwStubPhase);
   2072 
   2073 #endif  /* __IReferenceClock_INTERFACE_DEFINED__ */
   2074 
   2075 typedef IReferenceClock *PREFERENCECLOCK;
   2076 /*****************************************************************************
   2077  * IMediaSample interface
   2078  */
   2079 #ifndef __IMediaSample_INTERFACE_DEFINED__
   2080 #define __IMediaSample_INTERFACE_DEFINED__
   2081 
   2082 DEFINE_GUID(IID_IMediaSample, 0x56a8689a, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   2083 #if defined(__cplusplus) && !defined(CINTERFACE)
   2084 MIDL_INTERFACE("56a8689a-0ad4-11ce-b03a-0020af0ba770")
   2085 IMediaSample : public IUnknown
   2086 {
   2087     virtual HRESULT STDMETHODCALLTYPE GetPointer(
   2088         BYTE **ppBuffer) = 0;
   2089 
   2090     virtual LONG STDMETHODCALLTYPE GetSize(
   2091         ) = 0;
   2092 
   2093     virtual HRESULT STDMETHODCALLTYPE GetTime(
   2094         REFERENCE_TIME *pTimeStart,
   2095         REFERENCE_TIME *pTimeEnd) = 0;
   2096 
   2097     virtual HRESULT STDMETHODCALLTYPE SetTime(
   2098         REFERENCE_TIME *pTimeStart,
   2099         REFERENCE_TIME *pTimeEnd) = 0;
   2100 
   2101     virtual HRESULT STDMETHODCALLTYPE IsSyncPoint(
   2102         ) = 0;
   2103 
   2104     virtual HRESULT STDMETHODCALLTYPE SetSyncPoint(
   2105         WINBOOL bIsSyncPoint) = 0;
   2106 
   2107     virtual HRESULT STDMETHODCALLTYPE IsPreroll(
   2108         ) = 0;
   2109 
   2110     virtual HRESULT STDMETHODCALLTYPE SetPreroll(
   2111         WINBOOL bIsPreroll) = 0;
   2112 
   2113     virtual LONG STDMETHODCALLTYPE GetActualDataLength(
   2114         ) = 0;
   2115 
   2116     virtual HRESULT STDMETHODCALLTYPE SetActualDataLength(
   2117         LONG length) = 0;
   2118 
   2119     virtual HRESULT STDMETHODCALLTYPE GetMediaType(
   2120         AM_MEDIA_TYPE **ppMediaType) = 0;
   2121 
   2122     virtual HRESULT STDMETHODCALLTYPE SetMediaType(
   2123         AM_MEDIA_TYPE *pMediaType) = 0;
   2124 
   2125     virtual HRESULT STDMETHODCALLTYPE IsDiscontinuity(
   2126         ) = 0;
   2127 
   2128     virtual HRESULT STDMETHODCALLTYPE SetDiscontinuity(
   2129         WINBOOL bDiscontinuity) = 0;
   2130 
   2131     virtual HRESULT STDMETHODCALLTYPE GetMediaTime(
   2132         LONGLONG *pTimeStart,
   2133         LONGLONG *pTimeEnd) = 0;
   2134 
   2135     virtual HRESULT STDMETHODCALLTYPE SetMediaTime(
   2136         LONGLONG *pTimeStart,
   2137         LONGLONG *pTimeEnd) = 0;
   2138 
   2139 };
   2140 #ifdef __CRT_UUID_DECL
   2141 __CRT_UUID_DECL(IMediaSample, 0x56a8689a, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   2142 #endif
   2143 #else
   2144 typedef struct IMediaSampleVtbl {
   2145     BEGIN_INTERFACE
   2146 
   2147     /*** IUnknown methods ***/
   2148     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2149         IMediaSample* This,
   2150         REFIID riid,
   2151         void **ppvObject);
   2152 
   2153     ULONG (STDMETHODCALLTYPE *AddRef)(
   2154         IMediaSample* This);
   2155 
   2156     ULONG (STDMETHODCALLTYPE *Release)(
   2157         IMediaSample* This);
   2158 
   2159     /*** IMediaSample methods ***/
   2160     HRESULT (STDMETHODCALLTYPE *GetPointer)(
   2161         IMediaSample* This,
   2162         BYTE **ppBuffer);
   2163 
   2164     LONG (STDMETHODCALLTYPE *GetSize)(
   2165         IMediaSample* This);
   2166 
   2167     HRESULT (STDMETHODCALLTYPE *GetTime)(
   2168         IMediaSample* This,
   2169         REFERENCE_TIME *pTimeStart,
   2170         REFERENCE_TIME *pTimeEnd);
   2171 
   2172     HRESULT (STDMETHODCALLTYPE *SetTime)(
   2173         IMediaSample* This,
   2174         REFERENCE_TIME *pTimeStart,
   2175         REFERENCE_TIME *pTimeEnd);
   2176 
   2177     HRESULT (STDMETHODCALLTYPE *IsSyncPoint)(
   2178         IMediaSample* This);
   2179 
   2180     HRESULT (STDMETHODCALLTYPE *SetSyncPoint)(
   2181         IMediaSample* This,
   2182         WINBOOL bIsSyncPoint);
   2183 
   2184     HRESULT (STDMETHODCALLTYPE *IsPreroll)(
   2185         IMediaSample* This);
   2186 
   2187     HRESULT (STDMETHODCALLTYPE *SetPreroll)(
   2188         IMediaSample* This,
   2189         WINBOOL bIsPreroll);
   2190 
   2191     LONG (STDMETHODCALLTYPE *GetActualDataLength)(
   2192         IMediaSample* This);
   2193 
   2194     HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
   2195         IMediaSample* This,
   2196         LONG length);
   2197 
   2198     HRESULT (STDMETHODCALLTYPE *GetMediaType)(
   2199         IMediaSample* This,
   2200         AM_MEDIA_TYPE **ppMediaType);
   2201 
   2202     HRESULT (STDMETHODCALLTYPE *SetMediaType)(
   2203         IMediaSample* This,
   2204         AM_MEDIA_TYPE *pMediaType);
   2205 
   2206     HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)(
   2207         IMediaSample* This);
   2208 
   2209     HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)(
   2210         IMediaSample* This,
   2211         WINBOOL bDiscontinuity);
   2212 
   2213     HRESULT (STDMETHODCALLTYPE *GetMediaTime)(
   2214         IMediaSample* This,
   2215         LONGLONG *pTimeStart,
   2216         LONGLONG *pTimeEnd);
   2217 
   2218     HRESULT (STDMETHODCALLTYPE *SetMediaTime)(
   2219         IMediaSample* This,
   2220         LONGLONG *pTimeStart,
   2221         LONGLONG *pTimeEnd);
   2222 
   2223     END_INTERFACE
   2224 } IMediaSampleVtbl;
   2225 interface IMediaSample {
   2226     CONST_VTBL IMediaSampleVtbl* lpVtbl;
   2227 };
   2228 
   2229 #ifdef COBJMACROS
   2230 #ifndef WIDL_C_INLINE_WRAPPERS
   2231 /*** IUnknown methods ***/
   2232 #define IMediaSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2233 #define IMediaSample_AddRef(This) (This)->lpVtbl->AddRef(This)
   2234 #define IMediaSample_Release(This) (This)->lpVtbl->Release(This)
   2235 /*** IMediaSample methods ***/
   2236 #define IMediaSample_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer)
   2237 #define IMediaSample_GetSize(This) (This)->lpVtbl->GetSize(This)
   2238 #define IMediaSample_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd)
   2239 #define IMediaSample_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd)
   2240 #define IMediaSample_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This)
   2241 #define IMediaSample_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint)
   2242 #define IMediaSample_IsPreroll(This) (This)->lpVtbl->IsPreroll(This)
   2243 #define IMediaSample_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll)
   2244 #define IMediaSample_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This)
   2245 #define IMediaSample_SetActualDataLength(This,length) (This)->lpVtbl->SetActualDataLength(This,length)
   2246 #define IMediaSample_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType)
   2247 #define IMediaSample_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType)
   2248 #define IMediaSample_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This)
   2249 #define IMediaSample_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity)
   2250 #define IMediaSample_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd)
   2251 #define IMediaSample_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd)
   2252 #else
   2253 /*** IUnknown methods ***/
   2254 static FORCEINLINE HRESULT IMediaSample_QueryInterface(IMediaSample* This,REFIID riid,void **ppvObject) {
   2255     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2256 }
   2257 static FORCEINLINE ULONG IMediaSample_AddRef(IMediaSample* This) {
   2258     return This->lpVtbl->AddRef(This);
   2259 }
   2260 static FORCEINLINE ULONG IMediaSample_Release(IMediaSample* This) {
   2261     return This->lpVtbl->Release(This);
   2262 }
   2263 /*** IMediaSample methods ***/
   2264 static FORCEINLINE HRESULT IMediaSample_GetPointer(IMediaSample* This,BYTE **ppBuffer) {
   2265     return This->lpVtbl->GetPointer(This,ppBuffer);
   2266 }
   2267 static FORCEINLINE LONG IMediaSample_GetSize(IMediaSample* This) {
   2268     return This->lpVtbl->GetSize(This);
   2269 }
   2270 static FORCEINLINE HRESULT IMediaSample_GetTime(IMediaSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
   2271     return This->lpVtbl->GetTime(This,pTimeStart,pTimeEnd);
   2272 }
   2273 static FORCEINLINE HRESULT IMediaSample_SetTime(IMediaSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
   2274     return This->lpVtbl->SetTime(This,pTimeStart,pTimeEnd);
   2275 }
   2276 static FORCEINLINE HRESULT IMediaSample_IsSyncPoint(IMediaSample* This) {
   2277     return This->lpVtbl->IsSyncPoint(This);
   2278 }
   2279 static FORCEINLINE HRESULT IMediaSample_SetSyncPoint(IMediaSample* This,WINBOOL bIsSyncPoint) {
   2280     return This->lpVtbl->SetSyncPoint(This,bIsSyncPoint);
   2281 }
   2282 static FORCEINLINE HRESULT IMediaSample_IsPreroll(IMediaSample* This) {
   2283     return This->lpVtbl->IsPreroll(This);
   2284 }
   2285 static FORCEINLINE HRESULT IMediaSample_SetPreroll(IMediaSample* This,WINBOOL bIsPreroll) {
   2286     return This->lpVtbl->SetPreroll(This,bIsPreroll);
   2287 }
   2288 static FORCEINLINE LONG IMediaSample_GetActualDataLength(IMediaSample* This) {
   2289     return This->lpVtbl->GetActualDataLength(This);
   2290 }
   2291 static FORCEINLINE HRESULT IMediaSample_SetActualDataLength(IMediaSample* This,LONG length) {
   2292     return This->lpVtbl->SetActualDataLength(This,length);
   2293 }
   2294 static FORCEINLINE HRESULT IMediaSample_GetMediaType(IMediaSample* This,AM_MEDIA_TYPE **ppMediaType) {
   2295     return This->lpVtbl->GetMediaType(This,ppMediaType);
   2296 }
   2297 static FORCEINLINE HRESULT IMediaSample_SetMediaType(IMediaSample* This,AM_MEDIA_TYPE *pMediaType) {
   2298     return This->lpVtbl->SetMediaType(This,pMediaType);
   2299 }
   2300 static FORCEINLINE HRESULT IMediaSample_IsDiscontinuity(IMediaSample* This) {
   2301     return This->lpVtbl->IsDiscontinuity(This);
   2302 }
   2303 static FORCEINLINE HRESULT IMediaSample_SetDiscontinuity(IMediaSample* This,WINBOOL bDiscontinuity) {
   2304     return This->lpVtbl->SetDiscontinuity(This,bDiscontinuity);
   2305 }
   2306 static FORCEINLINE HRESULT IMediaSample_GetMediaTime(IMediaSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
   2307     return This->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd);
   2308 }
   2309 static FORCEINLINE HRESULT IMediaSample_SetMediaTime(IMediaSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
   2310     return This->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd);
   2311 }
   2312 #endif
   2313 #endif
   2314 
   2315 #endif
   2316 
   2317 HRESULT STDMETHODCALLTYPE IMediaSample_GetPointer_Proxy(
   2318     IMediaSample* This,
   2319     BYTE **ppBuffer);
   2320 void __RPC_STUB IMediaSample_GetPointer_Stub(
   2321     IRpcStubBuffer* This,
   2322     IRpcChannelBuffer* pRpcChannelBuffer,
   2323     PRPC_MESSAGE pRpcMessage,
   2324     DWORD* pdwStubPhase);
   2325 LONG STDMETHODCALLTYPE IMediaSample_GetSize_Proxy(
   2326     IMediaSample* This);
   2327 void __RPC_STUB IMediaSample_GetSize_Stub(
   2328     IRpcStubBuffer* This,
   2329     IRpcChannelBuffer* pRpcChannelBuffer,
   2330     PRPC_MESSAGE pRpcMessage,
   2331     DWORD* pdwStubPhase);
   2332 HRESULT STDMETHODCALLTYPE IMediaSample_GetTime_Proxy(
   2333     IMediaSample* This,
   2334     REFERENCE_TIME *pTimeStart,
   2335     REFERENCE_TIME *pTimeEnd);
   2336 void __RPC_STUB IMediaSample_GetTime_Stub(
   2337     IRpcStubBuffer* This,
   2338     IRpcChannelBuffer* pRpcChannelBuffer,
   2339     PRPC_MESSAGE pRpcMessage,
   2340     DWORD* pdwStubPhase);
   2341 HRESULT STDMETHODCALLTYPE IMediaSample_SetTime_Proxy(
   2342     IMediaSample* This,
   2343     REFERENCE_TIME *pTimeStart,
   2344     REFERENCE_TIME *pTimeEnd);
   2345 void __RPC_STUB IMediaSample_SetTime_Stub(
   2346     IRpcStubBuffer* This,
   2347     IRpcChannelBuffer* pRpcChannelBuffer,
   2348     PRPC_MESSAGE pRpcMessage,
   2349     DWORD* pdwStubPhase);
   2350 HRESULT STDMETHODCALLTYPE IMediaSample_IsSyncPoint_Proxy(
   2351     IMediaSample* This);
   2352 void __RPC_STUB IMediaSample_IsSyncPoint_Stub(
   2353     IRpcStubBuffer* This,
   2354     IRpcChannelBuffer* pRpcChannelBuffer,
   2355     PRPC_MESSAGE pRpcMessage,
   2356     DWORD* pdwStubPhase);
   2357 HRESULT STDMETHODCALLTYPE IMediaSample_SetSyncPoint_Proxy(
   2358     IMediaSample* This,
   2359     WINBOOL bIsSyncPoint);
   2360 void __RPC_STUB IMediaSample_SetSyncPoint_Stub(
   2361     IRpcStubBuffer* This,
   2362     IRpcChannelBuffer* pRpcChannelBuffer,
   2363     PRPC_MESSAGE pRpcMessage,
   2364     DWORD* pdwStubPhase);
   2365 HRESULT STDMETHODCALLTYPE IMediaSample_IsPreroll_Proxy(
   2366     IMediaSample* This);
   2367 void __RPC_STUB IMediaSample_IsPreroll_Stub(
   2368     IRpcStubBuffer* This,
   2369     IRpcChannelBuffer* pRpcChannelBuffer,
   2370     PRPC_MESSAGE pRpcMessage,
   2371     DWORD* pdwStubPhase);
   2372 HRESULT STDMETHODCALLTYPE IMediaSample_SetPreroll_Proxy(
   2373     IMediaSample* This,
   2374     WINBOOL bIsPreroll);
   2375 void __RPC_STUB IMediaSample_SetPreroll_Stub(
   2376     IRpcStubBuffer* This,
   2377     IRpcChannelBuffer* pRpcChannelBuffer,
   2378     PRPC_MESSAGE pRpcMessage,
   2379     DWORD* pdwStubPhase);
   2380 LONG STDMETHODCALLTYPE IMediaSample_GetActualDataLength_Proxy(
   2381     IMediaSample* This);
   2382 void __RPC_STUB IMediaSample_GetActualDataLength_Stub(
   2383     IRpcStubBuffer* This,
   2384     IRpcChannelBuffer* pRpcChannelBuffer,
   2385     PRPC_MESSAGE pRpcMessage,
   2386     DWORD* pdwStubPhase);
   2387 HRESULT STDMETHODCALLTYPE IMediaSample_SetActualDataLength_Proxy(
   2388     IMediaSample* This,
   2389     LONG length);
   2390 void __RPC_STUB IMediaSample_SetActualDataLength_Stub(
   2391     IRpcStubBuffer* This,
   2392     IRpcChannelBuffer* pRpcChannelBuffer,
   2393     PRPC_MESSAGE pRpcMessage,
   2394     DWORD* pdwStubPhase);
   2395 HRESULT STDMETHODCALLTYPE IMediaSample_GetMediaType_Proxy(
   2396     IMediaSample* This,
   2397     AM_MEDIA_TYPE **ppMediaType);
   2398 void __RPC_STUB IMediaSample_GetMediaType_Stub(
   2399     IRpcStubBuffer* This,
   2400     IRpcChannelBuffer* pRpcChannelBuffer,
   2401     PRPC_MESSAGE pRpcMessage,
   2402     DWORD* pdwStubPhase);
   2403 HRESULT STDMETHODCALLTYPE IMediaSample_SetMediaType_Proxy(
   2404     IMediaSample* This,
   2405     AM_MEDIA_TYPE *pMediaType);
   2406 void __RPC_STUB IMediaSample_SetMediaType_Stub(
   2407     IRpcStubBuffer* This,
   2408     IRpcChannelBuffer* pRpcChannelBuffer,
   2409     PRPC_MESSAGE pRpcMessage,
   2410     DWORD* pdwStubPhase);
   2411 HRESULT STDMETHODCALLTYPE IMediaSample_IsDiscontinuity_Proxy(
   2412     IMediaSample* This);
   2413 void __RPC_STUB IMediaSample_IsDiscontinuity_Stub(
   2414     IRpcStubBuffer* This,
   2415     IRpcChannelBuffer* pRpcChannelBuffer,
   2416     PRPC_MESSAGE pRpcMessage,
   2417     DWORD* pdwStubPhase);
   2418 HRESULT STDMETHODCALLTYPE IMediaSample_SetDiscontinuity_Proxy(
   2419     IMediaSample* This,
   2420     WINBOOL bDiscontinuity);
   2421 void __RPC_STUB IMediaSample_SetDiscontinuity_Stub(
   2422     IRpcStubBuffer* This,
   2423     IRpcChannelBuffer* pRpcChannelBuffer,
   2424     PRPC_MESSAGE pRpcMessage,
   2425     DWORD* pdwStubPhase);
   2426 HRESULT STDMETHODCALLTYPE IMediaSample_GetMediaTime_Proxy(
   2427     IMediaSample* This,
   2428     LONGLONG *pTimeStart,
   2429     LONGLONG *pTimeEnd);
   2430 void __RPC_STUB IMediaSample_GetMediaTime_Stub(
   2431     IRpcStubBuffer* This,
   2432     IRpcChannelBuffer* pRpcChannelBuffer,
   2433     PRPC_MESSAGE pRpcMessage,
   2434     DWORD* pdwStubPhase);
   2435 HRESULT STDMETHODCALLTYPE IMediaSample_SetMediaTime_Proxy(
   2436     IMediaSample* This,
   2437     LONGLONG *pTimeStart,
   2438     LONGLONG *pTimeEnd);
   2439 void __RPC_STUB IMediaSample_SetMediaTime_Stub(
   2440     IRpcStubBuffer* This,
   2441     IRpcChannelBuffer* pRpcChannelBuffer,
   2442     PRPC_MESSAGE pRpcMessage,
   2443     DWORD* pdwStubPhase);
   2444 
   2445 #endif  /* __IMediaSample_INTERFACE_DEFINED__ */
   2446 
   2447 typedef IMediaSample *PMEDIASAMPLE;
   2448 enum tagAM_SAMPLE_PROPERTY_FLAGS {
   2449     AM_SAMPLE_SPLICEPOINT = 0x1,
   2450     AM_SAMPLE_PREROLL = 0x2,
   2451     AM_SAMPLE_DATADISCONTINUITY = 0x4,
   2452     AM_SAMPLE_TYPECHANGED = 0x8,
   2453     AM_SAMPLE_TIMEVALID = 0x10,
   2454     AM_SAMPLE_TIMEDISCONTINUITY = 0x40,
   2455     AM_SAMPLE_FLUSH_ON_PAUSE = 0x80,
   2456     AM_SAMPLE_STOPVALID = 0x100,
   2457     AM_SAMPLE_ENDOFSTREAM = 0x200,
   2458     AM_STREAM_MEDIA = 0,
   2459     AM_STREAM_CONTROL = 1
   2460 };
   2461 
   2462 typedef struct tagAM_SAMPLE2_PROPERTIES {
   2463     DWORD cbData;
   2464     DWORD dwTypeSpecificFlags;
   2465     DWORD dwSampleFlags;
   2466     LONG lActual;
   2467     REFERENCE_TIME tStart;
   2468     REFERENCE_TIME tStop;
   2469     DWORD dwStreamId;
   2470     AM_MEDIA_TYPE *pMediaType;
   2471     BYTE *pbBuffer;
   2472     LONG cbBuffer;
   2473 } AM_SAMPLE2_PROPERTIES;
   2474 /*****************************************************************************
   2475  * IMediaSample2 interface
   2476  */
   2477 #ifndef __IMediaSample2_INTERFACE_DEFINED__
   2478 #define __IMediaSample2_INTERFACE_DEFINED__
   2479 
   2480 DEFINE_GUID(IID_IMediaSample2, 0x36b73884, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
   2481 #if defined(__cplusplus) && !defined(CINTERFACE)
   2482 MIDL_INTERFACE("36b73884-c2c8-11cf-8b46-00805f6cef60")
   2483 IMediaSample2 : public IMediaSample
   2484 {
   2485     virtual HRESULT STDMETHODCALLTYPE GetProperties(
   2486         DWORD cbProperties,
   2487         BYTE *pbProperties) = 0;
   2488 
   2489     virtual HRESULT STDMETHODCALLTYPE SetProperties(
   2490         DWORD cbProperties,
   2491         const BYTE *pbProperties) = 0;
   2492 
   2493 };
   2494 #ifdef __CRT_UUID_DECL
   2495 __CRT_UUID_DECL(IMediaSample2, 0x36b73884, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
   2496 #endif
   2497 #else
   2498 typedef struct IMediaSample2Vtbl {
   2499     BEGIN_INTERFACE
   2500 
   2501     /*** IUnknown methods ***/
   2502     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2503         IMediaSample2* This,
   2504         REFIID riid,
   2505         void **ppvObject);
   2506 
   2507     ULONG (STDMETHODCALLTYPE *AddRef)(
   2508         IMediaSample2* This);
   2509 
   2510     ULONG (STDMETHODCALLTYPE *Release)(
   2511         IMediaSample2* This);
   2512 
   2513     /*** IMediaSample methods ***/
   2514     HRESULT (STDMETHODCALLTYPE *GetPointer)(
   2515         IMediaSample2* This,
   2516         BYTE **ppBuffer);
   2517 
   2518     LONG (STDMETHODCALLTYPE *GetSize)(
   2519         IMediaSample2* This);
   2520 
   2521     HRESULT (STDMETHODCALLTYPE *GetTime)(
   2522         IMediaSample2* This,
   2523         REFERENCE_TIME *pTimeStart,
   2524         REFERENCE_TIME *pTimeEnd);
   2525 
   2526     HRESULT (STDMETHODCALLTYPE *SetTime)(
   2527         IMediaSample2* This,
   2528         REFERENCE_TIME *pTimeStart,
   2529         REFERENCE_TIME *pTimeEnd);
   2530 
   2531     HRESULT (STDMETHODCALLTYPE *IsSyncPoint)(
   2532         IMediaSample2* This);
   2533 
   2534     HRESULT (STDMETHODCALLTYPE *SetSyncPoint)(
   2535         IMediaSample2* This,
   2536         WINBOOL bIsSyncPoint);
   2537 
   2538     HRESULT (STDMETHODCALLTYPE *IsPreroll)(
   2539         IMediaSample2* This);
   2540 
   2541     HRESULT (STDMETHODCALLTYPE *SetPreroll)(
   2542         IMediaSample2* This,
   2543         WINBOOL bIsPreroll);
   2544 
   2545     LONG (STDMETHODCALLTYPE *GetActualDataLength)(
   2546         IMediaSample2* This);
   2547 
   2548     HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
   2549         IMediaSample2* This,
   2550         LONG length);
   2551 
   2552     HRESULT (STDMETHODCALLTYPE *GetMediaType)(
   2553         IMediaSample2* This,
   2554         AM_MEDIA_TYPE **ppMediaType);
   2555 
   2556     HRESULT (STDMETHODCALLTYPE *SetMediaType)(
   2557         IMediaSample2* This,
   2558         AM_MEDIA_TYPE *pMediaType);
   2559 
   2560     HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)(
   2561         IMediaSample2* This);
   2562 
   2563     HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)(
   2564         IMediaSample2* This,
   2565         WINBOOL bDiscontinuity);
   2566 
   2567     HRESULT (STDMETHODCALLTYPE *GetMediaTime)(
   2568         IMediaSample2* This,
   2569         LONGLONG *pTimeStart,
   2570         LONGLONG *pTimeEnd);
   2571 
   2572     HRESULT (STDMETHODCALLTYPE *SetMediaTime)(
   2573         IMediaSample2* This,
   2574         LONGLONG *pTimeStart,
   2575         LONGLONG *pTimeEnd);
   2576 
   2577     /*** IMediaSample2 methods ***/
   2578     HRESULT (STDMETHODCALLTYPE *GetProperties)(
   2579         IMediaSample2* This,
   2580         DWORD cbProperties,
   2581         BYTE *pbProperties);
   2582 
   2583     HRESULT (STDMETHODCALLTYPE *SetProperties)(
   2584         IMediaSample2* This,
   2585         DWORD cbProperties,
   2586         const BYTE *pbProperties);
   2587 
   2588     END_INTERFACE
   2589 } IMediaSample2Vtbl;
   2590 interface IMediaSample2 {
   2591     CONST_VTBL IMediaSample2Vtbl* lpVtbl;
   2592 };
   2593 
   2594 #ifdef COBJMACROS
   2595 #ifndef WIDL_C_INLINE_WRAPPERS
   2596 /*** IUnknown methods ***/
   2597 #define IMediaSample2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2598 #define IMediaSample2_AddRef(This) (This)->lpVtbl->AddRef(This)
   2599 #define IMediaSample2_Release(This) (This)->lpVtbl->Release(This)
   2600 /*** IMediaSample methods ***/
   2601 #define IMediaSample2_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer)
   2602 #define IMediaSample2_GetSize(This) (This)->lpVtbl->GetSize(This)
   2603 #define IMediaSample2_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd)
   2604 #define IMediaSample2_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd)
   2605 #define IMediaSample2_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This)
   2606 #define IMediaSample2_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint)
   2607 #define IMediaSample2_IsPreroll(This) (This)->lpVtbl->IsPreroll(This)
   2608 #define IMediaSample2_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll)
   2609 #define IMediaSample2_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This)
   2610 #define IMediaSample2_SetActualDataLength(This,length) (This)->lpVtbl->SetActualDataLength(This,length)
   2611 #define IMediaSample2_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType)
   2612 #define IMediaSample2_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType)
   2613 #define IMediaSample2_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This)
   2614 #define IMediaSample2_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity)
   2615 #define IMediaSample2_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd)
   2616 #define IMediaSample2_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd)
   2617 /*** IMediaSample2 methods ***/
   2618 #define IMediaSample2_GetProperties(This,cbProperties,pbProperties) (This)->lpVtbl->GetProperties(This,cbProperties,pbProperties)
   2619 #define IMediaSample2_SetProperties(This,cbProperties,pbProperties) (This)->lpVtbl->SetProperties(This,cbProperties,pbProperties)
   2620 #else
   2621 /*** IUnknown methods ***/
   2622 static FORCEINLINE HRESULT IMediaSample2_QueryInterface(IMediaSample2* This,REFIID riid,void **ppvObject) {
   2623     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2624 }
   2625 static FORCEINLINE ULONG IMediaSample2_AddRef(IMediaSample2* This) {
   2626     return This->lpVtbl->AddRef(This);
   2627 }
   2628 static FORCEINLINE ULONG IMediaSample2_Release(IMediaSample2* This) {
   2629     return This->lpVtbl->Release(This);
   2630 }
   2631 /*** IMediaSample methods ***/
   2632 static FORCEINLINE HRESULT IMediaSample2_GetPointer(IMediaSample2* This,BYTE **ppBuffer) {
   2633     return This->lpVtbl->GetPointer(This,ppBuffer);
   2634 }
   2635 static FORCEINLINE LONG IMediaSample2_GetSize(IMediaSample2* This) {
   2636     return This->lpVtbl->GetSize(This);
   2637 }
   2638 static FORCEINLINE HRESULT IMediaSample2_GetTime(IMediaSample2* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
   2639     return This->lpVtbl->GetTime(This,pTimeStart,pTimeEnd);
   2640 }
   2641 static FORCEINLINE HRESULT IMediaSample2_SetTime(IMediaSample2* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
   2642     return This->lpVtbl->SetTime(This,pTimeStart,pTimeEnd);
   2643 }
   2644 static FORCEINLINE HRESULT IMediaSample2_IsSyncPoint(IMediaSample2* This) {
   2645     return This->lpVtbl->IsSyncPoint(This);
   2646 }
   2647 static FORCEINLINE HRESULT IMediaSample2_SetSyncPoint(IMediaSample2* This,WINBOOL bIsSyncPoint) {
   2648     return This->lpVtbl->SetSyncPoint(This,bIsSyncPoint);
   2649 }
   2650 static FORCEINLINE HRESULT IMediaSample2_IsPreroll(IMediaSample2* This) {
   2651     return This->lpVtbl->IsPreroll(This);
   2652 }
   2653 static FORCEINLINE HRESULT IMediaSample2_SetPreroll(IMediaSample2* This,WINBOOL bIsPreroll) {
   2654     return This->lpVtbl->SetPreroll(This,bIsPreroll);
   2655 }
   2656 static FORCEINLINE LONG IMediaSample2_GetActualDataLength(IMediaSample2* This) {
   2657     return This->lpVtbl->GetActualDataLength(This);
   2658 }
   2659 static FORCEINLINE HRESULT IMediaSample2_SetActualDataLength(IMediaSample2* This,LONG length) {
   2660     return This->lpVtbl->SetActualDataLength(This,length);
   2661 }
   2662 static FORCEINLINE HRESULT IMediaSample2_GetMediaType(IMediaSample2* This,AM_MEDIA_TYPE **ppMediaType) {
   2663     return This->lpVtbl->GetMediaType(This,ppMediaType);
   2664 }
   2665 static FORCEINLINE HRESULT IMediaSample2_SetMediaType(IMediaSample2* This,AM_MEDIA_TYPE *pMediaType) {
   2666     return This->lpVtbl->SetMediaType(This,pMediaType);
   2667 }
   2668 static FORCEINLINE HRESULT IMediaSample2_IsDiscontinuity(IMediaSample2* This) {
   2669     return This->lpVtbl->IsDiscontinuity(This);
   2670 }
   2671 static FORCEINLINE HRESULT IMediaSample2_SetDiscontinuity(IMediaSample2* This,WINBOOL bDiscontinuity) {
   2672     return This->lpVtbl->SetDiscontinuity(This,bDiscontinuity);
   2673 }
   2674 static FORCEINLINE HRESULT IMediaSample2_GetMediaTime(IMediaSample2* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
   2675     return This->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd);
   2676 }
   2677 static FORCEINLINE HRESULT IMediaSample2_SetMediaTime(IMediaSample2* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
   2678     return This->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd);
   2679 }
   2680 /*** IMediaSample2 methods ***/
   2681 static FORCEINLINE HRESULT IMediaSample2_GetProperties(IMediaSample2* This,DWORD cbProperties,BYTE *pbProperties) {
   2682     return This->lpVtbl->GetProperties(This,cbProperties,pbProperties);
   2683 }
   2684 static FORCEINLINE HRESULT IMediaSample2_SetProperties(IMediaSample2* This,DWORD cbProperties,const BYTE *pbProperties) {
   2685     return This->lpVtbl->SetProperties(This,cbProperties,pbProperties);
   2686 }
   2687 #endif
   2688 #endif
   2689 
   2690 #endif
   2691 
   2692 HRESULT STDMETHODCALLTYPE IMediaSample2_GetProperties_Proxy(
   2693     IMediaSample2* This,
   2694     DWORD cbProperties,
   2695     BYTE *pbProperties);
   2696 void __RPC_STUB IMediaSample2_GetProperties_Stub(
   2697     IRpcStubBuffer* This,
   2698     IRpcChannelBuffer* pRpcChannelBuffer,
   2699     PRPC_MESSAGE pRpcMessage,
   2700     DWORD* pdwStubPhase);
   2701 HRESULT STDMETHODCALLTYPE IMediaSample2_SetProperties_Proxy(
   2702     IMediaSample2* This,
   2703     DWORD cbProperties,
   2704     const BYTE *pbProperties);
   2705 void __RPC_STUB IMediaSample2_SetProperties_Stub(
   2706     IRpcStubBuffer* This,
   2707     IRpcChannelBuffer* pRpcChannelBuffer,
   2708     PRPC_MESSAGE pRpcMessage,
   2709     DWORD* pdwStubPhase);
   2710 
   2711 #endif  /* __IMediaSample2_INTERFACE_DEFINED__ */
   2712 
   2713 typedef IMediaSample2 *PMEDIASAMPLE2;
   2714 #define AM_GBF_PREVFRAMESKIPPED 1
   2715 #define AM_GBF_NOTASYNCPOINT 2
   2716 #define AM_GBF_NOWAIT 4
   2717 #define AM_GBF_NODDSURFACELOCK 8
   2718 /*****************************************************************************
   2719  * IMemAllocator interface
   2720  */
   2721 #ifndef __IMemAllocator_INTERFACE_DEFINED__
   2722 #define __IMemAllocator_INTERFACE_DEFINED__
   2723 
   2724 DEFINE_GUID(IID_IMemAllocator, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   2725 #if defined(__cplusplus) && !defined(CINTERFACE)
   2726 MIDL_INTERFACE("56a8689c-0ad4-11ce-b03a-0020af0ba770")
   2727 IMemAllocator : public IUnknown
   2728 {
   2729     virtual HRESULT STDMETHODCALLTYPE SetProperties(
   2730         ALLOCATOR_PROPERTIES *pRequest,
   2731         ALLOCATOR_PROPERTIES *pActual) = 0;
   2732 
   2733     virtual HRESULT STDMETHODCALLTYPE GetProperties(
   2734         ALLOCATOR_PROPERTIES *pProps) = 0;
   2735 
   2736     virtual HRESULT STDMETHODCALLTYPE Commit(
   2737         ) = 0;
   2738 
   2739     virtual HRESULT STDMETHODCALLTYPE Decommit(
   2740         ) = 0;
   2741 
   2742     virtual HRESULT STDMETHODCALLTYPE GetBuffer(
   2743         IMediaSample **ppBuffer,
   2744         REFERENCE_TIME *pStartTime,
   2745         REFERENCE_TIME *pEndTime,
   2746         DWORD dwFlags) = 0;
   2747 
   2748     virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
   2749         IMediaSample *pBuffer) = 0;
   2750 
   2751 };
   2752 #ifdef __CRT_UUID_DECL
   2753 __CRT_UUID_DECL(IMemAllocator, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   2754 #endif
   2755 #else
   2756 typedef struct IMemAllocatorVtbl {
   2757     BEGIN_INTERFACE
   2758 
   2759     /*** IUnknown methods ***/
   2760     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2761         IMemAllocator* This,
   2762         REFIID riid,
   2763         void **ppvObject);
   2764 
   2765     ULONG (STDMETHODCALLTYPE *AddRef)(
   2766         IMemAllocator* This);
   2767 
   2768     ULONG (STDMETHODCALLTYPE *Release)(
   2769         IMemAllocator* This);
   2770 
   2771     /*** IMemAllocator methods ***/
   2772     HRESULT (STDMETHODCALLTYPE *SetProperties)(
   2773         IMemAllocator* This,
   2774         ALLOCATOR_PROPERTIES *pRequest,
   2775         ALLOCATOR_PROPERTIES *pActual);
   2776 
   2777     HRESULT (STDMETHODCALLTYPE *GetProperties)(
   2778         IMemAllocator* This,
   2779         ALLOCATOR_PROPERTIES *pProps);
   2780 
   2781     HRESULT (STDMETHODCALLTYPE *Commit)(
   2782         IMemAllocator* This);
   2783 
   2784     HRESULT (STDMETHODCALLTYPE *Decommit)(
   2785         IMemAllocator* This);
   2786 
   2787     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
   2788         IMemAllocator* This,
   2789         IMediaSample **ppBuffer,
   2790         REFERENCE_TIME *pStartTime,
   2791         REFERENCE_TIME *pEndTime,
   2792         DWORD dwFlags);
   2793 
   2794     HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)(
   2795         IMemAllocator* This,
   2796         IMediaSample *pBuffer);
   2797 
   2798     END_INTERFACE
   2799 } IMemAllocatorVtbl;
   2800 interface IMemAllocator {
   2801     CONST_VTBL IMemAllocatorVtbl* lpVtbl;
   2802 };
   2803 
   2804 #ifdef COBJMACROS
   2805 #ifndef WIDL_C_INLINE_WRAPPERS
   2806 /*** IUnknown methods ***/
   2807 #define IMemAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2808 #define IMemAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
   2809 #define IMemAllocator_Release(This) (This)->lpVtbl->Release(This)
   2810 /*** IMemAllocator methods ***/
   2811 #define IMemAllocator_SetProperties(This,pRequest,pActual) (This)->lpVtbl->SetProperties(This,pRequest,pActual)
   2812 #define IMemAllocator_GetProperties(This,pProps) (This)->lpVtbl->GetProperties(This,pProps)
   2813 #define IMemAllocator_Commit(This) (This)->lpVtbl->Commit(This)
   2814 #define IMemAllocator_Decommit(This) (This)->lpVtbl->Decommit(This)
   2815 #define IMemAllocator_GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags) (This)->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags)
   2816 #define IMemAllocator_ReleaseBuffer(This,pBuffer) (This)->lpVtbl->ReleaseBuffer(This,pBuffer)
   2817 #else
   2818 /*** IUnknown methods ***/
   2819 static FORCEINLINE HRESULT IMemAllocator_QueryInterface(IMemAllocator* This,REFIID riid,void **ppvObject) {
   2820     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2821 }
   2822 static FORCEINLINE ULONG IMemAllocator_AddRef(IMemAllocator* This) {
   2823     return This->lpVtbl->AddRef(This);
   2824 }
   2825 static FORCEINLINE ULONG IMemAllocator_Release(IMemAllocator* This) {
   2826     return This->lpVtbl->Release(This);
   2827 }
   2828 /*** IMemAllocator methods ***/
   2829 static FORCEINLINE HRESULT IMemAllocator_SetProperties(IMemAllocator* This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual) {
   2830     return This->lpVtbl->SetProperties(This,pRequest,pActual);
   2831 }
   2832 static FORCEINLINE HRESULT IMemAllocator_GetProperties(IMemAllocator* This,ALLOCATOR_PROPERTIES *pProps) {
   2833     return This->lpVtbl->GetProperties(This,pProps);
   2834 }
   2835 static FORCEINLINE HRESULT IMemAllocator_Commit(IMemAllocator* This) {
   2836     return This->lpVtbl->Commit(This);
   2837 }
   2838 static FORCEINLINE HRESULT IMemAllocator_Decommit(IMemAllocator* This) {
   2839     return This->lpVtbl->Decommit(This);
   2840 }
   2841 static FORCEINLINE HRESULT IMemAllocator_GetBuffer(IMemAllocator* This,IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags) {
   2842     return This->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags);
   2843 }
   2844 static FORCEINLINE HRESULT IMemAllocator_ReleaseBuffer(IMemAllocator* This,IMediaSample *pBuffer) {
   2845     return This->lpVtbl->ReleaseBuffer(This,pBuffer);
   2846 }
   2847 #endif
   2848 #endif
   2849 
   2850 #endif
   2851 
   2852 HRESULT STDMETHODCALLTYPE IMemAllocator_SetProperties_Proxy(
   2853     IMemAllocator* This,
   2854     ALLOCATOR_PROPERTIES *pRequest,
   2855     ALLOCATOR_PROPERTIES *pActual);
   2856 void __RPC_STUB IMemAllocator_SetProperties_Stub(
   2857     IRpcStubBuffer* This,
   2858     IRpcChannelBuffer* pRpcChannelBuffer,
   2859     PRPC_MESSAGE pRpcMessage,
   2860     DWORD* pdwStubPhase);
   2861 HRESULT STDMETHODCALLTYPE IMemAllocator_GetProperties_Proxy(
   2862     IMemAllocator* This,
   2863     ALLOCATOR_PROPERTIES *pProps);
   2864 void __RPC_STUB IMemAllocator_GetProperties_Stub(
   2865     IRpcStubBuffer* This,
   2866     IRpcChannelBuffer* pRpcChannelBuffer,
   2867     PRPC_MESSAGE pRpcMessage,
   2868     DWORD* pdwStubPhase);
   2869 HRESULT STDMETHODCALLTYPE IMemAllocator_Commit_Proxy(
   2870     IMemAllocator* This);
   2871 void __RPC_STUB IMemAllocator_Commit_Stub(
   2872     IRpcStubBuffer* This,
   2873     IRpcChannelBuffer* pRpcChannelBuffer,
   2874     PRPC_MESSAGE pRpcMessage,
   2875     DWORD* pdwStubPhase);
   2876 HRESULT STDMETHODCALLTYPE IMemAllocator_Decommit_Proxy(
   2877     IMemAllocator* This);
   2878 void __RPC_STUB IMemAllocator_Decommit_Stub(
   2879     IRpcStubBuffer* This,
   2880     IRpcChannelBuffer* pRpcChannelBuffer,
   2881     PRPC_MESSAGE pRpcMessage,
   2882     DWORD* pdwStubPhase);
   2883 HRESULT STDMETHODCALLTYPE IMemAllocator_GetBuffer_Proxy(
   2884     IMemAllocator* This,
   2885     IMediaSample **ppBuffer,
   2886     REFERENCE_TIME *pStartTime,
   2887     REFERENCE_TIME *pEndTime,
   2888     DWORD dwFlags);
   2889 void __RPC_STUB IMemAllocator_GetBuffer_Stub(
   2890     IRpcStubBuffer* This,
   2891     IRpcChannelBuffer* pRpcChannelBuffer,
   2892     PRPC_MESSAGE pRpcMessage,
   2893     DWORD* pdwStubPhase);
   2894 HRESULT STDMETHODCALLTYPE IMemAllocator_ReleaseBuffer_Proxy(
   2895     IMemAllocator* This,
   2896     IMediaSample *pBuffer);
   2897 void __RPC_STUB IMemAllocator_ReleaseBuffer_Stub(
   2898     IRpcStubBuffer* This,
   2899     IRpcChannelBuffer* pRpcChannelBuffer,
   2900     PRPC_MESSAGE pRpcMessage,
   2901     DWORD* pdwStubPhase);
   2902 
   2903 #endif  /* __IMemAllocator_INTERFACE_DEFINED__ */
   2904 
   2905 typedef IMemAllocator *PMEMALLOCATOR;
   2906 /*****************************************************************************
   2907  * IMemAllocatorCallbackTemp interface
   2908  */
   2909 #ifndef __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
   2910 #define __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
   2911 
   2912 DEFINE_GUID(IID_IMemAllocatorCallbackTemp, 0x379a0cf0, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
   2913 #if defined(__cplusplus) && !defined(CINTERFACE)
   2914 MIDL_INTERFACE("379a0cf0-c1de-11d2-abf5-00a0c905f375")
   2915 IMemAllocatorCallbackTemp : public IMemAllocator
   2916 {
   2917     virtual HRESULT STDMETHODCALLTYPE SetNotify(
   2918         IMemAllocatorNotifyCallbackTemp *pNotify) = 0;
   2919 
   2920     virtual HRESULT STDMETHODCALLTYPE GetFreeCount(
   2921         LONG *plBuffersFree) = 0;
   2922 
   2923 };
   2924 #ifdef __CRT_UUID_DECL
   2925 __CRT_UUID_DECL(IMemAllocatorCallbackTemp, 0x379a0cf0, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
   2926 #endif
   2927 #else
   2928 typedef struct IMemAllocatorCallbackTempVtbl {
   2929     BEGIN_INTERFACE
   2930 
   2931     /*** IUnknown methods ***/
   2932     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2933         IMemAllocatorCallbackTemp* This,
   2934         REFIID riid,
   2935         void **ppvObject);
   2936 
   2937     ULONG (STDMETHODCALLTYPE *AddRef)(
   2938         IMemAllocatorCallbackTemp* This);
   2939 
   2940     ULONG (STDMETHODCALLTYPE *Release)(
   2941         IMemAllocatorCallbackTemp* This);
   2942 
   2943     /*** IMemAllocator methods ***/
   2944     HRESULT (STDMETHODCALLTYPE *SetProperties)(
   2945         IMemAllocatorCallbackTemp* This,
   2946         ALLOCATOR_PROPERTIES *pRequest,
   2947         ALLOCATOR_PROPERTIES *pActual);
   2948 
   2949     HRESULT (STDMETHODCALLTYPE *GetProperties)(
   2950         IMemAllocatorCallbackTemp* This,
   2951         ALLOCATOR_PROPERTIES *pProps);
   2952 
   2953     HRESULT (STDMETHODCALLTYPE *Commit)(
   2954         IMemAllocatorCallbackTemp* This);
   2955 
   2956     HRESULT (STDMETHODCALLTYPE *Decommit)(
   2957         IMemAllocatorCallbackTemp* This);
   2958 
   2959     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
   2960         IMemAllocatorCallbackTemp* This,
   2961         IMediaSample **ppBuffer,
   2962         REFERENCE_TIME *pStartTime,
   2963         REFERENCE_TIME *pEndTime,
   2964         DWORD dwFlags);
   2965 
   2966     HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)(
   2967         IMemAllocatorCallbackTemp* This,
   2968         IMediaSample *pBuffer);
   2969 
   2970     /*** IMemAllocatorCallbackTemp methods ***/
   2971     HRESULT (STDMETHODCALLTYPE *SetNotify)(
   2972         IMemAllocatorCallbackTemp* This,
   2973         IMemAllocatorNotifyCallbackTemp *pNotify);
   2974 
   2975     HRESULT (STDMETHODCALLTYPE *GetFreeCount)(
   2976         IMemAllocatorCallbackTemp* This,
   2977         LONG *plBuffersFree);
   2978 
   2979     END_INTERFACE
   2980 } IMemAllocatorCallbackTempVtbl;
   2981 interface IMemAllocatorCallbackTemp {
   2982     CONST_VTBL IMemAllocatorCallbackTempVtbl* lpVtbl;
   2983 };
   2984 
   2985 #ifdef COBJMACROS
   2986 #ifndef WIDL_C_INLINE_WRAPPERS
   2987 /*** IUnknown methods ***/
   2988 #define IMemAllocatorCallbackTemp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2989 #define IMemAllocatorCallbackTemp_AddRef(This) (This)->lpVtbl->AddRef(This)
   2990 #define IMemAllocatorCallbackTemp_Release(This) (This)->lpVtbl->Release(This)
   2991 /*** IMemAllocator methods ***/
   2992 #define IMemAllocatorCallbackTemp_SetProperties(This,pRequest,pActual) (This)->lpVtbl->SetProperties(This,pRequest,pActual)
   2993 #define IMemAllocatorCallbackTemp_GetProperties(This,pProps) (This)->lpVtbl->GetProperties(This,pProps)
   2994 #define IMemAllocatorCallbackTemp_Commit(This) (This)->lpVtbl->Commit(This)
   2995 #define IMemAllocatorCallbackTemp_Decommit(This) (This)->lpVtbl->Decommit(This)
   2996 #define IMemAllocatorCallbackTemp_GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags) (This)->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags)
   2997 #define IMemAllocatorCallbackTemp_ReleaseBuffer(This,pBuffer) (This)->lpVtbl->ReleaseBuffer(This,pBuffer)
   2998 /*** IMemAllocatorCallbackTemp methods ***/
   2999 #define IMemAllocatorCallbackTemp_SetNotify(This,pNotify) (This)->lpVtbl->SetNotify(This,pNotify)
   3000 #define IMemAllocatorCallbackTemp_GetFreeCount(This,plBuffersFree) (This)->lpVtbl->GetFreeCount(This,plBuffersFree)
   3001 #else
   3002 /*** IUnknown methods ***/
   3003 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_QueryInterface(IMemAllocatorCallbackTemp* This,REFIID riid,void **ppvObject) {
   3004     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3005 }
   3006 static FORCEINLINE ULONG IMemAllocatorCallbackTemp_AddRef(IMemAllocatorCallbackTemp* This) {
   3007     return This->lpVtbl->AddRef(This);
   3008 }
   3009 static FORCEINLINE ULONG IMemAllocatorCallbackTemp_Release(IMemAllocatorCallbackTemp* This) {
   3010     return This->lpVtbl->Release(This);
   3011 }
   3012 /*** IMemAllocator methods ***/
   3013 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_SetProperties(IMemAllocatorCallbackTemp* This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual) {
   3014     return This->lpVtbl->SetProperties(This,pRequest,pActual);
   3015 }
   3016 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_GetProperties(IMemAllocatorCallbackTemp* This,ALLOCATOR_PROPERTIES *pProps) {
   3017     return This->lpVtbl->GetProperties(This,pProps);
   3018 }
   3019 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_Commit(IMemAllocatorCallbackTemp* This) {
   3020     return This->lpVtbl->Commit(This);
   3021 }
   3022 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_Decommit(IMemAllocatorCallbackTemp* This) {
   3023     return This->lpVtbl->Decommit(This);
   3024 }
   3025 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_GetBuffer(IMemAllocatorCallbackTemp* This,IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags) {
   3026     return This->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags);
   3027 }
   3028 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_ReleaseBuffer(IMemAllocatorCallbackTemp* This,IMediaSample *pBuffer) {
   3029     return This->lpVtbl->ReleaseBuffer(This,pBuffer);
   3030 }
   3031 /*** IMemAllocatorCallbackTemp methods ***/
   3032 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_SetNotify(IMemAllocatorCallbackTemp* This,IMemAllocatorNotifyCallbackTemp *pNotify) {
   3033     return This->lpVtbl->SetNotify(This,pNotify);
   3034 }
   3035 static FORCEINLINE HRESULT IMemAllocatorCallbackTemp_GetFreeCount(IMemAllocatorCallbackTemp* This,LONG *plBuffersFree) {
   3036     return This->lpVtbl->GetFreeCount(This,plBuffersFree);
   3037 }
   3038 #endif
   3039 #endif
   3040 
   3041 #endif
   3042 
   3043 HRESULT STDMETHODCALLTYPE IMemAllocatorCallbackTemp_SetNotify_Proxy(
   3044     IMemAllocatorCallbackTemp* This,
   3045     IMemAllocatorNotifyCallbackTemp *pNotify);
   3046 void __RPC_STUB IMemAllocatorCallbackTemp_SetNotify_Stub(
   3047     IRpcStubBuffer* This,
   3048     IRpcChannelBuffer* pRpcChannelBuffer,
   3049     PRPC_MESSAGE pRpcMessage,
   3050     DWORD* pdwStubPhase);
   3051 HRESULT STDMETHODCALLTYPE IMemAllocatorCallbackTemp_GetFreeCount_Proxy(
   3052     IMemAllocatorCallbackTemp* This,
   3053     LONG *plBuffersFree);
   3054 void __RPC_STUB IMemAllocatorCallbackTemp_GetFreeCount_Stub(
   3055     IRpcStubBuffer* This,
   3056     IRpcChannelBuffer* pRpcChannelBuffer,
   3057     PRPC_MESSAGE pRpcMessage,
   3058     DWORD* pdwStubPhase);
   3059 
   3060 #endif  /* __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__ */
   3061 
   3062 /*****************************************************************************
   3063  * IMemAllocatorNotifyCallbackTemp interface
   3064  */
   3065 #ifndef __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
   3066 #define __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
   3067 
   3068 DEFINE_GUID(IID_IMemAllocatorNotifyCallbackTemp, 0x92980b30, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
   3069 #if defined(__cplusplus) && !defined(CINTERFACE)
   3070 MIDL_INTERFACE("92980b30-c1de-11d2-abf5-00a0c905f375")
   3071 IMemAllocatorNotifyCallbackTemp : public IUnknown
   3072 {
   3073     virtual HRESULT STDMETHODCALLTYPE NotifyRelease(
   3074         ) = 0;
   3075 
   3076 };
   3077 #ifdef __CRT_UUID_DECL
   3078 __CRT_UUID_DECL(IMemAllocatorNotifyCallbackTemp, 0x92980b30, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
   3079 #endif
   3080 #else
   3081 typedef struct IMemAllocatorNotifyCallbackTempVtbl {
   3082     BEGIN_INTERFACE
   3083 
   3084     /*** IUnknown methods ***/
   3085     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3086         IMemAllocatorNotifyCallbackTemp* This,
   3087         REFIID riid,
   3088         void **ppvObject);
   3089 
   3090     ULONG (STDMETHODCALLTYPE *AddRef)(
   3091         IMemAllocatorNotifyCallbackTemp* This);
   3092 
   3093     ULONG (STDMETHODCALLTYPE *Release)(
   3094         IMemAllocatorNotifyCallbackTemp* This);
   3095 
   3096     /*** IMemAllocatorNotifyCallbackTemp methods ***/
   3097     HRESULT (STDMETHODCALLTYPE *NotifyRelease)(
   3098         IMemAllocatorNotifyCallbackTemp* This);
   3099 
   3100     END_INTERFACE
   3101 } IMemAllocatorNotifyCallbackTempVtbl;
   3102 interface IMemAllocatorNotifyCallbackTemp {
   3103     CONST_VTBL IMemAllocatorNotifyCallbackTempVtbl* lpVtbl;
   3104 };
   3105 
   3106 #ifdef COBJMACROS
   3107 #ifndef WIDL_C_INLINE_WRAPPERS
   3108 /*** IUnknown methods ***/
   3109 #define IMemAllocatorNotifyCallbackTemp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3110 #define IMemAllocatorNotifyCallbackTemp_AddRef(This) (This)->lpVtbl->AddRef(This)
   3111 #define IMemAllocatorNotifyCallbackTemp_Release(This) (This)->lpVtbl->Release(This)
   3112 /*** IMemAllocatorNotifyCallbackTemp methods ***/
   3113 #define IMemAllocatorNotifyCallbackTemp_NotifyRelease(This) (This)->lpVtbl->NotifyRelease(This)
   3114 #else
   3115 /*** IUnknown methods ***/
   3116 static FORCEINLINE HRESULT IMemAllocatorNotifyCallbackTemp_QueryInterface(IMemAllocatorNotifyCallbackTemp* This,REFIID riid,void **ppvObject) {
   3117     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3118 }
   3119 static FORCEINLINE ULONG IMemAllocatorNotifyCallbackTemp_AddRef(IMemAllocatorNotifyCallbackTemp* This) {
   3120     return This->lpVtbl->AddRef(This);
   3121 }
   3122 static FORCEINLINE ULONG IMemAllocatorNotifyCallbackTemp_Release(IMemAllocatorNotifyCallbackTemp* This) {
   3123     return This->lpVtbl->Release(This);
   3124 }
   3125 /*** IMemAllocatorNotifyCallbackTemp methods ***/
   3126 static FORCEINLINE HRESULT IMemAllocatorNotifyCallbackTemp_NotifyRelease(IMemAllocatorNotifyCallbackTemp* This) {
   3127     return This->lpVtbl->NotifyRelease(This);
   3128 }
   3129 #endif
   3130 #endif
   3131 
   3132 #endif
   3133 
   3134 HRESULT STDMETHODCALLTYPE IMemAllocatorNotifyCallbackTemp_NotifyRelease_Proxy(
   3135     IMemAllocatorNotifyCallbackTemp* This);
   3136 void __RPC_STUB IMemAllocatorNotifyCallbackTemp_NotifyRelease_Stub(
   3137     IRpcStubBuffer* This,
   3138     IRpcChannelBuffer* pRpcChannelBuffer,
   3139     PRPC_MESSAGE pRpcMessage,
   3140     DWORD* pdwStubPhase);
   3141 
   3142 #endif  /* __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__ */
   3143 
   3144 /*****************************************************************************
   3145  * IMemInputPin interface
   3146  */
   3147 #ifndef __IMemInputPin_INTERFACE_DEFINED__
   3148 #define __IMemInputPin_INTERFACE_DEFINED__
   3149 
   3150 DEFINE_GUID(IID_IMemInputPin, 0x56a8689d, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   3151 #if defined(__cplusplus) && !defined(CINTERFACE)
   3152 MIDL_INTERFACE("56a8689d-0ad4-11ce-b03a-0020af0ba770")
   3153 IMemInputPin : public IUnknown
   3154 {
   3155     virtual HRESULT STDMETHODCALLTYPE GetAllocator(
   3156         IMemAllocator **ppAllocator) = 0;
   3157 
   3158     virtual HRESULT STDMETHODCALLTYPE NotifyAllocator(
   3159         IMemAllocator *pAllocator,
   3160         WINBOOL bReadOnly) = 0;
   3161 
   3162     virtual HRESULT STDMETHODCALLTYPE GetAllocatorRequirements(
   3163         ALLOCATOR_PROPERTIES *pProps) = 0;
   3164 
   3165     virtual HRESULT STDMETHODCALLTYPE Receive(
   3166         IMediaSample *pSample) = 0;
   3167 
   3168     virtual HRESULT STDMETHODCALLTYPE ReceiveMultiple(
   3169         IMediaSample **pSamples,
   3170         LONG nSamples,
   3171         LONG *nSamplesProcessed) = 0;
   3172 
   3173     virtual HRESULT STDMETHODCALLTYPE ReceiveCanBlock(
   3174         ) = 0;
   3175 
   3176 };
   3177 #ifdef __CRT_UUID_DECL
   3178 __CRT_UUID_DECL(IMemInputPin, 0x56a8689d, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   3179 #endif
   3180 #else
   3181 typedef struct IMemInputPinVtbl {
   3182     BEGIN_INTERFACE
   3183 
   3184     /*** IUnknown methods ***/
   3185     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3186         IMemInputPin* This,
   3187         REFIID riid,
   3188         void **ppvObject);
   3189 
   3190     ULONG (STDMETHODCALLTYPE *AddRef)(
   3191         IMemInputPin* This);
   3192 
   3193     ULONG (STDMETHODCALLTYPE *Release)(
   3194         IMemInputPin* This);
   3195 
   3196     /*** IMemInputPin methods ***/
   3197     HRESULT (STDMETHODCALLTYPE *GetAllocator)(
   3198         IMemInputPin* This,
   3199         IMemAllocator **ppAllocator);
   3200 
   3201     HRESULT (STDMETHODCALLTYPE *NotifyAllocator)(
   3202         IMemInputPin* This,
   3203         IMemAllocator *pAllocator,
   3204         WINBOOL bReadOnly);
   3205 
   3206     HRESULT (STDMETHODCALLTYPE *GetAllocatorRequirements)(
   3207         IMemInputPin* This,
   3208         ALLOCATOR_PROPERTIES *pProps);
   3209 
   3210     HRESULT (STDMETHODCALLTYPE *Receive)(
   3211         IMemInputPin* This,
   3212         IMediaSample *pSample);
   3213 
   3214     HRESULT (STDMETHODCALLTYPE *ReceiveMultiple)(
   3215         IMemInputPin* This,
   3216         IMediaSample **pSamples,
   3217         LONG nSamples,
   3218         LONG *nSamplesProcessed);
   3219 
   3220     HRESULT (STDMETHODCALLTYPE *ReceiveCanBlock)(
   3221         IMemInputPin* This);
   3222 
   3223     END_INTERFACE
   3224 } IMemInputPinVtbl;
   3225 interface IMemInputPin {
   3226     CONST_VTBL IMemInputPinVtbl* lpVtbl;
   3227 };
   3228 
   3229 #ifdef COBJMACROS
   3230 #ifndef WIDL_C_INLINE_WRAPPERS
   3231 /*** IUnknown methods ***/
   3232 #define IMemInputPin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3233 #define IMemInputPin_AddRef(This) (This)->lpVtbl->AddRef(This)
   3234 #define IMemInputPin_Release(This) (This)->lpVtbl->Release(This)
   3235 /*** IMemInputPin methods ***/
   3236 #define IMemInputPin_GetAllocator(This,ppAllocator) (This)->lpVtbl->GetAllocator(This,ppAllocator)
   3237 #define IMemInputPin_NotifyAllocator(This,pAllocator,bReadOnly) (This)->lpVtbl->NotifyAllocator(This,pAllocator,bReadOnly)
   3238 #define IMemInputPin_GetAllocatorRequirements(This,pProps) (This)->lpVtbl->GetAllocatorRequirements(This,pProps)
   3239 #define IMemInputPin_Receive(This,pSample) (This)->lpVtbl->Receive(This,pSample)
   3240 #define IMemInputPin_ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed) (This)->lpVtbl->ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed)
   3241 #define IMemInputPin_ReceiveCanBlock(This) (This)->lpVtbl->ReceiveCanBlock(This)
   3242 #else
   3243 /*** IUnknown methods ***/
   3244 static FORCEINLINE HRESULT IMemInputPin_QueryInterface(IMemInputPin* This,REFIID riid,void **ppvObject) {
   3245     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3246 }
   3247 static FORCEINLINE ULONG IMemInputPin_AddRef(IMemInputPin* This) {
   3248     return This->lpVtbl->AddRef(This);
   3249 }
   3250 static FORCEINLINE ULONG IMemInputPin_Release(IMemInputPin* This) {
   3251     return This->lpVtbl->Release(This);
   3252 }
   3253 /*** IMemInputPin methods ***/
   3254 static FORCEINLINE HRESULT IMemInputPin_GetAllocator(IMemInputPin* This,IMemAllocator **ppAllocator) {
   3255     return This->lpVtbl->GetAllocator(This,ppAllocator);
   3256 }
   3257 static FORCEINLINE HRESULT IMemInputPin_NotifyAllocator(IMemInputPin* This,IMemAllocator *pAllocator,WINBOOL bReadOnly) {
   3258     return This->lpVtbl->NotifyAllocator(This,pAllocator,bReadOnly);
   3259 }
   3260 static FORCEINLINE HRESULT IMemInputPin_GetAllocatorRequirements(IMemInputPin* This,ALLOCATOR_PROPERTIES *pProps) {
   3261     return This->lpVtbl->GetAllocatorRequirements(This,pProps);
   3262 }
   3263 static FORCEINLINE HRESULT IMemInputPin_Receive(IMemInputPin* This,IMediaSample *pSample) {
   3264     return This->lpVtbl->Receive(This,pSample);
   3265 }
   3266 static FORCEINLINE HRESULT IMemInputPin_ReceiveMultiple(IMemInputPin* This,IMediaSample **pSamples,LONG nSamples,LONG *nSamplesProcessed) {
   3267     return This->lpVtbl->ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed);
   3268 }
   3269 static FORCEINLINE HRESULT IMemInputPin_ReceiveCanBlock(IMemInputPin* This) {
   3270     return This->lpVtbl->ReceiveCanBlock(This);
   3271 }
   3272 #endif
   3273 #endif
   3274 
   3275 #endif
   3276 
   3277 HRESULT STDMETHODCALLTYPE IMemInputPin_GetAllocator_Proxy(
   3278     IMemInputPin* This,
   3279     IMemAllocator **ppAllocator);
   3280 void __RPC_STUB IMemInputPin_GetAllocator_Stub(
   3281     IRpcStubBuffer* This,
   3282     IRpcChannelBuffer* pRpcChannelBuffer,
   3283     PRPC_MESSAGE pRpcMessage,
   3284     DWORD* pdwStubPhase);
   3285 HRESULT STDMETHODCALLTYPE IMemInputPin_NotifyAllocator_Proxy(
   3286     IMemInputPin* This,
   3287     IMemAllocator *pAllocator,
   3288     WINBOOL bReadOnly);
   3289 void __RPC_STUB IMemInputPin_NotifyAllocator_Stub(
   3290     IRpcStubBuffer* This,
   3291     IRpcChannelBuffer* pRpcChannelBuffer,
   3292     PRPC_MESSAGE pRpcMessage,
   3293     DWORD* pdwStubPhase);
   3294 HRESULT STDMETHODCALLTYPE IMemInputPin_GetAllocatorRequirements_Proxy(
   3295     IMemInputPin* This,
   3296     ALLOCATOR_PROPERTIES *pProps);
   3297 void __RPC_STUB IMemInputPin_GetAllocatorRequirements_Stub(
   3298     IRpcStubBuffer* This,
   3299     IRpcChannelBuffer* pRpcChannelBuffer,
   3300     PRPC_MESSAGE pRpcMessage,
   3301     DWORD* pdwStubPhase);
   3302 HRESULT STDMETHODCALLTYPE IMemInputPin_Receive_Proxy(
   3303     IMemInputPin* This,
   3304     IMediaSample *pSample);
   3305 void __RPC_STUB IMemInputPin_Receive_Stub(
   3306     IRpcStubBuffer* This,
   3307     IRpcChannelBuffer* pRpcChannelBuffer,
   3308     PRPC_MESSAGE pRpcMessage,
   3309     DWORD* pdwStubPhase);
   3310 HRESULT STDMETHODCALLTYPE IMemInputPin_ReceiveMultiple_Proxy(
   3311     IMemInputPin* This,
   3312     IMediaSample **pSamples,
   3313     LONG nSamples,
   3314     LONG *nSamplesProcessed);
   3315 void __RPC_STUB IMemInputPin_ReceiveMultiple_Stub(
   3316     IRpcStubBuffer* This,
   3317     IRpcChannelBuffer* pRpcChannelBuffer,
   3318     PRPC_MESSAGE pRpcMessage,
   3319     DWORD* pdwStubPhase);
   3320 HRESULT STDMETHODCALLTYPE IMemInputPin_ReceiveCanBlock_Proxy(
   3321     IMemInputPin* This);
   3322 void __RPC_STUB IMemInputPin_ReceiveCanBlock_Stub(
   3323     IRpcStubBuffer* This,
   3324     IRpcChannelBuffer* pRpcChannelBuffer,
   3325     PRPC_MESSAGE pRpcMessage,
   3326     DWORD* pdwStubPhase);
   3327 
   3328 #endif  /* __IMemInputPin_INTERFACE_DEFINED__ */
   3329 
   3330 typedef IMemInputPin *PMEMINPUTPIN;
   3331 /*****************************************************************************
   3332  * IAMovieSetup interface
   3333  */
   3334 #ifndef __IAMovieSetup_INTERFACE_DEFINED__
   3335 #define __IAMovieSetup_INTERFACE_DEFINED__
   3336 
   3337 DEFINE_GUID(IID_IAMovieSetup, 0xa3d8cec0, 0x7e5a, 0x11cf, 0xbb,0xc5, 0x00,0x80,0x5f,0x6c,0xef,0x20);
   3338 #if defined(__cplusplus) && !defined(CINTERFACE)
   3339 MIDL_INTERFACE("a3d8cec0-7e5a-11cf-bbc5-00805f6cef20")
   3340 IAMovieSetup : public IUnknown
   3341 {
   3342     virtual HRESULT STDMETHODCALLTYPE Register(
   3343         ) = 0;
   3344 
   3345     virtual HRESULT STDMETHODCALLTYPE Unregister(
   3346         ) = 0;
   3347 
   3348 };
   3349 #ifdef __CRT_UUID_DECL
   3350 __CRT_UUID_DECL(IAMovieSetup, 0xa3d8cec0, 0x7e5a, 0x11cf, 0xbb,0xc5, 0x00,0x80,0x5f,0x6c,0xef,0x20)
   3351 #endif
   3352 #else
   3353 typedef struct IAMovieSetupVtbl {
   3354     BEGIN_INTERFACE
   3355 
   3356     /*** IUnknown methods ***/
   3357     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3358         IAMovieSetup* This,
   3359         REFIID riid,
   3360         void **ppvObject);
   3361 
   3362     ULONG (STDMETHODCALLTYPE *AddRef)(
   3363         IAMovieSetup* This);
   3364 
   3365     ULONG (STDMETHODCALLTYPE *Release)(
   3366         IAMovieSetup* This);
   3367 
   3368     /*** IAMovieSetup methods ***/
   3369     HRESULT (STDMETHODCALLTYPE *Register)(
   3370         IAMovieSetup* This);
   3371 
   3372     HRESULT (STDMETHODCALLTYPE *Unregister)(
   3373         IAMovieSetup* This);
   3374 
   3375     END_INTERFACE
   3376 } IAMovieSetupVtbl;
   3377 interface IAMovieSetup {
   3378     CONST_VTBL IAMovieSetupVtbl* lpVtbl;
   3379 };
   3380 
   3381 #ifdef COBJMACROS
   3382 #ifndef WIDL_C_INLINE_WRAPPERS
   3383 /*** IUnknown methods ***/
   3384 #define IAMovieSetup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3385 #define IAMovieSetup_AddRef(This) (This)->lpVtbl->AddRef(This)
   3386 #define IAMovieSetup_Release(This) (This)->lpVtbl->Release(This)
   3387 /*** IAMovieSetup methods ***/
   3388 #define IAMovieSetup_Register(This) (This)->lpVtbl->Register(This)
   3389 #define IAMovieSetup_Unregister(This) (This)->lpVtbl->Unregister(This)
   3390 #else
   3391 /*** IUnknown methods ***/
   3392 static FORCEINLINE HRESULT IAMovieSetup_QueryInterface(IAMovieSetup* This,REFIID riid,void **ppvObject) {
   3393     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3394 }
   3395 static FORCEINLINE ULONG IAMovieSetup_AddRef(IAMovieSetup* This) {
   3396     return This->lpVtbl->AddRef(This);
   3397 }
   3398 static FORCEINLINE ULONG IAMovieSetup_Release(IAMovieSetup* This) {
   3399     return This->lpVtbl->Release(This);
   3400 }
   3401 /*** IAMovieSetup methods ***/
   3402 static FORCEINLINE HRESULT IAMovieSetup_Register(IAMovieSetup* This) {
   3403     return This->lpVtbl->Register(This);
   3404 }
   3405 static FORCEINLINE HRESULT IAMovieSetup_Unregister(IAMovieSetup* This) {
   3406     return This->lpVtbl->Unregister(This);
   3407 }
   3408 #endif
   3409 #endif
   3410 
   3411 #endif
   3412 
   3413 HRESULT STDMETHODCALLTYPE IAMovieSetup_Register_Proxy(
   3414     IAMovieSetup* This);
   3415 void __RPC_STUB IAMovieSetup_Register_Stub(
   3416     IRpcStubBuffer* This,
   3417     IRpcChannelBuffer* pRpcChannelBuffer,
   3418     PRPC_MESSAGE pRpcMessage,
   3419     DWORD* pdwStubPhase);
   3420 HRESULT STDMETHODCALLTYPE IAMovieSetup_Unregister_Proxy(
   3421     IAMovieSetup* This);
   3422 void __RPC_STUB IAMovieSetup_Unregister_Stub(
   3423     IRpcStubBuffer* This,
   3424     IRpcChannelBuffer* pRpcChannelBuffer,
   3425     PRPC_MESSAGE pRpcMessage,
   3426     DWORD* pdwStubPhase);
   3427 
   3428 #endif  /* __IAMovieSetup_INTERFACE_DEFINED__ */
   3429 
   3430 typedef IAMovieSetup *PAMOVIESETUP;
   3431 typedef enum AM_SEEKING_SeekingFlags {
   3432     AM_SEEKING_NoPositioning = 0x0,
   3433     AM_SEEKING_AbsolutePositioning = 0x1,
   3434     AM_SEEKING_RelativePositioning = 0x2,
   3435     AM_SEEKING_IncrementalPositioning = 0x3,
   3436     AM_SEEKING_PositioningBitsMask = 0x3,
   3437     AM_SEEKING_SeekToKeyFrame = 0x4,
   3438     AM_SEEKING_ReturnTime = 0x8,
   3439     AM_SEEKING_Segment = 0x10,
   3440     AM_SEEKING_NoFlush = 0x20
   3441 } AM_SEEKING_SEEKING_FLAGS;
   3442 typedef enum AM_SEEKING_SeekingCapabilities {
   3443     AM_SEEKING_CanSeekAbsolute = 0x1,
   3444     AM_SEEKING_CanSeekForwards = 0x2,
   3445     AM_SEEKING_CanSeekBackwards = 0x4,
   3446     AM_SEEKING_CanGetCurrentPos = 0x8,
   3447     AM_SEEKING_CanGetStopPos = 0x10,
   3448     AM_SEEKING_CanGetDuration = 0x20,
   3449     AM_SEEKING_CanPlayBackwards = 0x40,
   3450     AM_SEEKING_CanDoSegments = 0x80,
   3451     AM_SEEKING_Source = 0x100
   3452 } AM_SEEKING_SEEKING_CAPABILITIES;
   3453 /*****************************************************************************
   3454  * IMediaSeeking interface
   3455  */
   3456 #ifndef __IMediaSeeking_INTERFACE_DEFINED__
   3457 #define __IMediaSeeking_INTERFACE_DEFINED__
   3458 
   3459 DEFINE_GUID(IID_IMediaSeeking, 0x36b73880, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
   3460 #if defined(__cplusplus) && !defined(CINTERFACE)
   3461 MIDL_INTERFACE("36b73880-c2c8-11cf-8b46-00805f6cef60")
   3462 IMediaSeeking : public IUnknown
   3463 {
   3464     virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
   3465         DWORD *pCapabilities) = 0;
   3466 
   3467     virtual HRESULT STDMETHODCALLTYPE CheckCapabilities(
   3468         DWORD *pCapabilities) = 0;
   3469 
   3470     virtual HRESULT STDMETHODCALLTYPE IsFormatSupported(
   3471         const GUID *pFormat) = 0;
   3472 
   3473     virtual HRESULT STDMETHODCALLTYPE QueryPreferredFormat(
   3474         GUID *pFormat) = 0;
   3475 
   3476     virtual HRESULT STDMETHODCALLTYPE GetTimeFormat(
   3477         GUID *pFormat) = 0;
   3478 
   3479     virtual HRESULT STDMETHODCALLTYPE IsUsingTimeFormat(
   3480         const GUID *pFormat) = 0;
   3481 
   3482     virtual HRESULT STDMETHODCALLTYPE SetTimeFormat(
   3483         const GUID *pFormat) = 0;
   3484 
   3485     virtual HRESULT STDMETHODCALLTYPE GetDuration(
   3486         LONGLONG *pDuration) = 0;
   3487 
   3488     virtual HRESULT STDMETHODCALLTYPE GetStopPosition(
   3489         LONGLONG *pStop) = 0;
   3490 
   3491     virtual HRESULT STDMETHODCALLTYPE GetCurrentPosition(
   3492         LONGLONG *pCurrent) = 0;
   3493 
   3494     virtual HRESULT STDMETHODCALLTYPE ConvertTimeFormat(
   3495         LONGLONG *pTarget,
   3496         const GUID *pTargetFormat,
   3497         LONGLONG Source,
   3498         const GUID *pSourceFormat) = 0;
   3499 
   3500     virtual HRESULT STDMETHODCALLTYPE SetPositions(
   3501         LONGLONG *pCurrent,
   3502         DWORD dwCurrentFlags,
   3503         LONGLONG *pStop,
   3504         DWORD dwStopFlags) = 0;
   3505 
   3506     virtual HRESULT STDMETHODCALLTYPE GetPositions(
   3507         LONGLONG *pCurrent,
   3508         LONGLONG *pStop) = 0;
   3509 
   3510     virtual HRESULT STDMETHODCALLTYPE GetAvailable(
   3511         LONGLONG *pEarliest,
   3512         LONGLONG *pLatest) = 0;
   3513 
   3514     virtual HRESULT STDMETHODCALLTYPE SetRate(
   3515         double dRate) = 0;
   3516 
   3517     virtual HRESULT STDMETHODCALLTYPE GetRate(
   3518         double *pdRate) = 0;
   3519 
   3520     virtual HRESULT STDMETHODCALLTYPE GetPreroll(
   3521         LONGLONG *pllPreroll) = 0;
   3522 
   3523 };
   3524 #ifdef __CRT_UUID_DECL
   3525 __CRT_UUID_DECL(IMediaSeeking, 0x36b73880, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
   3526 #endif
   3527 #else
   3528 typedef struct IMediaSeekingVtbl {
   3529     BEGIN_INTERFACE
   3530 
   3531     /*** IUnknown methods ***/
   3532     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3533         IMediaSeeking* This,
   3534         REFIID riid,
   3535         void **ppvObject);
   3536 
   3537     ULONG (STDMETHODCALLTYPE *AddRef)(
   3538         IMediaSeeking* This);
   3539 
   3540     ULONG (STDMETHODCALLTYPE *Release)(
   3541         IMediaSeeking* This);
   3542 
   3543     /*** IMediaSeeking methods ***/
   3544     HRESULT (STDMETHODCALLTYPE *GetCapabilities)(
   3545         IMediaSeeking* This,
   3546         DWORD *pCapabilities);
   3547 
   3548     HRESULT (STDMETHODCALLTYPE *CheckCapabilities)(
   3549         IMediaSeeking* This,
   3550         DWORD *pCapabilities);
   3551 
   3552     HRESULT (STDMETHODCALLTYPE *IsFormatSupported)(
   3553         IMediaSeeking* This,
   3554         const GUID *pFormat);
   3555 
   3556     HRESULT (STDMETHODCALLTYPE *QueryPreferredFormat)(
   3557         IMediaSeeking* This,
   3558         GUID *pFormat);
   3559 
   3560     HRESULT (STDMETHODCALLTYPE *GetTimeFormat)(
   3561         IMediaSeeking* This,
   3562         GUID *pFormat);
   3563 
   3564     HRESULT (STDMETHODCALLTYPE *IsUsingTimeFormat)(
   3565         IMediaSeeking* This,
   3566         const GUID *pFormat);
   3567 
   3568     HRESULT (STDMETHODCALLTYPE *SetTimeFormat)(
   3569         IMediaSeeking* This,
   3570         const GUID *pFormat);
   3571 
   3572     HRESULT (STDMETHODCALLTYPE *GetDuration)(
   3573         IMediaSeeking* This,
   3574         LONGLONG *pDuration);
   3575 
   3576     HRESULT (STDMETHODCALLTYPE *GetStopPosition)(
   3577         IMediaSeeking* This,
   3578         LONGLONG *pStop);
   3579 
   3580     HRESULT (STDMETHODCALLTYPE *GetCurrentPosition)(
   3581         IMediaSeeking* This,
   3582         LONGLONG *pCurrent);
   3583 
   3584     HRESULT (STDMETHODCALLTYPE *ConvertTimeFormat)(
   3585         IMediaSeeking* This,
   3586         LONGLONG *pTarget,
   3587         const GUID *pTargetFormat,
   3588         LONGLONG Source,
   3589         const GUID *pSourceFormat);
   3590 
   3591     HRESULT (STDMETHODCALLTYPE *SetPositions)(
   3592         IMediaSeeking* This,
   3593         LONGLONG *pCurrent,
   3594         DWORD dwCurrentFlags,
   3595         LONGLONG *pStop,
   3596         DWORD dwStopFlags);
   3597 
   3598     HRESULT (STDMETHODCALLTYPE *GetPositions)(
   3599         IMediaSeeking* This,
   3600         LONGLONG *pCurrent,
   3601         LONGLONG *pStop);
   3602 
   3603     HRESULT (STDMETHODCALLTYPE *GetAvailable)(
   3604         IMediaSeeking* This,
   3605         LONGLONG *pEarliest,
   3606         LONGLONG *pLatest);
   3607 
   3608     HRESULT (STDMETHODCALLTYPE *SetRate)(
   3609         IMediaSeeking* This,
   3610         double dRate);
   3611 
   3612     HRESULT (STDMETHODCALLTYPE *GetRate)(
   3613         IMediaSeeking* This,
   3614         double *pdRate);
   3615 
   3616     HRESULT (STDMETHODCALLTYPE *GetPreroll)(
   3617         IMediaSeeking* This,
   3618         LONGLONG *pllPreroll);
   3619 
   3620     END_INTERFACE
   3621 } IMediaSeekingVtbl;
   3622 interface IMediaSeeking {
   3623     CONST_VTBL IMediaSeekingVtbl* lpVtbl;
   3624 };
   3625 
   3626 #ifdef COBJMACROS
   3627 #ifndef WIDL_C_INLINE_WRAPPERS
   3628 /*** IUnknown methods ***/
   3629 #define IMediaSeeking_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3630 #define IMediaSeeking_AddRef(This) (This)->lpVtbl->AddRef(This)
   3631 #define IMediaSeeking_Release(This) (This)->lpVtbl->Release(This)
   3632 /*** IMediaSeeking methods ***/
   3633 #define IMediaSeeking_GetCapabilities(This,pCapabilities) (This)->lpVtbl->GetCapabilities(This,pCapabilities)
   3634 #define IMediaSeeking_CheckCapabilities(This,pCapabilities) (This)->lpVtbl->CheckCapabilities(This,pCapabilities)
   3635 #define IMediaSeeking_IsFormatSupported(This,pFormat) (This)->lpVtbl->IsFormatSupported(This,pFormat)
   3636 #define IMediaSeeking_QueryPreferredFormat(This,pFormat) (This)->lpVtbl->QueryPreferredFormat(This,pFormat)
   3637 #define IMediaSeeking_GetTimeFormat(This,pFormat) (This)->lpVtbl->GetTimeFormat(This,pFormat)
   3638 #define IMediaSeeking_IsUsingTimeFormat(This,pFormat) (This)->lpVtbl->IsUsingTimeFormat(This,pFormat)
   3639 #define IMediaSeeking_SetTimeFormat(This,pFormat) (This)->lpVtbl->SetTimeFormat(This,pFormat)
   3640 #define IMediaSeeking_GetDuration(This,pDuration) (This)->lpVtbl->GetDuration(This,pDuration)
   3641 #define IMediaSeeking_GetStopPosition(This,pStop) (This)->lpVtbl->GetStopPosition(This,pStop)
   3642 #define IMediaSeeking_GetCurrentPosition(This,pCurrent) (This)->lpVtbl->GetCurrentPosition(This,pCurrent)
   3643 #define IMediaSeeking_ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat) (This)->lpVtbl->ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat)
   3644 #define IMediaSeeking_SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags) (This)->lpVtbl->SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags)
   3645 #define IMediaSeeking_GetPositions(This,pCurrent,pStop) (This)->lpVtbl->GetPositions(This,pCurrent,pStop)
   3646 #define IMediaSeeking_GetAvailable(This,pEarliest,pLatest) (This)->lpVtbl->GetAvailable(This,pEarliest,pLatest)
   3647 #define IMediaSeeking_SetRate(This,dRate) (This)->lpVtbl->SetRate(This,dRate)
   3648 #define IMediaSeeking_GetRate(This,pdRate) (This)->lpVtbl->GetRate(This,pdRate)
   3649 #define IMediaSeeking_GetPreroll(This,pllPreroll) (This)->lpVtbl->GetPreroll(This,pllPreroll)
   3650 #else
   3651 /*** IUnknown methods ***/
   3652 static FORCEINLINE HRESULT IMediaSeeking_QueryInterface(IMediaSeeking* This,REFIID riid,void **ppvObject) {
   3653     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3654 }
   3655 static FORCEINLINE ULONG IMediaSeeking_AddRef(IMediaSeeking* This) {
   3656     return This->lpVtbl->AddRef(This);
   3657 }
   3658 static FORCEINLINE ULONG IMediaSeeking_Release(IMediaSeeking* This) {
   3659     return This->lpVtbl->Release(This);
   3660 }
   3661 /*** IMediaSeeking methods ***/
   3662 static FORCEINLINE HRESULT IMediaSeeking_GetCapabilities(IMediaSeeking* This,DWORD *pCapabilities) {
   3663     return This->lpVtbl->GetCapabilities(This,pCapabilities);
   3664 }
   3665 static FORCEINLINE HRESULT IMediaSeeking_CheckCapabilities(IMediaSeeking* This,DWORD *pCapabilities) {
   3666     return This->lpVtbl->CheckCapabilities(This,pCapabilities);
   3667 }
   3668 static FORCEINLINE HRESULT IMediaSeeking_IsFormatSupported(IMediaSeeking* This,const GUID *pFormat) {
   3669     return This->lpVtbl->IsFormatSupported(This,pFormat);
   3670 }
   3671 static FORCEINLINE HRESULT IMediaSeeking_QueryPreferredFormat(IMediaSeeking* This,GUID *pFormat) {
   3672     return This->lpVtbl->QueryPreferredFormat(This,pFormat);
   3673 }
   3674 static FORCEINLINE HRESULT IMediaSeeking_GetTimeFormat(IMediaSeeking* This,GUID *pFormat) {
   3675     return This->lpVtbl->GetTimeFormat(This,pFormat);
   3676 }
   3677 static FORCEINLINE HRESULT IMediaSeeking_IsUsingTimeFormat(IMediaSeeking* This,const GUID *pFormat) {
   3678     return This->lpVtbl->IsUsingTimeFormat(This,pFormat);
   3679 }
   3680 static FORCEINLINE HRESULT IMediaSeeking_SetTimeFormat(IMediaSeeking* This,const GUID *pFormat) {
   3681     return This->lpVtbl->SetTimeFormat(This,pFormat);
   3682 }
   3683 static FORCEINLINE HRESULT IMediaSeeking_GetDuration(IMediaSeeking* This,LONGLONG *pDuration) {
   3684     return This->lpVtbl->GetDuration(This,pDuration);
   3685 }
   3686 static FORCEINLINE HRESULT IMediaSeeking_GetStopPosition(IMediaSeeking* This,LONGLONG *pStop) {
   3687     return This->lpVtbl->GetStopPosition(This,pStop);
   3688 }
   3689 static FORCEINLINE HRESULT IMediaSeeking_GetCurrentPosition(IMediaSeeking* This,LONGLONG *pCurrent) {
   3690     return This->lpVtbl->GetCurrentPosition(This,pCurrent);
   3691 }
   3692 static FORCEINLINE HRESULT IMediaSeeking_ConvertTimeFormat(IMediaSeeking* This,LONGLONG *pTarget,const GUID *pTargetFormat,LONGLONG Source,const GUID *pSourceFormat) {
   3693     return This->lpVtbl->ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat);
   3694 }
   3695 static FORCEINLINE HRESULT IMediaSeeking_SetPositions(IMediaSeeking* This,LONGLONG *pCurrent,DWORD dwCurrentFlags,LONGLONG *pStop,DWORD dwStopFlags) {
   3696     return This->lpVtbl->SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags);
   3697 }
   3698 static FORCEINLINE HRESULT IMediaSeeking_GetPositions(IMediaSeeking* This,LONGLONG *pCurrent,LONGLONG *pStop) {
   3699     return This->lpVtbl->GetPositions(This,pCurrent,pStop);
   3700 }
   3701 static FORCEINLINE HRESULT IMediaSeeking_GetAvailable(IMediaSeeking* This,LONGLONG *pEarliest,LONGLONG *pLatest) {
   3702     return This->lpVtbl->GetAvailable(This,pEarliest,pLatest);
   3703 }
   3704 static FORCEINLINE HRESULT IMediaSeeking_SetRate(IMediaSeeking* This,double dRate) {
   3705     return This->lpVtbl->SetRate(This,dRate);
   3706 }
   3707 static FORCEINLINE HRESULT IMediaSeeking_GetRate(IMediaSeeking* This,double *pdRate) {
   3708     return This->lpVtbl->GetRate(This,pdRate);
   3709 }
   3710 static FORCEINLINE HRESULT IMediaSeeking_GetPreroll(IMediaSeeking* This,LONGLONG *pllPreroll) {
   3711     return This->lpVtbl->GetPreroll(This,pllPreroll);
   3712 }
   3713 #endif
   3714 #endif
   3715 
   3716 #endif
   3717 
   3718 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetCapabilities_Proxy(
   3719     IMediaSeeking* This,
   3720     DWORD *pCapabilities);
   3721 void __RPC_STUB IMediaSeeking_GetCapabilities_Stub(
   3722     IRpcStubBuffer* This,
   3723     IRpcChannelBuffer* pRpcChannelBuffer,
   3724     PRPC_MESSAGE pRpcMessage,
   3725     DWORD* pdwStubPhase);
   3726 HRESULT STDMETHODCALLTYPE IMediaSeeking_CheckCapabilities_Proxy(
   3727     IMediaSeeking* This,
   3728     DWORD *pCapabilities);
   3729 void __RPC_STUB IMediaSeeking_CheckCapabilities_Stub(
   3730     IRpcStubBuffer* This,
   3731     IRpcChannelBuffer* pRpcChannelBuffer,
   3732     PRPC_MESSAGE pRpcMessage,
   3733     DWORD* pdwStubPhase);
   3734 HRESULT STDMETHODCALLTYPE IMediaSeeking_IsFormatSupported_Proxy(
   3735     IMediaSeeking* This,
   3736     const GUID *pFormat);
   3737 void __RPC_STUB IMediaSeeking_IsFormatSupported_Stub(
   3738     IRpcStubBuffer* This,
   3739     IRpcChannelBuffer* pRpcChannelBuffer,
   3740     PRPC_MESSAGE pRpcMessage,
   3741     DWORD* pdwStubPhase);
   3742 HRESULT STDMETHODCALLTYPE IMediaSeeking_QueryPreferredFormat_Proxy(
   3743     IMediaSeeking* This,
   3744     GUID *pFormat);
   3745 void __RPC_STUB IMediaSeeking_QueryPreferredFormat_Stub(
   3746     IRpcStubBuffer* This,
   3747     IRpcChannelBuffer* pRpcChannelBuffer,
   3748     PRPC_MESSAGE pRpcMessage,
   3749     DWORD* pdwStubPhase);
   3750 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetTimeFormat_Proxy(
   3751     IMediaSeeking* This,
   3752     GUID *pFormat);
   3753 void __RPC_STUB IMediaSeeking_GetTimeFormat_Stub(
   3754     IRpcStubBuffer* This,
   3755     IRpcChannelBuffer* pRpcChannelBuffer,
   3756     PRPC_MESSAGE pRpcMessage,
   3757     DWORD* pdwStubPhase);
   3758 HRESULT STDMETHODCALLTYPE IMediaSeeking_IsUsingTimeFormat_Proxy(
   3759     IMediaSeeking* This,
   3760     const GUID *pFormat);
   3761 void __RPC_STUB IMediaSeeking_IsUsingTimeFormat_Stub(
   3762     IRpcStubBuffer* This,
   3763     IRpcChannelBuffer* pRpcChannelBuffer,
   3764     PRPC_MESSAGE pRpcMessage,
   3765     DWORD* pdwStubPhase);
   3766 HRESULT STDMETHODCALLTYPE IMediaSeeking_SetTimeFormat_Proxy(
   3767     IMediaSeeking* This,
   3768     const GUID *pFormat);
   3769 void __RPC_STUB IMediaSeeking_SetTimeFormat_Stub(
   3770     IRpcStubBuffer* This,
   3771     IRpcChannelBuffer* pRpcChannelBuffer,
   3772     PRPC_MESSAGE pRpcMessage,
   3773     DWORD* pdwStubPhase);
   3774 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetDuration_Proxy(
   3775     IMediaSeeking* This,
   3776     LONGLONG *pDuration);
   3777 void __RPC_STUB IMediaSeeking_GetDuration_Stub(
   3778     IRpcStubBuffer* This,
   3779     IRpcChannelBuffer* pRpcChannelBuffer,
   3780     PRPC_MESSAGE pRpcMessage,
   3781     DWORD* pdwStubPhase);
   3782 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetStopPosition_Proxy(
   3783     IMediaSeeking* This,
   3784     LONGLONG *pStop);
   3785 void __RPC_STUB IMediaSeeking_GetStopPosition_Stub(
   3786     IRpcStubBuffer* This,
   3787     IRpcChannelBuffer* pRpcChannelBuffer,
   3788     PRPC_MESSAGE pRpcMessage,
   3789     DWORD* pdwStubPhase);
   3790 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetCurrentPosition_Proxy(
   3791     IMediaSeeking* This,
   3792     LONGLONG *pCurrent);
   3793 void __RPC_STUB IMediaSeeking_GetCurrentPosition_Stub(
   3794     IRpcStubBuffer* This,
   3795     IRpcChannelBuffer* pRpcChannelBuffer,
   3796     PRPC_MESSAGE pRpcMessage,
   3797     DWORD* pdwStubPhase);
   3798 HRESULT STDMETHODCALLTYPE IMediaSeeking_ConvertTimeFormat_Proxy(
   3799     IMediaSeeking* This,
   3800     LONGLONG *pTarget,
   3801     const GUID *pTargetFormat,
   3802     LONGLONG Source,
   3803     const GUID *pSourceFormat);
   3804 void __RPC_STUB IMediaSeeking_ConvertTimeFormat_Stub(
   3805     IRpcStubBuffer* This,
   3806     IRpcChannelBuffer* pRpcChannelBuffer,
   3807     PRPC_MESSAGE pRpcMessage,
   3808     DWORD* pdwStubPhase);
   3809 HRESULT STDMETHODCALLTYPE IMediaSeeking_SetPositions_Proxy(
   3810     IMediaSeeking* This,
   3811     LONGLONG *pCurrent,
   3812     DWORD dwCurrentFlags,
   3813     LONGLONG *pStop,
   3814     DWORD dwStopFlags);
   3815 void __RPC_STUB IMediaSeeking_SetPositions_Stub(
   3816     IRpcStubBuffer* This,
   3817     IRpcChannelBuffer* pRpcChannelBuffer,
   3818     PRPC_MESSAGE pRpcMessage,
   3819     DWORD* pdwStubPhase);
   3820 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetPositions_Proxy(
   3821     IMediaSeeking* This,
   3822     LONGLONG *pCurrent,
   3823     LONGLONG *pStop);
   3824 void __RPC_STUB IMediaSeeking_GetPositions_Stub(
   3825     IRpcStubBuffer* This,
   3826     IRpcChannelBuffer* pRpcChannelBuffer,
   3827     PRPC_MESSAGE pRpcMessage,
   3828     DWORD* pdwStubPhase);
   3829 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetAvailable_Proxy(
   3830     IMediaSeeking* This,
   3831     LONGLONG *pEarliest,
   3832     LONGLONG *pLatest);
   3833 void __RPC_STUB IMediaSeeking_GetAvailable_Stub(
   3834     IRpcStubBuffer* This,
   3835     IRpcChannelBuffer* pRpcChannelBuffer,
   3836     PRPC_MESSAGE pRpcMessage,
   3837     DWORD* pdwStubPhase);
   3838 HRESULT STDMETHODCALLTYPE IMediaSeeking_SetRate_Proxy(
   3839     IMediaSeeking* This,
   3840     double dRate);
   3841 void __RPC_STUB IMediaSeeking_SetRate_Stub(
   3842     IRpcStubBuffer* This,
   3843     IRpcChannelBuffer* pRpcChannelBuffer,
   3844     PRPC_MESSAGE pRpcMessage,
   3845     DWORD* pdwStubPhase);
   3846 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetRate_Proxy(
   3847     IMediaSeeking* This,
   3848     double *pdRate);
   3849 void __RPC_STUB IMediaSeeking_GetRate_Stub(
   3850     IRpcStubBuffer* This,
   3851     IRpcChannelBuffer* pRpcChannelBuffer,
   3852     PRPC_MESSAGE pRpcMessage,
   3853     DWORD* pdwStubPhase);
   3854 HRESULT STDMETHODCALLTYPE IMediaSeeking_GetPreroll_Proxy(
   3855     IMediaSeeking* This,
   3856     LONGLONG *pllPreroll);
   3857 void __RPC_STUB IMediaSeeking_GetPreroll_Stub(
   3858     IRpcStubBuffer* This,
   3859     IRpcChannelBuffer* pRpcChannelBuffer,
   3860     PRPC_MESSAGE pRpcMessage,
   3861     DWORD* pdwStubPhase);
   3862 
   3863 #endif  /* __IMediaSeeking_INTERFACE_DEFINED__ */
   3864 
   3865 typedef IMediaSeeking *PMEDIASEEKING;
   3866 enum tagAM_MEDIAEVENT_FLAGS {
   3867     AM_MEDIAEVENT_NONOTIFY = 0x1
   3868 };
   3869 
   3870 #ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
   3871 #define __IAMAnalogVideoDecoder_FWD_DEFINED__
   3872 typedef interface IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
   3873 #endif
   3874 
   3875 #ifndef __IAMAnalogVideoEncoder_FWD_DEFINED__
   3876 #define __IAMAnalogVideoEncoder_FWD_DEFINED__
   3877 typedef interface IAMAnalogVideoEncoder IAMAnalogVideoEncoder;
   3878 #endif
   3879 
   3880 #ifndef __IAMAudioInputMixer_FWD_DEFINED__
   3881 #define __IAMAudioInputMixer_FWD_DEFINED__
   3882 typedef interface IAMAudioInputMixer IAMAudioInputMixer;
   3883 #endif
   3884 
   3885 #ifndef __IAMAudioRendererStats_FWD_DEFINED__
   3886 #define __IAMAudioRendererStats_FWD_DEFINED__
   3887 typedef interface IAMAudioRendererStats IAMAudioRendererStats;
   3888 #endif
   3889 
   3890 #ifndef __IAMBufferNegotiation_FWD_DEFINED__
   3891 #define __IAMBufferNegotiation_FWD_DEFINED__
   3892 typedef interface IAMBufferNegotiation IAMBufferNegotiation;
   3893 #endif
   3894 
   3895 #ifndef __IAMCameraControl_FWD_DEFINED__
   3896 #define __IAMCameraControl_FWD_DEFINED__
   3897 typedef interface IAMCameraControl IAMCameraControl;
   3898 #endif
   3899 
   3900 #ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__
   3901 #define __IAMCopyCaptureFileProgress_FWD_DEFINED__
   3902 typedef interface IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
   3903 #endif
   3904 
   3905 #ifndef __IAMCrossbar_FWD_DEFINED__
   3906 #define __IAMCrossbar_FWD_DEFINED__
   3907 typedef interface IAMCrossbar IAMCrossbar;
   3908 #endif
   3909 
   3910 #ifndef __IAMDevMemoryAllocator_FWD_DEFINED__
   3911 #define __IAMDevMemoryAllocator_FWD_DEFINED__
   3912 typedef interface IAMDevMemoryAllocator IAMDevMemoryAllocator;
   3913 #endif
   3914 
   3915 #ifndef __IAMDevMemoryControl_FWD_DEFINED__
   3916 #define __IAMDevMemoryControl_FWD_DEFINED__
   3917 typedef interface IAMDevMemoryControl IAMDevMemoryControl;
   3918 #endif
   3919 
   3920 #ifndef __IAMDroppedFrames_FWD_DEFINED__
   3921 #define __IAMDroppedFrames_FWD_DEFINED__
   3922 typedef interface IAMDroppedFrames IAMDroppedFrames;
   3923 #endif
   3924 
   3925 #ifndef __IAMExtDevice_FWD_DEFINED__
   3926 #define __IAMExtDevice_FWD_DEFINED__
   3927 typedef interface IAMExtDevice IAMExtDevice;
   3928 #endif
   3929 
   3930 #ifndef __IAMExtTransport_FWD_DEFINED__
   3931 #define __IAMExtTransport_FWD_DEFINED__
   3932 typedef interface IAMExtTransport IAMExtTransport;
   3933 #endif
   3934 
   3935 #ifndef __IAMGraphStreams_FWD_DEFINED__
   3936 #define __IAMGraphStreams_FWD_DEFINED__
   3937 typedef interface IAMGraphStreams IAMGraphStreams;
   3938 #endif
   3939 
   3940 #ifndef __IAMLatency_FWD_DEFINED__
   3941 #define __IAMLatency_FWD_DEFINED__
   3942 typedef interface IAMLatency IAMLatency;
   3943 #endif
   3944 
   3945 #ifndef __IAMOpenProgress_FWD_DEFINED__
   3946 #define __IAMOpenProgress_FWD_DEFINED__
   3947 typedef interface IAMOpenProgress IAMOpenProgress;
   3948 #endif
   3949 
   3950 #ifndef __IAMOverlayFX_FWD_DEFINED__
   3951 #define __IAMOverlayFX_FWD_DEFINED__
   3952 typedef interface IAMOverlayFX IAMOverlayFX;
   3953 #endif
   3954 
   3955 #ifndef __IAMPhysicalPinInfo_FWD_DEFINED__
   3956 #define __IAMPhysicalPinInfo_FWD_DEFINED__
   3957 typedef interface IAMPhysicalPinInfo IAMPhysicalPinInfo;
   3958 #endif
   3959 
   3960 #ifndef __IAMPushSource_FWD_DEFINED__
   3961 #define __IAMPushSource_FWD_DEFINED__
   3962 typedef interface IAMPushSource IAMPushSource;
   3963 #endif
   3964 
   3965 #ifndef __IAMStreamConfig_FWD_DEFINED__
   3966 #define __IAMStreamConfig_FWD_DEFINED__
   3967 typedef interface IAMStreamConfig IAMStreamConfig;
   3968 #endif
   3969 
   3970 #ifndef __IAMTimecodeDisplay_FWD_DEFINED__
   3971 #define __IAMTimecodeDisplay_FWD_DEFINED__
   3972 typedef interface IAMTimecodeDisplay IAMTimecodeDisplay;
   3973 #endif
   3974 
   3975 #ifndef __IAMTimecodeGenerator_FWD_DEFINED__
   3976 #define __IAMTimecodeGenerator_FWD_DEFINED__
   3977 typedef interface IAMTimecodeGenerator IAMTimecodeGenerator;
   3978 #endif
   3979 
   3980 #ifndef __IAMTimecodeReader_FWD_DEFINED__
   3981 #define __IAMTimecodeReader_FWD_DEFINED__
   3982 typedef interface IAMTimecodeReader IAMTimecodeReader;
   3983 #endif
   3984 
   3985 #ifndef __IAMTVTuner_FWD_DEFINED__
   3986 #define __IAMTVTuner_FWD_DEFINED__
   3987 typedef interface IAMTVTuner IAMTVTuner;
   3988 #endif
   3989 
   3990 #ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__
   3991 #define __IAMVfwCaptureDialogs_FWD_DEFINED__
   3992 typedef interface IAMVfwCaptureDialogs IAMVfwCaptureDialogs;
   3993 #endif
   3994 
   3995 #ifndef __IAMVfwCompressDialogs_FWD_DEFINED__
   3996 #define __IAMVfwCompressDialogs_FWD_DEFINED__
   3997 typedef interface IAMVfwCompressDialogs IAMVfwCompressDialogs;
   3998 #endif
   3999 
   4000 #ifndef __IAMVideoCompression_FWD_DEFINED__
   4001 #define __IAMVideoCompression_FWD_DEFINED__
   4002 typedef interface IAMVideoCompression IAMVideoCompression;
   4003 #endif
   4004 
   4005 #ifndef __IAMVideoDecimationProperties_FWD_DEFINED__
   4006 #define __IAMVideoDecimationProperties_FWD_DEFINED__
   4007 typedef interface IAMVideoDecimationProperties IAMVideoDecimationProperties;
   4008 #endif
   4009 
   4010 #ifndef __IAMVideoProcAmp_FWD_DEFINED__
   4011 #define __IAMVideoProcAmp_FWD_DEFINED__
   4012 typedef interface IAMVideoProcAmp IAMVideoProcAmp;
   4013 #endif
   4014 
   4015 #ifndef __IAMGraphBuilderCallback_FWD_DEFINED__
   4016 #define __IAMGraphBuilderCallback_FWD_DEFINED__
   4017 typedef interface IAMGraphBuilderCallback IAMGraphBuilderCallback;
   4018 #endif
   4019 
   4020 #ifndef __ICaptureGraphBuilder_FWD_DEFINED__
   4021 #define __ICaptureGraphBuilder_FWD_DEFINED__
   4022 typedef interface ICaptureGraphBuilder ICaptureGraphBuilder;
   4023 #endif
   4024 
   4025 #ifndef __ICaptureGraphBuilder2_FWD_DEFINED__
   4026 #define __ICaptureGraphBuilder2_FWD_DEFINED__
   4027 typedef interface ICaptureGraphBuilder2 ICaptureGraphBuilder2;
   4028 #endif
   4029 
   4030 #ifndef __IConfigAviMux_FWD_DEFINED__
   4031 #define __IConfigAviMux_FWD_DEFINED__
   4032 typedef interface IConfigAviMux IConfigAviMux;
   4033 #endif
   4034 
   4035 #ifndef __IConfigInterleaving_FWD_DEFINED__
   4036 #define __IConfigInterleaving_FWD_DEFINED__
   4037 typedef interface IConfigInterleaving IConfigInterleaving;
   4038 #endif
   4039 
   4040 #ifndef __IDecimateVideoImage_FWD_DEFINED__
   4041 #define __IDecimateVideoImage_FWD_DEFINED__
   4042 typedef interface IDecimateVideoImage IDecimateVideoImage;
   4043 #endif
   4044 
   4045 #ifndef __IDrawVideoImage_FWD_DEFINED__
   4046 #define __IDrawVideoImage_FWD_DEFINED__
   4047 typedef interface IDrawVideoImage IDrawVideoImage;
   4048 #endif
   4049 
   4050 #ifndef __IEnumRegFilters_FWD_DEFINED__
   4051 #define __IEnumRegFilters_FWD_DEFINED__
   4052 typedef interface IEnumRegFilters IEnumRegFilters;
   4053 #endif
   4054 
   4055 #ifndef __IEnumStreamIdMap_FWD_DEFINED__
   4056 #define __IEnumStreamIdMap_FWD_DEFINED__
   4057 typedef interface IEnumStreamIdMap IEnumStreamIdMap;
   4058 #endif
   4059 
   4060 #ifndef __IFileSourceFilter_FWD_DEFINED__
   4061 #define __IFileSourceFilter_FWD_DEFINED__
   4062 typedef interface IFileSourceFilter IFileSourceFilter;
   4063 #endif
   4064 
   4065 #ifndef __IFileSinkFilter_FWD_DEFINED__
   4066 #define __IFileSinkFilter_FWD_DEFINED__
   4067 typedef interface IFileSinkFilter IFileSinkFilter;
   4068 #endif
   4069 
   4070 #ifndef __IFileSinkFilter2_FWD_DEFINED__
   4071 #define __IFileSinkFilter2_FWD_DEFINED__
   4072 typedef interface IFileSinkFilter2 IFileSinkFilter2;
   4073 #endif
   4074 
   4075 #ifndef __IFilterMapper_FWD_DEFINED__
   4076 #define __IFilterMapper_FWD_DEFINED__
   4077 typedef interface IFilterMapper IFilterMapper;
   4078 #endif
   4079 
   4080 #ifndef __IFilterMapper2_FWD_DEFINED__
   4081 #define __IFilterMapper2_FWD_DEFINED__
   4082 typedef interface IFilterMapper2 IFilterMapper2;
   4083 #endif
   4084 
   4085 #ifndef __IGraphBuilder_FWD_DEFINED__
   4086 #define __IGraphBuilder_FWD_DEFINED__
   4087 typedef interface IGraphBuilder IGraphBuilder;
   4088 #endif
   4089 
   4090 #ifndef __IKsPropertySet_FWD_DEFINED__
   4091 #define __IKsPropertySet_FWD_DEFINED__
   4092 typedef interface IKsPropertySet IKsPropertySet;
   4093 #endif
   4094 
   4095 #ifndef __IMediaEventSink_FWD_DEFINED__
   4096 #define __IMediaEventSink_FWD_DEFINED__
   4097 typedef interface IMediaEventSink IMediaEventSink;
   4098 #endif
   4099 
   4100 #ifndef __IMpeg2Demultiplexer_FWD_DEFINED__
   4101 #define __IMpeg2Demultiplexer_FWD_DEFINED__
   4102 typedef interface IMpeg2Demultiplexer IMpeg2Demultiplexer;
   4103 #endif
   4104 
   4105 #ifndef __IMPEG2StreamIdMap_FWD_DEFINED__
   4106 #define __IMPEG2StreamIdMap_FWD_DEFINED__
   4107 typedef interface IMPEG2StreamIdMap IMPEG2StreamIdMap;
   4108 #endif
   4109 
   4110 #ifndef __IOverlay_FWD_DEFINED__
   4111 #define __IOverlay_FWD_DEFINED__
   4112 typedef interface IOverlay IOverlay;
   4113 #endif
   4114 
   4115 #ifndef __IOverlayNotify_FWD_DEFINED__
   4116 #define __IOverlayNotify_FWD_DEFINED__
   4117 typedef interface IOverlayNotify IOverlayNotify;
   4118 #endif
   4119 
   4120 #ifndef __IOverlayNotify2_FWD_DEFINED__
   4121 #define __IOverlayNotify2_FWD_DEFINED__
   4122 typedef interface IOverlayNotify2 IOverlayNotify2;
   4123 #endif
   4124 
   4125 #ifndef __IQualityControl_FWD_DEFINED__
   4126 #define __IQualityControl_FWD_DEFINED__
   4127 typedef interface IQualityControl IQualityControl;
   4128 #endif
   4129 
   4130 #ifndef __ISeekingPassThru_FWD_DEFINED__
   4131 #define __ISeekingPassThru_FWD_DEFINED__
   4132 typedef interface ISeekingPassThru ISeekingPassThru;
   4133 #endif
   4134 
   4135 typedef struct __WIDL_axextend_generated_name_00000000 {
   4136     CLSID Clsid;
   4137     LPWSTR Name;
   4138 } REGFILTER;
   4139 /*****************************************************************************
   4140  * IEnumRegFilters interface
   4141  */
   4142 #ifndef __IEnumRegFilters_INTERFACE_DEFINED__
   4143 #define __IEnumRegFilters_INTERFACE_DEFINED__
   4144 
   4145 DEFINE_GUID(IID_IEnumRegFilters, 0x56a868a4, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   4146 #if defined(__cplusplus) && !defined(CINTERFACE)
   4147 MIDL_INTERFACE("56a868a4-0ad4-11ce-b03a-0020af0ba770")
   4148 IEnumRegFilters : public IUnknown
   4149 {
   4150     virtual HRESULT STDMETHODCALLTYPE Next(
   4151         ULONG cFilters,
   4152         REGFILTER **apRegFilter,
   4153         ULONG *pcFetched) = 0;
   4154 
   4155     virtual HRESULT STDMETHODCALLTYPE Skip(
   4156         ULONG cFilters) = 0;
   4157 
   4158     virtual HRESULT STDMETHODCALLTYPE Reset(
   4159         ) = 0;
   4160 
   4161     virtual HRESULT STDMETHODCALLTYPE Clone(
   4162         IEnumRegFilters **ppEnum) = 0;
   4163 
   4164 };
   4165 #ifdef __CRT_UUID_DECL
   4166 __CRT_UUID_DECL(IEnumRegFilters, 0x56a868a4, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   4167 #endif
   4168 #else
   4169 typedef struct IEnumRegFiltersVtbl {
   4170     BEGIN_INTERFACE
   4171 
   4172     /*** IUnknown methods ***/
   4173     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4174         IEnumRegFilters* This,
   4175         REFIID riid,
   4176         void **ppvObject);
   4177 
   4178     ULONG (STDMETHODCALLTYPE *AddRef)(
   4179         IEnumRegFilters* This);
   4180 
   4181     ULONG (STDMETHODCALLTYPE *Release)(
   4182         IEnumRegFilters* This);
   4183 
   4184     /*** IEnumRegFilters methods ***/
   4185     HRESULT (STDMETHODCALLTYPE *Next)(
   4186         IEnumRegFilters* This,
   4187         ULONG cFilters,
   4188         REGFILTER **apRegFilter,
   4189         ULONG *pcFetched);
   4190 
   4191     HRESULT (STDMETHODCALLTYPE *Skip)(
   4192         IEnumRegFilters* This,
   4193         ULONG cFilters);
   4194 
   4195     HRESULT (STDMETHODCALLTYPE *Reset)(
   4196         IEnumRegFilters* This);
   4197 
   4198     HRESULT (STDMETHODCALLTYPE *Clone)(
   4199         IEnumRegFilters* This,
   4200         IEnumRegFilters **ppEnum);
   4201 
   4202     END_INTERFACE
   4203 } IEnumRegFiltersVtbl;
   4204 interface IEnumRegFilters {
   4205     CONST_VTBL IEnumRegFiltersVtbl* lpVtbl;
   4206 };
   4207 
   4208 #ifdef COBJMACROS
   4209 #ifndef WIDL_C_INLINE_WRAPPERS
   4210 /*** IUnknown methods ***/
   4211 #define IEnumRegFilters_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4212 #define IEnumRegFilters_AddRef(This) (This)->lpVtbl->AddRef(This)
   4213 #define IEnumRegFilters_Release(This) (This)->lpVtbl->Release(This)
   4214 /*** IEnumRegFilters methods ***/
   4215 #define IEnumRegFilters_Next(This,cFilters,apRegFilter,pcFetched) (This)->lpVtbl->Next(This,cFilters,apRegFilter,pcFetched)
   4216 #define IEnumRegFilters_Skip(This,cFilters) (This)->lpVtbl->Skip(This,cFilters)
   4217 #define IEnumRegFilters_Reset(This) (This)->lpVtbl->Reset(This)
   4218 #define IEnumRegFilters_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
   4219 #else
   4220 /*** IUnknown methods ***/
   4221 static FORCEINLINE HRESULT IEnumRegFilters_QueryInterface(IEnumRegFilters* This,REFIID riid,void **ppvObject) {
   4222     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4223 }
   4224 static FORCEINLINE ULONG IEnumRegFilters_AddRef(IEnumRegFilters* This) {
   4225     return This->lpVtbl->AddRef(This);
   4226 }
   4227 static FORCEINLINE ULONG IEnumRegFilters_Release(IEnumRegFilters* This) {
   4228     return This->lpVtbl->Release(This);
   4229 }
   4230 /*** IEnumRegFilters methods ***/
   4231 static FORCEINLINE HRESULT IEnumRegFilters_Next(IEnumRegFilters* This,ULONG cFilters,REGFILTER **apRegFilter,ULONG *pcFetched) {
   4232     return This->lpVtbl->Next(This,cFilters,apRegFilter,pcFetched);
   4233 }
   4234 static FORCEINLINE HRESULT IEnumRegFilters_Skip(IEnumRegFilters* This,ULONG cFilters) {
   4235     return This->lpVtbl->Skip(This,cFilters);
   4236 }
   4237 static FORCEINLINE HRESULT IEnumRegFilters_Reset(IEnumRegFilters* This) {
   4238     return This->lpVtbl->Reset(This);
   4239 }
   4240 static FORCEINLINE HRESULT IEnumRegFilters_Clone(IEnumRegFilters* This,IEnumRegFilters **ppEnum) {
   4241     return This->lpVtbl->Clone(This,ppEnum);
   4242 }
   4243 #endif
   4244 #endif
   4245 
   4246 #endif
   4247 
   4248 HRESULT STDMETHODCALLTYPE IEnumRegFilters_Next_Proxy(
   4249     IEnumRegFilters* This,
   4250     ULONG cFilters,
   4251     REGFILTER **apRegFilter,
   4252     ULONG *pcFetched);
   4253 void __RPC_STUB IEnumRegFilters_Next_Stub(
   4254     IRpcStubBuffer* This,
   4255     IRpcChannelBuffer* pRpcChannelBuffer,
   4256     PRPC_MESSAGE pRpcMessage,
   4257     DWORD* pdwStubPhase);
   4258 HRESULT STDMETHODCALLTYPE IEnumRegFilters_Skip_Proxy(
   4259     IEnumRegFilters* This,
   4260     ULONG cFilters);
   4261 void __RPC_STUB IEnumRegFilters_Skip_Stub(
   4262     IRpcStubBuffer* This,
   4263     IRpcChannelBuffer* pRpcChannelBuffer,
   4264     PRPC_MESSAGE pRpcMessage,
   4265     DWORD* pdwStubPhase);
   4266 HRESULT STDMETHODCALLTYPE IEnumRegFilters_Reset_Proxy(
   4267     IEnumRegFilters* This);
   4268 void __RPC_STUB IEnumRegFilters_Reset_Stub(
   4269     IRpcStubBuffer* This,
   4270     IRpcChannelBuffer* pRpcChannelBuffer,
   4271     PRPC_MESSAGE pRpcMessage,
   4272     DWORD* pdwStubPhase);
   4273 HRESULT STDMETHODCALLTYPE IEnumRegFilters_Clone_Proxy(
   4274     IEnumRegFilters* This,
   4275     IEnumRegFilters **ppEnum);
   4276 void __RPC_STUB IEnumRegFilters_Clone_Stub(
   4277     IRpcStubBuffer* This,
   4278     IRpcChannelBuffer* pRpcChannelBuffer,
   4279     PRPC_MESSAGE pRpcMessage,
   4280     DWORD* pdwStubPhase);
   4281 
   4282 #endif  /* __IEnumRegFilters_INTERFACE_DEFINED__ */
   4283 
   4284 typedef IEnumRegFilters *PENUMREGFILTERS;
   4285 /*****************************************************************************
   4286  * IFilterMapper interface
   4287  */
   4288 #ifndef __IFilterMapper_INTERFACE_DEFINED__
   4289 #define __IFilterMapper_INTERFACE_DEFINED__
   4290 
   4291 enum {
   4292     MERIT_PREFERRED = 0x800000,
   4293     MERIT_NORMAL = 0x600000,
   4294     MERIT_UNLIKELY = 0x400000,
   4295     MERIT_DO_NOT_USE = 0x200000,
   4296     MERIT_SW_COMPRESSOR = 0x100000,
   4297     MERIT_HW_COMPRESSOR = 0x100050
   4298 };
   4299 
   4300 DEFINE_GUID(IID_IFilterMapper, 0x56a868a3, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   4301 #if defined(__cplusplus) && !defined(CINTERFACE)
   4302 MIDL_INTERFACE("56a868a3-0ad4-11ce-b03a-0020af0ba770")
   4303 IFilterMapper : public IUnknown
   4304 {
   4305     virtual HRESULT STDMETHODCALLTYPE RegisterFilter(
   4306         CLSID clsid,
   4307         LPCWSTR Name,
   4308         DWORD dwMerit) = 0;
   4309 
   4310     virtual HRESULT STDMETHODCALLTYPE RegisterFilterInstance(
   4311         CLSID clsid,
   4312         LPCWSTR Name,
   4313         CLSID *MRId) = 0;
   4314 
   4315     virtual HRESULT STDMETHODCALLTYPE RegisterPin(
   4316         CLSID Filter,
   4317         LPCWSTR Name,
   4318         WINBOOL bRendered,
   4319         WINBOOL bOutput,
   4320         WINBOOL bZero,
   4321         WINBOOL bMany,
   4322         CLSID ConnectsToFilter,
   4323         LPCWSTR ConnectsToPin) = 0;
   4324 
   4325     virtual HRESULT STDMETHODCALLTYPE RegisterPinType(
   4326         CLSID clsFilter,
   4327         LPCWSTR strName,
   4328         CLSID clsMajorType,
   4329         CLSID clsSubType) = 0;
   4330 
   4331     virtual HRESULT STDMETHODCALLTYPE UnregisterFilter(
   4332         CLSID Filter) = 0;
   4333 
   4334     virtual HRESULT STDMETHODCALLTYPE UnregisterFilterInstance(
   4335         CLSID MRId) = 0;
   4336 
   4337     virtual HRESULT STDMETHODCALLTYPE UnregisterPin(
   4338         CLSID Filter,
   4339         LPCWSTR Name) = 0;
   4340 
   4341     virtual HRESULT STDMETHODCALLTYPE EnumMatchingFilters(
   4342         IEnumRegFilters **ppEnum,
   4343         DWORD dwMerit,
   4344         WINBOOL bInputNeeded,
   4345         CLSID clsInMaj,
   4346         CLSID clsInSub,
   4347         WINBOOL bRender,
   4348         WINBOOL bOututNeeded,
   4349         CLSID clsOutMaj,
   4350         CLSID clsOutSub) = 0;
   4351 
   4352 };
   4353 #ifdef __CRT_UUID_DECL
   4354 __CRT_UUID_DECL(IFilterMapper, 0x56a868a3, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   4355 #endif
   4356 #else
   4357 typedef struct IFilterMapperVtbl {
   4358     BEGIN_INTERFACE
   4359 
   4360     /*** IUnknown methods ***/
   4361     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4362         IFilterMapper* This,
   4363         REFIID riid,
   4364         void **ppvObject);
   4365 
   4366     ULONG (STDMETHODCALLTYPE *AddRef)(
   4367         IFilterMapper* This);
   4368 
   4369     ULONG (STDMETHODCALLTYPE *Release)(
   4370         IFilterMapper* This);
   4371 
   4372     /*** IFilterMapper methods ***/
   4373     HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
   4374         IFilterMapper* This,
   4375         CLSID clsid,
   4376         LPCWSTR Name,
   4377         DWORD dwMerit);
   4378 
   4379     HRESULT (STDMETHODCALLTYPE *RegisterFilterInstance)(
   4380         IFilterMapper* This,
   4381         CLSID clsid,
   4382         LPCWSTR Name,
   4383         CLSID *MRId);
   4384 
   4385     HRESULT (STDMETHODCALLTYPE *RegisterPin)(
   4386         IFilterMapper* This,
   4387         CLSID Filter,
   4388         LPCWSTR Name,
   4389         WINBOOL bRendered,
   4390         WINBOOL bOutput,
   4391         WINBOOL bZero,
   4392         WINBOOL bMany,
   4393         CLSID ConnectsToFilter,
   4394         LPCWSTR ConnectsToPin);
   4395 
   4396     HRESULT (STDMETHODCALLTYPE *RegisterPinType)(
   4397         IFilterMapper* This,
   4398         CLSID clsFilter,
   4399         LPCWSTR strName,
   4400         CLSID clsMajorType,
   4401         CLSID clsSubType);
   4402 
   4403     HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
   4404         IFilterMapper* This,
   4405         CLSID Filter);
   4406 
   4407     HRESULT (STDMETHODCALLTYPE *UnregisterFilterInstance)(
   4408         IFilterMapper* This,
   4409         CLSID MRId);
   4410 
   4411     HRESULT (STDMETHODCALLTYPE *UnregisterPin)(
   4412         IFilterMapper* This,
   4413         CLSID Filter,
   4414         LPCWSTR Name);
   4415 
   4416     HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
   4417         IFilterMapper* This,
   4418         IEnumRegFilters **ppEnum,
   4419         DWORD dwMerit,
   4420         WINBOOL bInputNeeded,
   4421         CLSID clsInMaj,
   4422         CLSID clsInSub,
   4423         WINBOOL bRender,
   4424         WINBOOL bOututNeeded,
   4425         CLSID clsOutMaj,
   4426         CLSID clsOutSub);
   4427 
   4428     END_INTERFACE
   4429 } IFilterMapperVtbl;
   4430 interface IFilterMapper {
   4431     CONST_VTBL IFilterMapperVtbl* lpVtbl;
   4432 };
   4433 
   4434 #ifdef COBJMACROS
   4435 #ifndef WIDL_C_INLINE_WRAPPERS
   4436 /*** IUnknown methods ***/
   4437 #define IFilterMapper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4438 #define IFilterMapper_AddRef(This) (This)->lpVtbl->AddRef(This)
   4439 #define IFilterMapper_Release(This) (This)->lpVtbl->Release(This)
   4440 /*** IFilterMapper methods ***/
   4441 #define IFilterMapper_RegisterFilter(This,clsid,Name,dwMerit) (This)->lpVtbl->RegisterFilter(This,clsid,Name,dwMerit)
   4442 #define IFilterMapper_RegisterFilterInstance(This,clsid,Name,MRId) (This)->lpVtbl->RegisterFilterInstance(This,clsid,Name,MRId)
   4443 #define IFilterMapper_RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin) (This)->lpVtbl->RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin)
   4444 #define IFilterMapper_RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType) (This)->lpVtbl->RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType)
   4445 #define IFilterMapper_UnregisterFilter(This,Filter) (This)->lpVtbl->UnregisterFilter(This,Filter)
   4446 #define IFilterMapper_UnregisterFilterInstance(This,MRId) (This)->lpVtbl->UnregisterFilterInstance(This,MRId)
   4447 #define IFilterMapper_UnregisterPin(This,Filter,Name) (This)->lpVtbl->UnregisterPin(This,Filter,Name)
   4448 #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)
   4449 #else
   4450 /*** IUnknown methods ***/
   4451 static FORCEINLINE HRESULT IFilterMapper_QueryInterface(IFilterMapper* This,REFIID riid,void **ppvObject) {
   4452     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4453 }
   4454 static FORCEINLINE ULONG IFilterMapper_AddRef(IFilterMapper* This) {
   4455     return This->lpVtbl->AddRef(This);
   4456 }
   4457 static FORCEINLINE ULONG IFilterMapper_Release(IFilterMapper* This) {
   4458     return This->lpVtbl->Release(This);
   4459 }
   4460 /*** IFilterMapper methods ***/
   4461 static FORCEINLINE HRESULT IFilterMapper_RegisterFilter(IFilterMapper* This,CLSID clsid,LPCWSTR Name,DWORD dwMerit) {
   4462     return This->lpVtbl->RegisterFilter(This,clsid,Name,dwMerit);
   4463 }
   4464 static FORCEINLINE HRESULT IFilterMapper_RegisterFilterInstance(IFilterMapper* This,CLSID clsid,LPCWSTR Name,CLSID *MRId) {
   4465     return This->lpVtbl->RegisterFilterInstance(This,clsid,Name,MRId);
   4466 }
   4467 static FORCEINLINE HRESULT IFilterMapper_RegisterPin(IFilterMapper* This,CLSID Filter,LPCWSTR Name,WINBOOL bRendered,WINBOOL bOutput,WINBOOL bZero,WINBOOL bMany,CLSID ConnectsToFilter,LPCWSTR ConnectsToPin) {
   4468     return This->lpVtbl->RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin);
   4469 }
   4470 static FORCEINLINE HRESULT IFilterMapper_RegisterPinType(IFilterMapper* This,CLSID clsFilter,LPCWSTR strName,CLSID clsMajorType,CLSID clsSubType) {
   4471     return This->lpVtbl->RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType);
   4472 }
   4473 static FORCEINLINE HRESULT IFilterMapper_UnregisterFilter(IFilterMapper* This,CLSID Filter) {
   4474     return This->lpVtbl->UnregisterFilter(This,Filter);
   4475 }
   4476 static FORCEINLINE HRESULT IFilterMapper_UnregisterFilterInstance(IFilterMapper* This,CLSID MRId) {
   4477     return This->lpVtbl->UnregisterFilterInstance(This,MRId);
   4478 }
   4479 static FORCEINLINE HRESULT IFilterMapper_UnregisterPin(IFilterMapper* This,CLSID Filter,LPCWSTR Name) {
   4480     return This->lpVtbl->UnregisterPin(This,Filter,Name);
   4481 }
   4482 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) {
   4483     return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOututNeeded,clsOutMaj,clsOutSub);
   4484 }
   4485 #endif
   4486 #endif
   4487 
   4488 #endif
   4489 
   4490 HRESULT STDMETHODCALLTYPE IFilterMapper_RegisterFilter_Proxy(
   4491     IFilterMapper* This,
   4492     CLSID clsid,
   4493     LPCWSTR Name,
   4494     DWORD dwMerit);
   4495 void __RPC_STUB IFilterMapper_RegisterFilter_Stub(
   4496     IRpcStubBuffer* This,
   4497     IRpcChannelBuffer* pRpcChannelBuffer,
   4498     PRPC_MESSAGE pRpcMessage,
   4499     DWORD* pdwStubPhase);
   4500 HRESULT STDMETHODCALLTYPE IFilterMapper_RegisterFilterInstance_Proxy(
   4501     IFilterMapper* This,
   4502     CLSID clsid,
   4503     LPCWSTR Name,
   4504     CLSID *MRId);
   4505 void __RPC_STUB IFilterMapper_RegisterFilterInstance_Stub(
   4506     IRpcStubBuffer* This,
   4507     IRpcChannelBuffer* pRpcChannelBuffer,
   4508     PRPC_MESSAGE pRpcMessage,
   4509     DWORD* pdwStubPhase);
   4510 HRESULT STDMETHODCALLTYPE IFilterMapper_RegisterPin_Proxy(
   4511     IFilterMapper* This,
   4512     CLSID Filter,
   4513     LPCWSTR Name,
   4514     WINBOOL bRendered,
   4515     WINBOOL bOutput,
   4516     WINBOOL bZero,
   4517     WINBOOL bMany,
   4518     CLSID ConnectsToFilter,
   4519     LPCWSTR ConnectsToPin);
   4520 void __RPC_STUB IFilterMapper_RegisterPin_Stub(
   4521     IRpcStubBuffer* This,
   4522     IRpcChannelBuffer* pRpcChannelBuffer,
   4523     PRPC_MESSAGE pRpcMessage,
   4524     DWORD* pdwStubPhase);
   4525 HRESULT STDMETHODCALLTYPE IFilterMapper_RegisterPinType_Proxy(
   4526     IFilterMapper* This,
   4527     CLSID clsFilter,
   4528     LPCWSTR strName,
   4529     CLSID clsMajorType,
   4530     CLSID clsSubType);
   4531 void __RPC_STUB IFilterMapper_RegisterPinType_Stub(
   4532     IRpcStubBuffer* This,
   4533     IRpcChannelBuffer* pRpcChannelBuffer,
   4534     PRPC_MESSAGE pRpcMessage,
   4535     DWORD* pdwStubPhase);
   4536 HRESULT STDMETHODCALLTYPE IFilterMapper_UnregisterFilter_Proxy(
   4537     IFilterMapper* This,
   4538     CLSID Filter);
   4539 void __RPC_STUB IFilterMapper_UnregisterFilter_Stub(
   4540     IRpcStubBuffer* This,
   4541     IRpcChannelBuffer* pRpcChannelBuffer,
   4542     PRPC_MESSAGE pRpcMessage,
   4543     DWORD* pdwStubPhase);
   4544 HRESULT STDMETHODCALLTYPE IFilterMapper_UnregisterFilterInstance_Proxy(
   4545     IFilterMapper* This,
   4546     CLSID MRId);
   4547 void __RPC_STUB IFilterMapper_UnregisterFilterInstance_Stub(
   4548     IRpcStubBuffer* This,
   4549     IRpcChannelBuffer* pRpcChannelBuffer,
   4550     PRPC_MESSAGE pRpcMessage,
   4551     DWORD* pdwStubPhase);
   4552 HRESULT STDMETHODCALLTYPE IFilterMapper_UnregisterPin_Proxy(
   4553     IFilterMapper* This,
   4554     CLSID Filter,
   4555     LPCWSTR Name);
   4556 void __RPC_STUB IFilterMapper_UnregisterPin_Stub(
   4557     IRpcStubBuffer* This,
   4558     IRpcChannelBuffer* pRpcChannelBuffer,
   4559     PRPC_MESSAGE pRpcMessage,
   4560     DWORD* pdwStubPhase);
   4561 HRESULT STDMETHODCALLTYPE IFilterMapper_EnumMatchingFilters_Proxy(
   4562     IFilterMapper* This,
   4563     IEnumRegFilters **ppEnum,
   4564     DWORD dwMerit,
   4565     WINBOOL bInputNeeded,
   4566     CLSID clsInMaj,
   4567     CLSID clsInSub,
   4568     WINBOOL bRender,
   4569     WINBOOL bOututNeeded,
   4570     CLSID clsOutMaj,
   4571     CLSID clsOutSub);
   4572 void __RPC_STUB IFilterMapper_EnumMatchingFilters_Stub(
   4573     IRpcStubBuffer* This,
   4574     IRpcChannelBuffer* pRpcChannelBuffer,
   4575     PRPC_MESSAGE pRpcMessage,
   4576     DWORD* pdwStubPhase);
   4577 
   4578 #endif  /* __IFilterMapper_INTERFACE_DEFINED__ */
   4579 
   4580 typedef struct __WIDL_axextend_generated_name_00000001 {
   4581     const CLSID *clsMajorType;
   4582     const CLSID *clsMinorType;
   4583 } REGPINTYPES;
   4584 typedef struct __WIDL_axextend_generated_name_00000002 {
   4585     LPWSTR strName;
   4586     WINBOOL bRendered;
   4587     WINBOOL bOutput;
   4588     WINBOOL bZero;
   4589     WINBOOL bMany;
   4590     const CLSID *clsConnectsToFilter;
   4591     const WCHAR *strConnectsToPin;
   4592     UINT nMediaTypes;
   4593     const REGPINTYPES *lpMediaType;
   4594 } REGFILTERPINS;
   4595 typedef struct __WIDL_axextend_generated_name_00000003 {
   4596     CLSID clsMedium;
   4597     DWORD dw1;
   4598     DWORD dw2;
   4599 } REGPINMEDIUM;
   4600 enum {
   4601     REG_PINFLAG_B_ZERO = 0x1,
   4602     REG_PINFLAG_B_RENDERER = 0x2,
   4603     REG_PINFLAG_B_MANY = 0x4,
   4604     REG_PINFLAG_B_OUTPUT = 0x8
   4605 };
   4606 
   4607 typedef struct __WIDL_axextend_generated_name_00000004 {
   4608     DWORD dwFlags;
   4609     UINT cInstances;
   4610     UINT nMediaTypes;
   4611     const REGPINTYPES *lpMediaType;
   4612     UINT nMediums;
   4613     const REGPINMEDIUM *lpMedium;
   4614     const CLSID *clsPinCategory;
   4615 } REGFILTERPINS2;
   4616 typedef struct __WIDL_axextend_generated_name_00000005 {
   4617     DWORD dwVersion;
   4618     DWORD dwMerit;
   4619     __C89_NAMELESS union {
   4620         __C89_NAMELESS struct {
   4621             ULONG cPins;
   4622             const REGFILTERPINS *rgPins;
   4623         } __C89_NAMELESSSTRUCTNAME1;
   4624         __C89_NAMELESS struct {
   4625             ULONG cPins2;
   4626             const REGFILTERPINS2 *rgPins2;
   4627         } __C89_NAMELESSSTRUCTNAME2;
   4628     } __C89_NAMELESSUNIONNAME;
   4629 } REGFILTER2;
   4630 /*****************************************************************************
   4631  * IFilterMapper2 interface
   4632  */
   4633 #ifndef __IFilterMapper2_INTERFACE_DEFINED__
   4634 #define __IFilterMapper2_INTERFACE_DEFINED__
   4635 
   4636 DEFINE_GUID(IID_IFilterMapper2, 0xb79bb0b0, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
   4637 #if defined(__cplusplus) && !defined(CINTERFACE)
   4638 MIDL_INTERFACE("b79bb0b0-33c1-11d1-abe1-00a0c905f375")
   4639 IFilterMapper2 : public IUnknown
   4640 {
   4641     virtual HRESULT STDMETHODCALLTYPE CreateCategory(
   4642         REFCLSID clsidCategory,
   4643         DWORD dwCategoryMerit,
   4644         LPCWSTR Description) = 0;
   4645 
   4646     virtual HRESULT STDMETHODCALLTYPE UnregisterFilter(
   4647         const CLSID *pclsidCategory,
   4648         LPCOLESTR szInstance,
   4649         REFCLSID Filter) = 0;
   4650 
   4651     virtual HRESULT STDMETHODCALLTYPE RegisterFilter(
   4652         REFCLSID clsidFilter,
   4653         LPCWSTR Name,
   4654         IMoniker **ppMoniker,
   4655         const CLSID *pclsidCategory,
   4656         LPCOLESTR szInstance,
   4657         const REGFILTER2 *prf2) = 0;
   4658 
   4659     virtual HRESULT STDMETHODCALLTYPE EnumMatchingFilters(
   4660         IEnumMoniker **ppEnum,
   4661         DWORD dwFlags,
   4662         WINBOOL bExactMatch,
   4663         DWORD dwMerit,
   4664         WINBOOL bInputNeeded,
   4665         DWORD cInputTypes,
   4666         const GUID *pInputTypes,
   4667         const REGPINMEDIUM *pMedIn,
   4668         const CLSID *pPinCategoryIn,
   4669         WINBOOL bRender,
   4670         WINBOOL bOutputNeeded,
   4671         DWORD cOutputTypes,
   4672         const GUID *pOutputTypes,
   4673         const REGPINMEDIUM *pMedOut,
   4674         const CLSID *pPinCategoryOut) = 0;
   4675 
   4676 };
   4677 #ifdef __CRT_UUID_DECL
   4678 __CRT_UUID_DECL(IFilterMapper2, 0xb79bb0b0, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
   4679 #endif
   4680 #else
   4681 typedef struct IFilterMapper2Vtbl {
   4682     BEGIN_INTERFACE
   4683 
   4684     /*** IUnknown methods ***/
   4685     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4686         IFilterMapper2* This,
   4687         REFIID riid,
   4688         void **ppvObject);
   4689 
   4690     ULONG (STDMETHODCALLTYPE *AddRef)(
   4691         IFilterMapper2* This);
   4692 
   4693     ULONG (STDMETHODCALLTYPE *Release)(
   4694         IFilterMapper2* This);
   4695 
   4696     /*** IFilterMapper2 methods ***/
   4697     HRESULT (STDMETHODCALLTYPE *CreateCategory)(
   4698         IFilterMapper2* This,
   4699         REFCLSID clsidCategory,
   4700         DWORD dwCategoryMerit,
   4701         LPCWSTR Description);
   4702 
   4703     HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
   4704         IFilterMapper2* This,
   4705         const CLSID *pclsidCategory,
   4706         LPCOLESTR szInstance,
   4707         REFCLSID Filter);
   4708 
   4709     HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
   4710         IFilterMapper2* This,
   4711         REFCLSID clsidFilter,
   4712         LPCWSTR Name,
   4713         IMoniker **ppMoniker,
   4714         const CLSID *pclsidCategory,
   4715         LPCOLESTR szInstance,
   4716         const REGFILTER2 *prf2);
   4717 
   4718     HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
   4719         IFilterMapper2* This,
   4720         IEnumMoniker **ppEnum,
   4721         DWORD dwFlags,
   4722         WINBOOL bExactMatch,
   4723         DWORD dwMerit,
   4724         WINBOOL bInputNeeded,
   4725         DWORD cInputTypes,
   4726         const GUID *pInputTypes,
   4727         const REGPINMEDIUM *pMedIn,
   4728         const CLSID *pPinCategoryIn,
   4729         WINBOOL bRender,
   4730         WINBOOL bOutputNeeded,
   4731         DWORD cOutputTypes,
   4732         const GUID *pOutputTypes,
   4733         const REGPINMEDIUM *pMedOut,
   4734         const CLSID *pPinCategoryOut);
   4735 
   4736     END_INTERFACE
   4737 } IFilterMapper2Vtbl;
   4738 interface IFilterMapper2 {
   4739     CONST_VTBL IFilterMapper2Vtbl* lpVtbl;
   4740 };
   4741 
   4742 #ifdef COBJMACROS
   4743 #ifndef WIDL_C_INLINE_WRAPPERS
   4744 /*** IUnknown methods ***/
   4745 #define IFilterMapper2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4746 #define IFilterMapper2_AddRef(This) (This)->lpVtbl->AddRef(This)
   4747 #define IFilterMapper2_Release(This) (This)->lpVtbl->Release(This)
   4748 /*** IFilterMapper2 methods ***/
   4749 #define IFilterMapper2_CreateCategory(This,clsidCategory,dwCategoryMerit,Description) (This)->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description)
   4750 #define IFilterMapper2_UnregisterFilter(This,pclsidCategory,szInstance,Filter) (This)->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter)
   4751 #define IFilterMapper2_RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2) (This)->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2)
   4752 #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)
   4753 #else
   4754 /*** IUnknown methods ***/
   4755 static FORCEINLINE HRESULT IFilterMapper2_QueryInterface(IFilterMapper2* This,REFIID riid,void **ppvObject) {
   4756     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4757 }
   4758 static FORCEINLINE ULONG IFilterMapper2_AddRef(IFilterMapper2* This) {
   4759     return This->lpVtbl->AddRef(This);
   4760 }
   4761 static FORCEINLINE ULONG IFilterMapper2_Release(IFilterMapper2* This) {
   4762     return This->lpVtbl->Release(This);
   4763 }
   4764 /*** IFilterMapper2 methods ***/
   4765 static FORCEINLINE HRESULT IFilterMapper2_CreateCategory(IFilterMapper2* This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description) {
   4766     return This->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description);
   4767 }
   4768 static FORCEINLINE HRESULT IFilterMapper2_UnregisterFilter(IFilterMapper2* This,const CLSID *pclsidCategory,LPCOLESTR szInstance,REFCLSID Filter) {
   4769     return This->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter);
   4770 }
   4771 static FORCEINLINE HRESULT IFilterMapper2_RegisterFilter(IFilterMapper2* This,REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,LPCOLESTR szInstance,const REGFILTER2 *prf2) {
   4772     return This->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2);
   4773 }
   4774 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) {
   4775     return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut);
   4776 }
   4777 #endif
   4778 #endif
   4779 
   4780 #endif
   4781 
   4782 HRESULT STDMETHODCALLTYPE IFilterMapper2_CreateCategory_Proxy(
   4783     IFilterMapper2* This,
   4784     REFCLSID clsidCategory,
   4785     DWORD dwCategoryMerit,
   4786     LPCWSTR Description);
   4787 void __RPC_STUB IFilterMapper2_CreateCategory_Stub(
   4788     IRpcStubBuffer* This,
   4789     IRpcChannelBuffer* pRpcChannelBuffer,
   4790     PRPC_MESSAGE pRpcMessage,
   4791     DWORD* pdwStubPhase);
   4792 HRESULT STDMETHODCALLTYPE IFilterMapper2_UnregisterFilter_Proxy(
   4793     IFilterMapper2* This,
   4794     const CLSID *pclsidCategory,
   4795     LPCOLESTR szInstance,
   4796     REFCLSID Filter);
   4797 void __RPC_STUB IFilterMapper2_UnregisterFilter_Stub(
   4798     IRpcStubBuffer* This,
   4799     IRpcChannelBuffer* pRpcChannelBuffer,
   4800     PRPC_MESSAGE pRpcMessage,
   4801     DWORD* pdwStubPhase);
   4802 HRESULT STDMETHODCALLTYPE IFilterMapper2_RegisterFilter_Proxy(
   4803     IFilterMapper2* This,
   4804     REFCLSID clsidFilter,
   4805     LPCWSTR Name,
   4806     IMoniker **ppMoniker,
   4807     const CLSID *pclsidCategory,
   4808     LPCOLESTR szInstance,
   4809     const REGFILTER2 *prf2);
   4810 void __RPC_STUB IFilterMapper2_RegisterFilter_Stub(
   4811     IRpcStubBuffer* This,
   4812     IRpcChannelBuffer* pRpcChannelBuffer,
   4813     PRPC_MESSAGE pRpcMessage,
   4814     DWORD* pdwStubPhase);
   4815 HRESULT STDMETHODCALLTYPE IFilterMapper2_EnumMatchingFilters_Proxy(
   4816     IFilterMapper2* This,
   4817     IEnumMoniker **ppEnum,
   4818     DWORD dwFlags,
   4819     WINBOOL bExactMatch,
   4820     DWORD dwMerit,
   4821     WINBOOL bInputNeeded,
   4822     DWORD cInputTypes,
   4823     const GUID *pInputTypes,
   4824     const REGPINMEDIUM *pMedIn,
   4825     const CLSID *pPinCategoryIn,
   4826     WINBOOL bRender,
   4827     WINBOOL bOutputNeeded,
   4828     DWORD cOutputTypes,
   4829     const GUID *pOutputTypes,
   4830     const REGPINMEDIUM *pMedOut,
   4831     const CLSID *pPinCategoryOut);
   4832 void __RPC_STUB IFilterMapper2_EnumMatchingFilters_Stub(
   4833     IRpcStubBuffer* This,
   4834     IRpcChannelBuffer* pRpcChannelBuffer,
   4835     PRPC_MESSAGE pRpcMessage,
   4836     DWORD* pdwStubPhase);
   4837 
   4838 #endif  /* __IFilterMapper2_INTERFACE_DEFINED__ */
   4839 
   4840 /*****************************************************************************
   4841  * IFilterMapper3 interface
   4842  */
   4843 #ifndef __IFilterMapper3_INTERFACE_DEFINED__
   4844 #define __IFilterMapper3_INTERFACE_DEFINED__
   4845 
   4846 DEFINE_GUID(IID_IFilterMapper3, 0xb79bb0b1, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
   4847 #if defined(__cplusplus) && !defined(CINTERFACE)
   4848 MIDL_INTERFACE("b79bb0b1-33c1-11d1-abe1-00a0c905f375")
   4849 IFilterMapper3 : public IFilterMapper2
   4850 {
   4851     virtual HRESULT STDMETHODCALLTYPE GetICreateDevEnum(
   4852         ICreateDevEnum **ppEnum) = 0;
   4853 
   4854 };
   4855 #ifdef __CRT_UUID_DECL
   4856 __CRT_UUID_DECL(IFilterMapper3, 0xb79bb0b1, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
   4857 #endif
   4858 #else
   4859 typedef struct IFilterMapper3Vtbl {
   4860     BEGIN_INTERFACE
   4861 
   4862     /*** IUnknown methods ***/
   4863     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4864         IFilterMapper3* This,
   4865         REFIID riid,
   4866         void **ppvObject);
   4867 
   4868     ULONG (STDMETHODCALLTYPE *AddRef)(
   4869         IFilterMapper3* This);
   4870 
   4871     ULONG (STDMETHODCALLTYPE *Release)(
   4872         IFilterMapper3* This);
   4873 
   4874     /*** IFilterMapper2 methods ***/
   4875     HRESULT (STDMETHODCALLTYPE *CreateCategory)(
   4876         IFilterMapper3* This,
   4877         REFCLSID clsidCategory,
   4878         DWORD dwCategoryMerit,
   4879         LPCWSTR Description);
   4880 
   4881     HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
   4882         IFilterMapper3* This,
   4883         const CLSID *pclsidCategory,
   4884         LPCOLESTR szInstance,
   4885         REFCLSID Filter);
   4886 
   4887     HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
   4888         IFilterMapper3* This,
   4889         REFCLSID clsidFilter,
   4890         LPCWSTR Name,
   4891         IMoniker **ppMoniker,
   4892         const CLSID *pclsidCategory,
   4893         LPCOLESTR szInstance,
   4894         const REGFILTER2 *prf2);
   4895 
   4896     HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
   4897         IFilterMapper3* This,
   4898         IEnumMoniker **ppEnum,
   4899         DWORD dwFlags,
   4900         WINBOOL bExactMatch,
   4901         DWORD dwMerit,
   4902         WINBOOL bInputNeeded,
   4903         DWORD cInputTypes,
   4904         const GUID *pInputTypes,
   4905         const REGPINMEDIUM *pMedIn,
   4906         const CLSID *pPinCategoryIn,
   4907         WINBOOL bRender,
   4908         WINBOOL bOutputNeeded,
   4909         DWORD cOutputTypes,
   4910         const GUID *pOutputTypes,
   4911         const REGPINMEDIUM *pMedOut,
   4912         const CLSID *pPinCategoryOut);
   4913 
   4914     /*** IFilterMapper3 methods ***/
   4915     HRESULT (STDMETHODCALLTYPE *GetICreateDevEnum)(
   4916         IFilterMapper3* This,
   4917         ICreateDevEnum **ppEnum);
   4918 
   4919     END_INTERFACE
   4920 } IFilterMapper3Vtbl;
   4921 interface IFilterMapper3 {
   4922     CONST_VTBL IFilterMapper3Vtbl* lpVtbl;
   4923 };
   4924 
   4925 #ifdef COBJMACROS
   4926 #ifndef WIDL_C_INLINE_WRAPPERS
   4927 /*** IUnknown methods ***/
   4928 #define IFilterMapper3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4929 #define IFilterMapper3_AddRef(This) (This)->lpVtbl->AddRef(This)
   4930 #define IFilterMapper3_Release(This) (This)->lpVtbl->Release(This)
   4931 /*** IFilterMapper2 methods ***/
   4932 #define IFilterMapper3_CreateCategory(This,clsidCategory,dwCategoryMerit,Description) (This)->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description)
   4933 #define IFilterMapper3_UnregisterFilter(This,pclsidCategory,szInstance,Filter) (This)->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter)
   4934 #define IFilterMapper3_RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2) (This)->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2)
   4935 #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)
   4936 /*** IFilterMapper3 methods ***/
   4937 #define IFilterMapper3_GetICreateDevEnum(This,ppEnum) (This)->lpVtbl->GetICreateDevEnum(This,ppEnum)
   4938 #else
   4939 /*** IUnknown methods ***/
   4940 static FORCEINLINE HRESULT IFilterMapper3_QueryInterface(IFilterMapper3* This,REFIID riid,void **ppvObject) {
   4941     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4942 }
   4943 static FORCEINLINE ULONG IFilterMapper3_AddRef(IFilterMapper3* This) {
   4944     return This->lpVtbl->AddRef(This);
   4945 }
   4946 static FORCEINLINE ULONG IFilterMapper3_Release(IFilterMapper3* This) {
   4947     return This->lpVtbl->Release(This);
   4948 }
   4949 /*** IFilterMapper2 methods ***/
   4950 static FORCEINLINE HRESULT IFilterMapper3_CreateCategory(IFilterMapper3* This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description) {
   4951     return This->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description);
   4952 }
   4953 static FORCEINLINE HRESULT IFilterMapper3_UnregisterFilter(IFilterMapper3* This,const CLSID *pclsidCategory,LPCOLESTR szInstance,REFCLSID Filter) {
   4954     return This->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter);
   4955 }
   4956 static FORCEINLINE HRESULT IFilterMapper3_RegisterFilter(IFilterMapper3* This,REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,LPCOLESTR szInstance,const REGFILTER2 *prf2) {
   4957     return This->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2);
   4958 }
   4959 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) {
   4960     return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut);
   4961 }
   4962 /*** IFilterMapper3 methods ***/
   4963 static FORCEINLINE HRESULT IFilterMapper3_GetICreateDevEnum(IFilterMapper3* This,ICreateDevEnum **ppEnum) {
   4964     return This->lpVtbl->GetICreateDevEnum(This,ppEnum);
   4965 }
   4966 #endif
   4967 #endif
   4968 
   4969 #endif
   4970 
   4971 HRESULT STDMETHODCALLTYPE IFilterMapper3_GetICreateDevEnum_Proxy(
   4972     IFilterMapper3* This,
   4973     ICreateDevEnum **ppEnum);
   4974 void __RPC_STUB IFilterMapper3_GetICreateDevEnum_Stub(
   4975     IRpcStubBuffer* This,
   4976     IRpcChannelBuffer* pRpcChannelBuffer,
   4977     PRPC_MESSAGE pRpcMessage,
   4978     DWORD* pdwStubPhase);
   4979 
   4980 #endif  /* __IFilterMapper3_INTERFACE_DEFINED__ */
   4981 
   4982 typedef enum tagQualityMessageType {
   4983     Famine = 0,
   4984     Flood = 1
   4985 } QualityMessageType;
   4986 typedef struct tagQuality {
   4987     QualityMessageType Type;
   4988     LONG Proportion;
   4989     REFERENCE_TIME Late;
   4990     REFERENCE_TIME TimeStamp;
   4991 } Quality;
   4992 typedef IQualityControl *PQUALITYCONTROL;
   4993 /*****************************************************************************
   4994  * IQualityControl interface
   4995  */
   4996 #ifndef __IQualityControl_INTERFACE_DEFINED__
   4997 #define __IQualityControl_INTERFACE_DEFINED__
   4998 
   4999 DEFINE_GUID(IID_IQualityControl, 0x56a868a5, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   5000 #if defined(__cplusplus) && !defined(CINTERFACE)
   5001 MIDL_INTERFACE("56a868a5-0ad4-11ce-b03a-0020af0ba770")
   5002 IQualityControl : public IUnknown
   5003 {
   5004     virtual HRESULT STDMETHODCALLTYPE Notify(
   5005         IBaseFilter *pSelf,
   5006         Quality q) = 0;
   5007 
   5008     virtual HRESULT STDMETHODCALLTYPE SetSink(
   5009         IQualityControl *piqc) = 0;
   5010 
   5011 };
   5012 #ifdef __CRT_UUID_DECL
   5013 __CRT_UUID_DECL(IQualityControl, 0x56a868a5, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   5014 #endif
   5015 #else
   5016 typedef struct IQualityControlVtbl {
   5017     BEGIN_INTERFACE
   5018 
   5019     /*** IUnknown methods ***/
   5020     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5021         IQualityControl* This,
   5022         REFIID riid,
   5023         void **ppvObject);
   5024 
   5025     ULONG (STDMETHODCALLTYPE *AddRef)(
   5026         IQualityControl* This);
   5027 
   5028     ULONG (STDMETHODCALLTYPE *Release)(
   5029         IQualityControl* This);
   5030 
   5031     /*** IQualityControl methods ***/
   5032     HRESULT (STDMETHODCALLTYPE *Notify)(
   5033         IQualityControl* This,
   5034         IBaseFilter *pSelf,
   5035         Quality q);
   5036 
   5037     HRESULT (STDMETHODCALLTYPE *SetSink)(
   5038         IQualityControl* This,
   5039         IQualityControl *piqc);
   5040 
   5041     END_INTERFACE
   5042 } IQualityControlVtbl;
   5043 interface IQualityControl {
   5044     CONST_VTBL IQualityControlVtbl* lpVtbl;
   5045 };
   5046 
   5047 #ifdef COBJMACROS
   5048 #ifndef WIDL_C_INLINE_WRAPPERS
   5049 /*** IUnknown methods ***/
   5050 #define IQualityControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5051 #define IQualityControl_AddRef(This) (This)->lpVtbl->AddRef(This)
   5052 #define IQualityControl_Release(This) (This)->lpVtbl->Release(This)
   5053 /*** IQualityControl methods ***/
   5054 #define IQualityControl_Notify(This,pSelf,q) (This)->lpVtbl->Notify(This,pSelf,q)
   5055 #define IQualityControl_SetSink(This,piqc) (This)->lpVtbl->SetSink(This,piqc)
   5056 #else
   5057 /*** IUnknown methods ***/
   5058 static FORCEINLINE HRESULT IQualityControl_QueryInterface(IQualityControl* This,REFIID riid,void **ppvObject) {
   5059     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5060 }
   5061 static FORCEINLINE ULONG IQualityControl_AddRef(IQualityControl* This) {
   5062     return This->lpVtbl->AddRef(This);
   5063 }
   5064 static FORCEINLINE ULONG IQualityControl_Release(IQualityControl* This) {
   5065     return This->lpVtbl->Release(This);
   5066 }
   5067 /*** IQualityControl methods ***/
   5068 static FORCEINLINE HRESULT IQualityControl_Notify(IQualityControl* This,IBaseFilter *pSelf,Quality q) {
   5069     return This->lpVtbl->Notify(This,pSelf,q);
   5070 }
   5071 static FORCEINLINE HRESULT IQualityControl_SetSink(IQualityControl* This,IQualityControl *piqc) {
   5072     return This->lpVtbl->SetSink(This,piqc);
   5073 }
   5074 #endif
   5075 #endif
   5076 
   5077 #endif
   5078 
   5079 HRESULT STDMETHODCALLTYPE IQualityControl_Notify_Proxy(
   5080     IQualityControl* This,
   5081     IBaseFilter *pSelf,
   5082     Quality q);
   5083 void __RPC_STUB IQualityControl_Notify_Stub(
   5084     IRpcStubBuffer* This,
   5085     IRpcChannelBuffer* pRpcChannelBuffer,
   5086     PRPC_MESSAGE pRpcMessage,
   5087     DWORD* pdwStubPhase);
   5088 HRESULT STDMETHODCALLTYPE IQualityControl_SetSink_Proxy(
   5089     IQualityControl* This,
   5090     IQualityControl *piqc);
   5091 void __RPC_STUB IQualityControl_SetSink_Stub(
   5092     IRpcStubBuffer* This,
   5093     IRpcChannelBuffer* pRpcChannelBuffer,
   5094     PRPC_MESSAGE pRpcMessage,
   5095     DWORD* pdwStubPhase);
   5096 
   5097 #endif  /* __IQualityControl_INTERFACE_DEFINED__ */
   5098 
   5099 enum {
   5100     CK_NOCOLORKEY = 0x0,
   5101     CK_INDEX = 0x1,
   5102     CK_RGB = 0x2
   5103 };
   5104 
   5105 typedef struct tagCOLORKEY {
   5106     DWORD KeyType;
   5107     DWORD PaletteIndex;
   5108     COLORREF LowColorValue;
   5109     COLORREF HighColorValue;
   5110 } COLORKEY;
   5111 enum {
   5112     ADVISE_NONE = 0x0,
   5113     ADVISE_CLIPPING = 0x1,
   5114     ADVISE_PALETTE = 0x2,
   5115     ADVISE_COLORKEY = 0x4,
   5116     ADVISE_POSITION = 0x8,
   5117     ADVISE_DISPLAY_CHANGE = 0x10
   5118 };
   5119 
   5120 #define ADVISE_ALL (((ADVISE_CLIPPING | ADVISE_PALETTE) | ADVISE_COLORKEY) | ADVISE_POSITION)
   5121 
   5122 #define ADVISE_ALL2 (ADVISE_ALL | ADVISE_DISPLAY_CHANGE)
   5123 
   5124 #ifndef _WINGDI_
   5125 typedef struct _RGNDATAHEADER {
   5126     DWORD dwSize;
   5127     DWORD iType;
   5128     DWORD nCount;
   5129     DWORD nRgnSize;
   5130     RECT rcBound;
   5131 } RGNDATAHEADER;
   5132 typedef struct _RGNDATA {
   5133     RGNDATAHEADER rdh;
   5134     char Buffer[1];
   5135 } RGNDATA;
   5136 #endif /* _WINGDI_ */
   5137 /*****************************************************************************
   5138  * IOverlayNotify interface
   5139  */
   5140 #ifndef __IOverlayNotify_INTERFACE_DEFINED__
   5141 #define __IOverlayNotify_INTERFACE_DEFINED__
   5142 
   5143 DEFINE_GUID(IID_IOverlayNotify, 0x56a868a0, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   5144 #if defined(__cplusplus) && !defined(CINTERFACE)
   5145 MIDL_INTERFACE("56a868a0-0ad4-11ce-b03a-0020af0ba770")
   5146 IOverlayNotify : public IUnknown
   5147 {
   5148     virtual HRESULT STDMETHODCALLTYPE OnPaletteChange(
   5149         DWORD dwColors,
   5150         const PALETTEENTRY *pPalette) = 0;
   5151 
   5152     virtual HRESULT STDMETHODCALLTYPE OnClipChange(
   5153         const RECT *pSourceRect,
   5154         const RECT *pDestinationRect,
   5155         const RGNDATA *pRgnData) = 0;
   5156 
   5157     virtual HRESULT STDMETHODCALLTYPE OnColorKeyChange(
   5158         const COLORKEY *pColorKey) = 0;
   5159 
   5160     virtual HRESULT STDMETHODCALLTYPE OnPositionChange(
   5161         const RECT *pSourceRect,
   5162         const RECT *pDestinationRect) = 0;
   5163 
   5164 };
   5165 #ifdef __CRT_UUID_DECL
   5166 __CRT_UUID_DECL(IOverlayNotify, 0x56a868a0, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   5167 #endif
   5168 #else
   5169 typedef struct IOverlayNotifyVtbl {
   5170     BEGIN_INTERFACE
   5171 
   5172     /*** IUnknown methods ***/
   5173     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5174         IOverlayNotify* This,
   5175         REFIID riid,
   5176         void **ppvObject);
   5177 
   5178     ULONG (STDMETHODCALLTYPE *AddRef)(
   5179         IOverlayNotify* This);
   5180 
   5181     ULONG (STDMETHODCALLTYPE *Release)(
   5182         IOverlayNotify* This);
   5183 
   5184     /*** IOverlayNotify methods ***/
   5185     HRESULT (STDMETHODCALLTYPE *OnPaletteChange)(
   5186         IOverlayNotify* This,
   5187         DWORD dwColors,
   5188         const PALETTEENTRY *pPalette);
   5189 
   5190     HRESULT (STDMETHODCALLTYPE *OnClipChange)(
   5191         IOverlayNotify* This,
   5192         const RECT *pSourceRect,
   5193         const RECT *pDestinationRect,
   5194         const RGNDATA *pRgnData);
   5195 
   5196     HRESULT (STDMETHODCALLTYPE *OnColorKeyChange)(
   5197         IOverlayNotify* This,
   5198         const COLORKEY *pColorKey);
   5199 
   5200     HRESULT (STDMETHODCALLTYPE *OnPositionChange)(
   5201         IOverlayNotify* This,
   5202         const RECT *pSourceRect,
   5203         const RECT *pDestinationRect);
   5204 
   5205     END_INTERFACE
   5206 } IOverlayNotifyVtbl;
   5207 interface IOverlayNotify {
   5208     CONST_VTBL IOverlayNotifyVtbl* lpVtbl;
   5209 };
   5210 
   5211 #ifdef COBJMACROS
   5212 #ifndef WIDL_C_INLINE_WRAPPERS
   5213 /*** IUnknown methods ***/
   5214 #define IOverlayNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5215 #define IOverlayNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
   5216 #define IOverlayNotify_Release(This) (This)->lpVtbl->Release(This)
   5217 /*** IOverlayNotify methods ***/
   5218 #define IOverlayNotify_OnPaletteChange(This,dwColors,pPalette) (This)->lpVtbl->OnPaletteChange(This,dwColors,pPalette)
   5219 #define IOverlayNotify_OnClipChange(This,pSourceRect,pDestinationRect,pRgnData) (This)->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData)
   5220 #define IOverlayNotify_OnColorKeyChange(This,pColorKey) (This)->lpVtbl->OnColorKeyChange(This,pColorKey)
   5221 #define IOverlayNotify_OnPositionChange(This,pSourceRect,pDestinationRect) (This)->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect)
   5222 #else
   5223 /*** IUnknown methods ***/
   5224 static FORCEINLINE HRESULT IOverlayNotify_QueryInterface(IOverlayNotify* This,REFIID riid,void **ppvObject) {
   5225     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5226 }
   5227 static FORCEINLINE ULONG IOverlayNotify_AddRef(IOverlayNotify* This) {
   5228     return This->lpVtbl->AddRef(This);
   5229 }
   5230 static FORCEINLINE ULONG IOverlayNotify_Release(IOverlayNotify* This) {
   5231     return This->lpVtbl->Release(This);
   5232 }
   5233 /*** IOverlayNotify methods ***/
   5234 static FORCEINLINE HRESULT IOverlayNotify_OnPaletteChange(IOverlayNotify* This,DWORD dwColors,const PALETTEENTRY *pPalette) {
   5235     return This->lpVtbl->OnPaletteChange(This,dwColors,pPalette);
   5236 }
   5237 static FORCEINLINE HRESULT IOverlayNotify_OnClipChange(IOverlayNotify* This,const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData) {
   5238     return This->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData);
   5239 }
   5240 static FORCEINLINE HRESULT IOverlayNotify_OnColorKeyChange(IOverlayNotify* This,const COLORKEY *pColorKey) {
   5241     return This->lpVtbl->OnColorKeyChange(This,pColorKey);
   5242 }
   5243 static FORCEINLINE HRESULT IOverlayNotify_OnPositionChange(IOverlayNotify* This,const RECT *pSourceRect,const RECT *pDestinationRect) {
   5244     return This->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect);
   5245 }
   5246 #endif
   5247 #endif
   5248 
   5249 #endif
   5250 
   5251 HRESULT STDMETHODCALLTYPE IOverlayNotify_OnPaletteChange_Proxy(
   5252     IOverlayNotify* This,
   5253     DWORD dwColors,
   5254     const PALETTEENTRY *pPalette);
   5255 void __RPC_STUB IOverlayNotify_OnPaletteChange_Stub(
   5256     IRpcStubBuffer* This,
   5257     IRpcChannelBuffer* pRpcChannelBuffer,
   5258     PRPC_MESSAGE pRpcMessage,
   5259     DWORD* pdwStubPhase);
   5260 HRESULT STDMETHODCALLTYPE IOverlayNotify_OnClipChange_Proxy(
   5261     IOverlayNotify* This,
   5262     const RECT *pSourceRect,
   5263     const RECT *pDestinationRect,
   5264     const RGNDATA *pRgnData);
   5265 void __RPC_STUB IOverlayNotify_OnClipChange_Stub(
   5266     IRpcStubBuffer* This,
   5267     IRpcChannelBuffer* pRpcChannelBuffer,
   5268     PRPC_MESSAGE pRpcMessage,
   5269     DWORD* pdwStubPhase);
   5270 HRESULT STDMETHODCALLTYPE IOverlayNotify_OnColorKeyChange_Proxy(
   5271     IOverlayNotify* This,
   5272     const COLORKEY *pColorKey);
   5273 void __RPC_STUB IOverlayNotify_OnColorKeyChange_Stub(
   5274     IRpcStubBuffer* This,
   5275     IRpcChannelBuffer* pRpcChannelBuffer,
   5276     PRPC_MESSAGE pRpcMessage,
   5277     DWORD* pdwStubPhase);
   5278 HRESULT STDMETHODCALLTYPE IOverlayNotify_OnPositionChange_Proxy(
   5279     IOverlayNotify* This,
   5280     const RECT *pSourceRect,
   5281     const RECT *pDestinationRect);
   5282 void __RPC_STUB IOverlayNotify_OnPositionChange_Stub(
   5283     IRpcStubBuffer* This,
   5284     IRpcChannelBuffer* pRpcChannelBuffer,
   5285     PRPC_MESSAGE pRpcMessage,
   5286     DWORD* pdwStubPhase);
   5287 
   5288 #endif  /* __IOverlayNotify_INTERFACE_DEFINED__ */
   5289 
   5290 typedef IOverlayNotify *POVERLAYNOTIFY;
   5291 #if 0
   5292 typedef HANDLE HMONITOR;
   5293 #endif /* 0 */
   5294 /*****************************************************************************
   5295  * IOverlayNotify2 interface
   5296  */
   5297 #ifndef __IOverlayNotify2_INTERFACE_DEFINED__
   5298 #define __IOverlayNotify2_INTERFACE_DEFINED__
   5299 
   5300 DEFINE_GUID(IID_IOverlayNotify2, 0x680efa10, 0xd535, 0x11d1, 0x87,0xc8, 0x00,0xa0,0xc9,0x22,0x31,0x96);
   5301 #if defined(__cplusplus) && !defined(CINTERFACE)
   5302 MIDL_INTERFACE("680efa10-d535-11d1-87c8-00a0c9223196")
   5303 IOverlayNotify2 : public IOverlayNotify
   5304 {
   5305     virtual HRESULT STDMETHODCALLTYPE OnDisplayChange(
   5306         HMONITOR hMonitor) = 0;
   5307 
   5308 };
   5309 #ifdef __CRT_UUID_DECL
   5310 __CRT_UUID_DECL(IOverlayNotify2, 0x680efa10, 0xd535, 0x11d1, 0x87,0xc8, 0x00,0xa0,0xc9,0x22,0x31,0x96)
   5311 #endif
   5312 #else
   5313 typedef struct IOverlayNotify2Vtbl {
   5314     BEGIN_INTERFACE
   5315 
   5316     /*** IUnknown methods ***/
   5317     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5318         IOverlayNotify2* This,
   5319         REFIID riid,
   5320         void **ppvObject);
   5321 
   5322     ULONG (STDMETHODCALLTYPE *AddRef)(
   5323         IOverlayNotify2* This);
   5324 
   5325     ULONG (STDMETHODCALLTYPE *Release)(
   5326         IOverlayNotify2* This);
   5327 
   5328     /*** IOverlayNotify methods ***/
   5329     HRESULT (STDMETHODCALLTYPE *OnPaletteChange)(
   5330         IOverlayNotify2* This,
   5331         DWORD dwColors,
   5332         const PALETTEENTRY *pPalette);
   5333 
   5334     HRESULT (STDMETHODCALLTYPE *OnClipChange)(
   5335         IOverlayNotify2* This,
   5336         const RECT *pSourceRect,
   5337         const RECT *pDestinationRect,
   5338         const RGNDATA *pRgnData);
   5339 
   5340     HRESULT (STDMETHODCALLTYPE *OnColorKeyChange)(
   5341         IOverlayNotify2* This,
   5342         const COLORKEY *pColorKey);
   5343 
   5344     HRESULT (STDMETHODCALLTYPE *OnPositionChange)(
   5345         IOverlayNotify2* This,
   5346         const RECT *pSourceRect,
   5347         const RECT *pDestinationRect);
   5348 
   5349     /*** IOverlayNotify2 methods ***/
   5350     HRESULT (STDMETHODCALLTYPE *OnDisplayChange)(
   5351         IOverlayNotify2* This,
   5352         HMONITOR hMonitor);
   5353 
   5354     END_INTERFACE
   5355 } IOverlayNotify2Vtbl;
   5356 interface IOverlayNotify2 {
   5357     CONST_VTBL IOverlayNotify2Vtbl* lpVtbl;
   5358 };
   5359 
   5360 #ifdef COBJMACROS
   5361 #ifndef WIDL_C_INLINE_WRAPPERS
   5362 /*** IUnknown methods ***/
   5363 #define IOverlayNotify2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5364 #define IOverlayNotify2_AddRef(This) (This)->lpVtbl->AddRef(This)
   5365 #define IOverlayNotify2_Release(This) (This)->lpVtbl->Release(This)
   5366 /*** IOverlayNotify methods ***/
   5367 #define IOverlayNotify2_OnPaletteChange(This,dwColors,pPalette) (This)->lpVtbl->OnPaletteChange(This,dwColors,pPalette)
   5368 #define IOverlayNotify2_OnClipChange(This,pSourceRect,pDestinationRect,pRgnData) (This)->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData)
   5369 #define IOverlayNotify2_OnColorKeyChange(This,pColorKey) (This)->lpVtbl->OnColorKeyChange(This,pColorKey)
   5370 #define IOverlayNotify2_OnPositionChange(This,pSourceRect,pDestinationRect) (This)->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect)
   5371 /*** IOverlayNotify2 methods ***/
   5372 #define IOverlayNotify2_OnDisplayChange(This,hMonitor) (This)->lpVtbl->OnDisplayChange(This,hMonitor)
   5373 #else
   5374 /*** IUnknown methods ***/
   5375 static FORCEINLINE HRESULT IOverlayNotify2_QueryInterface(IOverlayNotify2* This,REFIID riid,void **ppvObject) {
   5376     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5377 }
   5378 static FORCEINLINE ULONG IOverlayNotify2_AddRef(IOverlayNotify2* This) {
   5379     return This->lpVtbl->AddRef(This);
   5380 }
   5381 static FORCEINLINE ULONG IOverlayNotify2_Release(IOverlayNotify2* This) {
   5382     return This->lpVtbl->Release(This);
   5383 }
   5384 /*** IOverlayNotify methods ***/
   5385 static FORCEINLINE HRESULT IOverlayNotify2_OnPaletteChange(IOverlayNotify2* This,DWORD dwColors,const PALETTEENTRY *pPalette) {
   5386     return This->lpVtbl->OnPaletteChange(This,dwColors,pPalette);
   5387 }
   5388 static FORCEINLINE HRESULT IOverlayNotify2_OnClipChange(IOverlayNotify2* This,const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData) {
   5389     return This->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData);
   5390 }
   5391 static FORCEINLINE HRESULT IOverlayNotify2_OnColorKeyChange(IOverlayNotify2* This,const COLORKEY *pColorKey) {
   5392     return This->lpVtbl->OnColorKeyChange(This,pColorKey);
   5393 }
   5394 static FORCEINLINE HRESULT IOverlayNotify2_OnPositionChange(IOverlayNotify2* This,const RECT *pSourceRect,const RECT *pDestinationRect) {
   5395     return This->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect);
   5396 }
   5397 /*** IOverlayNotify2 methods ***/
   5398 static FORCEINLINE HRESULT IOverlayNotify2_OnDisplayChange(IOverlayNotify2* This,HMONITOR hMonitor) {
   5399     return This->lpVtbl->OnDisplayChange(This,hMonitor);
   5400 }
   5401 #endif
   5402 #endif
   5403 
   5404 #endif
   5405 
   5406 HRESULT STDMETHODCALLTYPE IOverlayNotify2_OnDisplayChange_Proxy(
   5407     IOverlayNotify2* This,
   5408     HMONITOR hMonitor);
   5409 void __RPC_STUB IOverlayNotify2_OnDisplayChange_Stub(
   5410     IRpcStubBuffer* This,
   5411     IRpcChannelBuffer* pRpcChannelBuffer,
   5412     PRPC_MESSAGE pRpcMessage,
   5413     DWORD* pdwStubPhase);
   5414 
   5415 #endif  /* __IOverlayNotify2_INTERFACE_DEFINED__ */
   5416 
   5417 typedef IOverlayNotify2 *POVERLAYNOTIFY2;
   5418 /*****************************************************************************
   5419  * IOverlay interface
   5420  */
   5421 #ifndef __IOverlay_INTERFACE_DEFINED__
   5422 #define __IOverlay_INTERFACE_DEFINED__
   5423 
   5424 DEFINE_GUID(IID_IOverlay, 0x56a868a1, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   5425 #if defined(__cplusplus) && !defined(CINTERFACE)
   5426 MIDL_INTERFACE("56a868a1-0ad4-11ce-b03a-0020af0ba770")
   5427 IOverlay : public IUnknown
   5428 {
   5429     virtual HRESULT STDMETHODCALLTYPE GetPalette(
   5430         DWORD *pdwColors,
   5431         PALETTEENTRY **ppPalette) = 0;
   5432 
   5433     virtual HRESULT STDMETHODCALLTYPE SetPalette(
   5434         DWORD dwColors,
   5435         PALETTEENTRY *pPalette) = 0;
   5436 
   5437     virtual HRESULT STDMETHODCALLTYPE GetDefaultColorKey(
   5438         COLORKEY *pColorKey) = 0;
   5439 
   5440     virtual HRESULT STDMETHODCALLTYPE GetColorKey(
   5441         COLORKEY *pColorKey) = 0;
   5442 
   5443     virtual HRESULT STDMETHODCALLTYPE SetColorKey(
   5444         COLORKEY *pColorKey) = 0;
   5445 
   5446     virtual HRESULT STDMETHODCALLTYPE GetWindowHandle(
   5447         HWND *pHwnd) = 0;
   5448 
   5449     virtual HRESULT STDMETHODCALLTYPE GetClipList(
   5450         RECT *pSourceRect,
   5451         RECT *pDestinationRect,
   5452         RGNDATA **ppRgnData) = 0;
   5453 
   5454     virtual HRESULT STDMETHODCALLTYPE GetVideoPosition(
   5455         RECT *pSourceRect,
   5456         RECT *pDestinationRect) = 0;
   5457 
   5458     virtual HRESULT STDMETHODCALLTYPE Advise(
   5459         IOverlayNotify *pOverlayNotify,
   5460         DWORD dwInterests) = 0;
   5461 
   5462     virtual HRESULT STDMETHODCALLTYPE Unadvise(
   5463         ) = 0;
   5464 
   5465 };
   5466 #ifdef __CRT_UUID_DECL
   5467 __CRT_UUID_DECL(IOverlay, 0x56a868a1, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   5468 #endif
   5469 #else
   5470 typedef struct IOverlayVtbl {
   5471     BEGIN_INTERFACE
   5472 
   5473     /*** IUnknown methods ***/
   5474     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5475         IOverlay* This,
   5476         REFIID riid,
   5477         void **ppvObject);
   5478 
   5479     ULONG (STDMETHODCALLTYPE *AddRef)(
   5480         IOverlay* This);
   5481 
   5482     ULONG (STDMETHODCALLTYPE *Release)(
   5483         IOverlay* This);
   5484 
   5485     /*** IOverlay methods ***/
   5486     HRESULT (STDMETHODCALLTYPE *GetPalette)(
   5487         IOverlay* This,
   5488         DWORD *pdwColors,
   5489         PALETTEENTRY **ppPalette);
   5490 
   5491     HRESULT (STDMETHODCALLTYPE *SetPalette)(
   5492         IOverlay* This,
   5493         DWORD dwColors,
   5494         PALETTEENTRY *pPalette);
   5495 
   5496     HRESULT (STDMETHODCALLTYPE *GetDefaultColorKey)(
   5497         IOverlay* This,
   5498         COLORKEY *pColorKey);
   5499 
   5500     HRESULT (STDMETHODCALLTYPE *GetColorKey)(
   5501         IOverlay* This,
   5502         COLORKEY *pColorKey);
   5503 
   5504     HRESULT (STDMETHODCALLTYPE *SetColorKey)(
   5505         IOverlay* This,
   5506         COLORKEY *pColorKey);
   5507 
   5508     HRESULT (STDMETHODCALLTYPE *GetWindowHandle)(
   5509         IOverlay* This,
   5510         HWND *pHwnd);
   5511 
   5512     HRESULT (STDMETHODCALLTYPE *GetClipList)(
   5513         IOverlay* This,
   5514         RECT *pSourceRect,
   5515         RECT *pDestinationRect,
   5516         RGNDATA **ppRgnData);
   5517 
   5518     HRESULT (STDMETHODCALLTYPE *GetVideoPosition)(
   5519         IOverlay* This,
   5520         RECT *pSourceRect,
   5521         RECT *pDestinationRect);
   5522 
   5523     HRESULT (STDMETHODCALLTYPE *Advise)(
   5524         IOverlay* This,
   5525         IOverlayNotify *pOverlayNotify,
   5526         DWORD dwInterests);
   5527 
   5528     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   5529         IOverlay* This);
   5530 
   5531     END_INTERFACE
   5532 } IOverlayVtbl;
   5533 interface IOverlay {
   5534     CONST_VTBL IOverlayVtbl* lpVtbl;
   5535 };
   5536 
   5537 #ifdef COBJMACROS
   5538 #ifndef WIDL_C_INLINE_WRAPPERS
   5539 /*** IUnknown methods ***/
   5540 #define IOverlay_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5541 #define IOverlay_AddRef(This) (This)->lpVtbl->AddRef(This)
   5542 #define IOverlay_Release(This) (This)->lpVtbl->Release(This)
   5543 /*** IOverlay methods ***/
   5544 #define IOverlay_GetPalette(This,pdwColors,ppPalette) (This)->lpVtbl->GetPalette(This,pdwColors,ppPalette)
   5545 #define IOverlay_SetPalette(This,dwColors,pPalette) (This)->lpVtbl->SetPalette(This,dwColors,pPalette)
   5546 #define IOverlay_GetDefaultColorKey(This,pColorKey) (This)->lpVtbl->GetDefaultColorKey(This,pColorKey)
   5547 #define IOverlay_GetColorKey(This,pColorKey) (This)->lpVtbl->GetColorKey(This,pColorKey)
   5548 #define IOverlay_SetColorKey(This,pColorKey) (This)->lpVtbl->SetColorKey(This,pColorKey)
   5549 #define IOverlay_GetWindowHandle(This,pHwnd) (This)->lpVtbl->GetWindowHandle(This,pHwnd)
   5550 #define IOverlay_GetClipList(This,pSourceRect,pDestinationRect,ppRgnData) (This)->lpVtbl->GetClipList(This,pSourceRect,pDestinationRect,ppRgnData)
   5551 #define IOverlay_GetVideoPosition(This,pSourceRect,pDestinationRect) (This)->lpVtbl->GetVideoPosition(This,pSourceRect,pDestinationRect)
   5552 #define IOverlay_Advise(This,pOverlayNotify,dwInterests) (This)->lpVtbl->Advise(This,pOverlayNotify,dwInterests)
   5553 #define IOverlay_Unadvise(This) (This)->lpVtbl->Unadvise(This)
   5554 #else
   5555 /*** IUnknown methods ***/
   5556 static FORCEINLINE HRESULT IOverlay_QueryInterface(IOverlay* This,REFIID riid,void **ppvObject) {
   5557     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5558 }
   5559 static FORCEINLINE ULONG IOverlay_AddRef(IOverlay* This) {
   5560     return This->lpVtbl->AddRef(This);
   5561 }
   5562 static FORCEINLINE ULONG IOverlay_Release(IOverlay* This) {
   5563     return This->lpVtbl->Release(This);
   5564 }
   5565 /*** IOverlay methods ***/
   5566 static FORCEINLINE HRESULT IOverlay_GetPalette(IOverlay* This,DWORD *pdwColors,PALETTEENTRY **ppPalette) {
   5567     return This->lpVtbl->GetPalette(This,pdwColors,ppPalette);
   5568 }
   5569 static FORCEINLINE HRESULT IOverlay_SetPalette(IOverlay* This,DWORD dwColors,PALETTEENTRY *pPalette) {
   5570     return This->lpVtbl->SetPalette(This,dwColors,pPalette);
   5571 }
   5572 static FORCEINLINE HRESULT IOverlay_GetDefaultColorKey(IOverlay* This,COLORKEY *pColorKey) {
   5573     return This->lpVtbl->GetDefaultColorKey(This,pColorKey);
   5574 }
   5575 static FORCEINLINE HRESULT IOverlay_GetColorKey(IOverlay* This,COLORKEY *pColorKey) {
   5576     return This->lpVtbl->GetColorKey(This,pColorKey);
   5577 }
   5578 static FORCEINLINE HRESULT IOverlay_SetColorKey(IOverlay* This,COLORKEY *pColorKey) {
   5579     return This->lpVtbl->SetColorKey(This,pColorKey);
   5580 }
   5581 static FORCEINLINE HRESULT IOverlay_GetWindowHandle(IOverlay* This,HWND *pHwnd) {
   5582     return This->lpVtbl->GetWindowHandle(This,pHwnd);
   5583 }
   5584 static FORCEINLINE HRESULT IOverlay_GetClipList(IOverlay* This,RECT *pSourceRect,RECT *pDestinationRect,RGNDATA **ppRgnData) {
   5585     return This->lpVtbl->GetClipList(This,pSourceRect,pDestinationRect,ppRgnData);
   5586 }
   5587 static FORCEINLINE HRESULT IOverlay_GetVideoPosition(IOverlay* This,RECT *pSourceRect,RECT *pDestinationRect) {
   5588     return This->lpVtbl->GetVideoPosition(This,pSourceRect,pDestinationRect);
   5589 }
   5590 static FORCEINLINE HRESULT IOverlay_Advise(IOverlay* This,IOverlayNotify *pOverlayNotify,DWORD dwInterests) {
   5591     return This->lpVtbl->Advise(This,pOverlayNotify,dwInterests);
   5592 }
   5593 static FORCEINLINE HRESULT IOverlay_Unadvise(IOverlay* This) {
   5594     return This->lpVtbl->Unadvise(This);
   5595 }
   5596 #endif
   5597 #endif
   5598 
   5599 #endif
   5600 
   5601 HRESULT STDMETHODCALLTYPE IOverlay_GetPalette_Proxy(
   5602     IOverlay* This,
   5603     DWORD *pdwColors,
   5604     PALETTEENTRY **ppPalette);
   5605 void __RPC_STUB IOverlay_GetPalette_Stub(
   5606     IRpcStubBuffer* This,
   5607     IRpcChannelBuffer* pRpcChannelBuffer,
   5608     PRPC_MESSAGE pRpcMessage,
   5609     DWORD* pdwStubPhase);
   5610 HRESULT STDMETHODCALLTYPE IOverlay_SetPalette_Proxy(
   5611     IOverlay* This,
   5612     DWORD dwColors,
   5613     PALETTEENTRY *pPalette);
   5614 void __RPC_STUB IOverlay_SetPalette_Stub(
   5615     IRpcStubBuffer* This,
   5616     IRpcChannelBuffer* pRpcChannelBuffer,
   5617     PRPC_MESSAGE pRpcMessage,
   5618     DWORD* pdwStubPhase);
   5619 HRESULT STDMETHODCALLTYPE IOverlay_GetDefaultColorKey_Proxy(
   5620     IOverlay* This,
   5621     COLORKEY *pColorKey);
   5622 void __RPC_STUB IOverlay_GetDefaultColorKey_Stub(
   5623     IRpcStubBuffer* This,
   5624     IRpcChannelBuffer* pRpcChannelBuffer,
   5625     PRPC_MESSAGE pRpcMessage,
   5626     DWORD* pdwStubPhase);
   5627 HRESULT STDMETHODCALLTYPE IOverlay_GetColorKey_Proxy(
   5628     IOverlay* This,
   5629     COLORKEY *pColorKey);
   5630 void __RPC_STUB IOverlay_GetColorKey_Stub(
   5631     IRpcStubBuffer* This,
   5632     IRpcChannelBuffer* pRpcChannelBuffer,
   5633     PRPC_MESSAGE pRpcMessage,
   5634     DWORD* pdwStubPhase);
   5635 HRESULT STDMETHODCALLTYPE IOverlay_SetColorKey_Proxy(
   5636     IOverlay* This,
   5637     COLORKEY *pColorKey);
   5638 void __RPC_STUB IOverlay_SetColorKey_Stub(
   5639     IRpcStubBuffer* This,
   5640     IRpcChannelBuffer* pRpcChannelBuffer,
   5641     PRPC_MESSAGE pRpcMessage,
   5642     DWORD* pdwStubPhase);
   5643 HRESULT STDMETHODCALLTYPE IOverlay_GetWindowHandle_Proxy(
   5644     IOverlay* This,
   5645     HWND *pHwnd);
   5646 void __RPC_STUB IOverlay_GetWindowHandle_Stub(
   5647     IRpcStubBuffer* This,
   5648     IRpcChannelBuffer* pRpcChannelBuffer,
   5649     PRPC_MESSAGE pRpcMessage,
   5650     DWORD* pdwStubPhase);
   5651 HRESULT STDMETHODCALLTYPE IOverlay_GetClipList_Proxy(
   5652     IOverlay* This,
   5653     RECT *pSourceRect,
   5654     RECT *pDestinationRect,
   5655     RGNDATA **ppRgnData);
   5656 void __RPC_STUB IOverlay_GetClipList_Stub(
   5657     IRpcStubBuffer* This,
   5658     IRpcChannelBuffer* pRpcChannelBuffer,
   5659     PRPC_MESSAGE pRpcMessage,
   5660     DWORD* pdwStubPhase);
   5661 HRESULT STDMETHODCALLTYPE IOverlay_GetVideoPosition_Proxy(
   5662     IOverlay* This,
   5663     RECT *pSourceRect,
   5664     RECT *pDestinationRect);
   5665 void __RPC_STUB IOverlay_GetVideoPosition_Stub(
   5666     IRpcStubBuffer* This,
   5667     IRpcChannelBuffer* pRpcChannelBuffer,
   5668     PRPC_MESSAGE pRpcMessage,
   5669     DWORD* pdwStubPhase);
   5670 HRESULT STDMETHODCALLTYPE IOverlay_Advise_Proxy(
   5671     IOverlay* This,
   5672     IOverlayNotify *pOverlayNotify,
   5673     DWORD dwInterests);
   5674 void __RPC_STUB IOverlay_Advise_Stub(
   5675     IRpcStubBuffer* This,
   5676     IRpcChannelBuffer* pRpcChannelBuffer,
   5677     PRPC_MESSAGE pRpcMessage,
   5678     DWORD* pdwStubPhase);
   5679 HRESULT STDMETHODCALLTYPE IOverlay_Unadvise_Proxy(
   5680     IOverlay* This);
   5681 void __RPC_STUB IOverlay_Unadvise_Stub(
   5682     IRpcStubBuffer* This,
   5683     IRpcChannelBuffer* pRpcChannelBuffer,
   5684     PRPC_MESSAGE pRpcMessage,
   5685     DWORD* pdwStubPhase);
   5686 
   5687 #endif  /* __IOverlay_INTERFACE_DEFINED__ */
   5688 
   5689 typedef IOverlay *POVERLAY;
   5690 /*****************************************************************************
   5691  * IMediaEventSink interface
   5692  */
   5693 #ifndef __IMediaEventSink_INTERFACE_DEFINED__
   5694 #define __IMediaEventSink_INTERFACE_DEFINED__
   5695 
   5696 DEFINE_GUID(IID_IMediaEventSink, 0x56a868a2, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   5697 #if defined(__cplusplus) && !defined(CINTERFACE)
   5698 MIDL_INTERFACE("56a868a2-0ad4-11ce-b03a-0020af0ba770")
   5699 IMediaEventSink : public IUnknown
   5700 {
   5701     virtual HRESULT STDMETHODCALLTYPE Notify(
   5702         LONG EventCode,
   5703         LONG_PTR EventParam1,
   5704         LONG_PTR EventParam2) = 0;
   5705 
   5706 };
   5707 #ifdef __CRT_UUID_DECL
   5708 __CRT_UUID_DECL(IMediaEventSink, 0x56a868a2, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   5709 #endif
   5710 #else
   5711 typedef struct IMediaEventSinkVtbl {
   5712     BEGIN_INTERFACE
   5713 
   5714     /*** IUnknown methods ***/
   5715     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5716         IMediaEventSink* This,
   5717         REFIID riid,
   5718         void **ppvObject);
   5719 
   5720     ULONG (STDMETHODCALLTYPE *AddRef)(
   5721         IMediaEventSink* This);
   5722 
   5723     ULONG (STDMETHODCALLTYPE *Release)(
   5724         IMediaEventSink* This);
   5725 
   5726     /*** IMediaEventSink methods ***/
   5727     HRESULT (STDMETHODCALLTYPE *Notify)(
   5728         IMediaEventSink* This,
   5729         LONG EventCode,
   5730         LONG_PTR EventParam1,
   5731         LONG_PTR EventParam2);
   5732 
   5733     END_INTERFACE
   5734 } IMediaEventSinkVtbl;
   5735 interface IMediaEventSink {
   5736     CONST_VTBL IMediaEventSinkVtbl* lpVtbl;
   5737 };
   5738 
   5739 #ifdef COBJMACROS
   5740 #ifndef WIDL_C_INLINE_WRAPPERS
   5741 /*** IUnknown methods ***/
   5742 #define IMediaEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5743 #define IMediaEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
   5744 #define IMediaEventSink_Release(This) (This)->lpVtbl->Release(This)
   5745 /*** IMediaEventSink methods ***/
   5746 #define IMediaEventSink_Notify(This,EventCode,EventParam1,EventParam2) (This)->lpVtbl->Notify(This,EventCode,EventParam1,EventParam2)
   5747 #else
   5748 /*** IUnknown methods ***/
   5749 static FORCEINLINE HRESULT IMediaEventSink_QueryInterface(IMediaEventSink* This,REFIID riid,void **ppvObject) {
   5750     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5751 }
   5752 static FORCEINLINE ULONG IMediaEventSink_AddRef(IMediaEventSink* This) {
   5753     return This->lpVtbl->AddRef(This);
   5754 }
   5755 static FORCEINLINE ULONG IMediaEventSink_Release(IMediaEventSink* This) {
   5756     return This->lpVtbl->Release(This);
   5757 }
   5758 /*** IMediaEventSink methods ***/
   5759 static FORCEINLINE HRESULT IMediaEventSink_Notify(IMediaEventSink* This,LONG EventCode,LONG_PTR EventParam1,LONG_PTR EventParam2) {
   5760     return This->lpVtbl->Notify(This,EventCode,EventParam1,EventParam2);
   5761 }
   5762 #endif
   5763 #endif
   5764 
   5765 #endif
   5766 
   5767 HRESULT STDMETHODCALLTYPE IMediaEventSink_Notify_Proxy(
   5768     IMediaEventSink* This,
   5769     LONG EventCode,
   5770     LONG_PTR EventParam1,
   5771     LONG_PTR EventParam2);
   5772 void __RPC_STUB IMediaEventSink_Notify_Stub(
   5773     IRpcStubBuffer* This,
   5774     IRpcChannelBuffer* pRpcChannelBuffer,
   5775     PRPC_MESSAGE pRpcMessage,
   5776     DWORD* pdwStubPhase);
   5777 
   5778 #endif  /* __IMediaEventSink_INTERFACE_DEFINED__ */
   5779 
   5780 typedef IMediaEventSink *PMEDIAEVENTSINK;
   5781 /*****************************************************************************
   5782  * IFileSourceFilter interface
   5783  */
   5784 #ifndef __IFileSourceFilter_INTERFACE_DEFINED__
   5785 #define __IFileSourceFilter_INTERFACE_DEFINED__
   5786 
   5787 DEFINE_GUID(IID_IFileSourceFilter, 0x56a868a6, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   5788 #if defined(__cplusplus) && !defined(CINTERFACE)
   5789 MIDL_INTERFACE("56a868a6-0ad4-11ce-b03a-0020af0ba770")
   5790 IFileSourceFilter : public IUnknown
   5791 {
   5792     virtual HRESULT STDMETHODCALLTYPE Load(
   5793         LPCOLESTR pszFileName,
   5794         const AM_MEDIA_TYPE *pmt) = 0;
   5795 
   5796     virtual HRESULT STDMETHODCALLTYPE GetCurFile(
   5797         LPOLESTR *ppszFileName,
   5798         AM_MEDIA_TYPE *pmt) = 0;
   5799 
   5800 };
   5801 #ifdef __CRT_UUID_DECL
   5802 __CRT_UUID_DECL(IFileSourceFilter, 0x56a868a6, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   5803 #endif
   5804 #else
   5805 typedef struct IFileSourceFilterVtbl {
   5806     BEGIN_INTERFACE
   5807 
   5808     /*** IUnknown methods ***/
   5809     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5810         IFileSourceFilter* This,
   5811         REFIID riid,
   5812         void **ppvObject);
   5813 
   5814     ULONG (STDMETHODCALLTYPE *AddRef)(
   5815         IFileSourceFilter* This);
   5816 
   5817     ULONG (STDMETHODCALLTYPE *Release)(
   5818         IFileSourceFilter* This);
   5819 
   5820     /*** IFileSourceFilter methods ***/
   5821     HRESULT (STDMETHODCALLTYPE *Load)(
   5822         IFileSourceFilter* This,
   5823         LPCOLESTR pszFileName,
   5824         const AM_MEDIA_TYPE *pmt);
   5825 
   5826     HRESULT (STDMETHODCALLTYPE *GetCurFile)(
   5827         IFileSourceFilter* This,
   5828         LPOLESTR *ppszFileName,
   5829         AM_MEDIA_TYPE *pmt);
   5830 
   5831     END_INTERFACE
   5832 } IFileSourceFilterVtbl;
   5833 interface IFileSourceFilter {
   5834     CONST_VTBL IFileSourceFilterVtbl* lpVtbl;
   5835 };
   5836 
   5837 #ifdef COBJMACROS
   5838 #ifndef WIDL_C_INLINE_WRAPPERS
   5839 /*** IUnknown methods ***/
   5840 #define IFileSourceFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5841 #define IFileSourceFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
   5842 #define IFileSourceFilter_Release(This) (This)->lpVtbl->Release(This)
   5843 /*** IFileSourceFilter methods ***/
   5844 #define IFileSourceFilter_Load(This,pszFileName,pmt) (This)->lpVtbl->Load(This,pszFileName,pmt)
   5845 #define IFileSourceFilter_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
   5846 #else
   5847 /*** IUnknown methods ***/
   5848 static FORCEINLINE HRESULT IFileSourceFilter_QueryInterface(IFileSourceFilter* This,REFIID riid,void **ppvObject) {
   5849     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5850 }
   5851 static FORCEINLINE ULONG IFileSourceFilter_AddRef(IFileSourceFilter* This) {
   5852     return This->lpVtbl->AddRef(This);
   5853 }
   5854 static FORCEINLINE ULONG IFileSourceFilter_Release(IFileSourceFilter* This) {
   5855     return This->lpVtbl->Release(This);
   5856 }
   5857 /*** IFileSourceFilter methods ***/
   5858 static FORCEINLINE HRESULT IFileSourceFilter_Load(IFileSourceFilter* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
   5859     return This->lpVtbl->Load(This,pszFileName,pmt);
   5860 }
   5861 static FORCEINLINE HRESULT IFileSourceFilter_GetCurFile(IFileSourceFilter* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) {
   5862     return This->lpVtbl->GetCurFile(This,ppszFileName,pmt);
   5863 }
   5864 #endif
   5865 #endif
   5866 
   5867 #endif
   5868 
   5869 HRESULT STDMETHODCALLTYPE IFileSourceFilter_Load_Proxy(
   5870     IFileSourceFilter* This,
   5871     LPCOLESTR pszFileName,
   5872     const AM_MEDIA_TYPE *pmt);
   5873 void __RPC_STUB IFileSourceFilter_Load_Stub(
   5874     IRpcStubBuffer* This,
   5875     IRpcChannelBuffer* pRpcChannelBuffer,
   5876     PRPC_MESSAGE pRpcMessage,
   5877     DWORD* pdwStubPhase);
   5878 HRESULT STDMETHODCALLTYPE IFileSourceFilter_GetCurFile_Proxy(
   5879     IFileSourceFilter* This,
   5880     LPOLESTR *ppszFileName,
   5881     AM_MEDIA_TYPE *pmt);
   5882 void __RPC_STUB IFileSourceFilter_GetCurFile_Stub(
   5883     IRpcStubBuffer* This,
   5884     IRpcChannelBuffer* pRpcChannelBuffer,
   5885     PRPC_MESSAGE pRpcMessage,
   5886     DWORD* pdwStubPhase);
   5887 
   5888 #endif  /* __IFileSourceFilter_INTERFACE_DEFINED__ */
   5889 
   5890 typedef IFileSourceFilter *PFILTERFILESOURCE;
   5891 /*****************************************************************************
   5892  * IFileSinkFilter interface
   5893  */
   5894 #ifndef __IFileSinkFilter_INTERFACE_DEFINED__
   5895 #define __IFileSinkFilter_INTERFACE_DEFINED__
   5896 
   5897 DEFINE_GUID(IID_IFileSinkFilter, 0xa2104830, 0x7c70, 0x11cf, 0x8b,0xce, 0x00,0xaa,0x00,0xa3,0xf1,0xa6);
   5898 #if defined(__cplusplus) && !defined(CINTERFACE)
   5899 MIDL_INTERFACE("a2104830-7c70-11cf-8bce-00aa00a3f1a6")
   5900 IFileSinkFilter : public IUnknown
   5901 {
   5902     virtual HRESULT STDMETHODCALLTYPE SetFileName(
   5903         LPCOLESTR pszFileName,
   5904         const AM_MEDIA_TYPE *pmt) = 0;
   5905 
   5906     virtual HRESULT STDMETHODCALLTYPE GetCurFile(
   5907         LPOLESTR *ppszFileName,
   5908         AM_MEDIA_TYPE *pmt) = 0;
   5909 
   5910 };
   5911 #ifdef __CRT_UUID_DECL
   5912 __CRT_UUID_DECL(IFileSinkFilter, 0xa2104830, 0x7c70, 0x11cf, 0x8b,0xce, 0x00,0xaa,0x00,0xa3,0xf1,0xa6)
   5913 #endif
   5914 #else
   5915 typedef struct IFileSinkFilterVtbl {
   5916     BEGIN_INTERFACE
   5917 
   5918     /*** IUnknown methods ***/
   5919     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5920         IFileSinkFilter* This,
   5921         REFIID riid,
   5922         void **ppvObject);
   5923 
   5924     ULONG (STDMETHODCALLTYPE *AddRef)(
   5925         IFileSinkFilter* This);
   5926 
   5927     ULONG (STDMETHODCALLTYPE *Release)(
   5928         IFileSinkFilter* This);
   5929 
   5930     /*** IFileSinkFilter methods ***/
   5931     HRESULT (STDMETHODCALLTYPE *SetFileName)(
   5932         IFileSinkFilter* This,
   5933         LPCOLESTR pszFileName,
   5934         const AM_MEDIA_TYPE *pmt);
   5935 
   5936     HRESULT (STDMETHODCALLTYPE *GetCurFile)(
   5937         IFileSinkFilter* This,
   5938         LPOLESTR *ppszFileName,
   5939         AM_MEDIA_TYPE *pmt);
   5940 
   5941     END_INTERFACE
   5942 } IFileSinkFilterVtbl;
   5943 interface IFileSinkFilter {
   5944     CONST_VTBL IFileSinkFilterVtbl* lpVtbl;
   5945 };
   5946 
   5947 #ifdef COBJMACROS
   5948 #ifndef WIDL_C_INLINE_WRAPPERS
   5949 /*** IUnknown methods ***/
   5950 #define IFileSinkFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5951 #define IFileSinkFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
   5952 #define IFileSinkFilter_Release(This) (This)->lpVtbl->Release(This)
   5953 /*** IFileSinkFilter methods ***/
   5954 #define IFileSinkFilter_SetFileName(This,pszFileName,pmt) (This)->lpVtbl->SetFileName(This,pszFileName,pmt)
   5955 #define IFileSinkFilter_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
   5956 #else
   5957 /*** IUnknown methods ***/
   5958 static FORCEINLINE HRESULT IFileSinkFilter_QueryInterface(IFileSinkFilter* This,REFIID riid,void **ppvObject) {
   5959     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5960 }
   5961 static FORCEINLINE ULONG IFileSinkFilter_AddRef(IFileSinkFilter* This) {
   5962     return This->lpVtbl->AddRef(This);
   5963 }
   5964 static FORCEINLINE ULONG IFileSinkFilter_Release(IFileSinkFilter* This) {
   5965     return This->lpVtbl->Release(This);
   5966 }
   5967 /*** IFileSinkFilter methods ***/
   5968 static FORCEINLINE HRESULT IFileSinkFilter_SetFileName(IFileSinkFilter* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
   5969     return This->lpVtbl->SetFileName(This,pszFileName,pmt);
   5970 }
   5971 static FORCEINLINE HRESULT IFileSinkFilter_GetCurFile(IFileSinkFilter* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) {
   5972     return This->lpVtbl->GetCurFile(This,ppszFileName,pmt);
   5973 }
   5974 #endif
   5975 #endif
   5976 
   5977 #endif
   5978 
   5979 HRESULT STDMETHODCALLTYPE IFileSinkFilter_SetFileName_Proxy(
   5980     IFileSinkFilter* This,
   5981     LPCOLESTR pszFileName,
   5982     const AM_MEDIA_TYPE *pmt);
   5983 void __RPC_STUB IFileSinkFilter_SetFileName_Stub(
   5984     IRpcStubBuffer* This,
   5985     IRpcChannelBuffer* pRpcChannelBuffer,
   5986     PRPC_MESSAGE pRpcMessage,
   5987     DWORD* pdwStubPhase);
   5988 HRESULT STDMETHODCALLTYPE IFileSinkFilter_GetCurFile_Proxy(
   5989     IFileSinkFilter* This,
   5990     LPOLESTR *ppszFileName,
   5991     AM_MEDIA_TYPE *pmt);
   5992 void __RPC_STUB IFileSinkFilter_GetCurFile_Stub(
   5993     IRpcStubBuffer* This,
   5994     IRpcChannelBuffer* pRpcChannelBuffer,
   5995     PRPC_MESSAGE pRpcMessage,
   5996     DWORD* pdwStubPhase);
   5997 
   5998 #endif  /* __IFileSinkFilter_INTERFACE_DEFINED__ */
   5999 
   6000 typedef IFileSinkFilter *PFILTERFILESINK;
   6001 /*****************************************************************************
   6002  * IFileSinkFilter2 interface
   6003  */
   6004 #ifndef __IFileSinkFilter2_INTERFACE_DEFINED__
   6005 #define __IFileSinkFilter2_INTERFACE_DEFINED__
   6006 
   6007 DEFINE_GUID(IID_IFileSinkFilter2, 0x00855b90, 0xce1b, 0x11d0, 0xbd,0x4f, 0x00,0xa0,0xc9,0x11,0xce,0x86);
   6008 #if defined(__cplusplus) && !defined(CINTERFACE)
   6009 MIDL_INTERFACE("00855b90-ce1b-11d0-bd4f-00a0c911ce86")
   6010 IFileSinkFilter2 : public IFileSinkFilter
   6011 {
   6012     virtual HRESULT STDMETHODCALLTYPE SetMode(
   6013         DWORD dwFlags) = 0;
   6014 
   6015     virtual HRESULT STDMETHODCALLTYPE GetMode(
   6016         DWORD *pdwFlags) = 0;
   6017 
   6018 };
   6019 #ifdef __CRT_UUID_DECL
   6020 __CRT_UUID_DECL(IFileSinkFilter2, 0x00855b90, 0xce1b, 0x11d0, 0xbd,0x4f, 0x00,0xa0,0xc9,0x11,0xce,0x86)
   6021 #endif
   6022 #else
   6023 typedef struct IFileSinkFilter2Vtbl {
   6024     BEGIN_INTERFACE
   6025 
   6026     /*** IUnknown methods ***/
   6027     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6028         IFileSinkFilter2* This,
   6029         REFIID riid,
   6030         void **ppvObject);
   6031 
   6032     ULONG (STDMETHODCALLTYPE *AddRef)(
   6033         IFileSinkFilter2* This);
   6034 
   6035     ULONG (STDMETHODCALLTYPE *Release)(
   6036         IFileSinkFilter2* This);
   6037 
   6038     /*** IFileSinkFilter methods ***/
   6039     HRESULT (STDMETHODCALLTYPE *SetFileName)(
   6040         IFileSinkFilter2* This,
   6041         LPCOLESTR pszFileName,
   6042         const AM_MEDIA_TYPE *pmt);
   6043 
   6044     HRESULT (STDMETHODCALLTYPE *GetCurFile)(
   6045         IFileSinkFilter2* This,
   6046         LPOLESTR *ppszFileName,
   6047         AM_MEDIA_TYPE *pmt);
   6048 
   6049     /*** IFileSinkFilter2 methods ***/
   6050     HRESULT (STDMETHODCALLTYPE *SetMode)(
   6051         IFileSinkFilter2* This,
   6052         DWORD dwFlags);
   6053 
   6054     HRESULT (STDMETHODCALLTYPE *GetMode)(
   6055         IFileSinkFilter2* This,
   6056         DWORD *pdwFlags);
   6057 
   6058     END_INTERFACE
   6059 } IFileSinkFilter2Vtbl;
   6060 interface IFileSinkFilter2 {
   6061     CONST_VTBL IFileSinkFilter2Vtbl* lpVtbl;
   6062 };
   6063 
   6064 #ifdef COBJMACROS
   6065 #ifndef WIDL_C_INLINE_WRAPPERS
   6066 /*** IUnknown methods ***/
   6067 #define IFileSinkFilter2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6068 #define IFileSinkFilter2_AddRef(This) (This)->lpVtbl->AddRef(This)
   6069 #define IFileSinkFilter2_Release(This) (This)->lpVtbl->Release(This)
   6070 /*** IFileSinkFilter methods ***/
   6071 #define IFileSinkFilter2_SetFileName(This,pszFileName,pmt) (This)->lpVtbl->SetFileName(This,pszFileName,pmt)
   6072 #define IFileSinkFilter2_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
   6073 /*** IFileSinkFilter2 methods ***/
   6074 #define IFileSinkFilter2_SetMode(This,dwFlags) (This)->lpVtbl->SetMode(This,dwFlags)
   6075 #define IFileSinkFilter2_GetMode(This,pdwFlags) (This)->lpVtbl->GetMode(This,pdwFlags)
   6076 #else
   6077 /*** IUnknown methods ***/
   6078 static FORCEINLINE HRESULT IFileSinkFilter2_QueryInterface(IFileSinkFilter2* This,REFIID riid,void **ppvObject) {
   6079     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6080 }
   6081 static FORCEINLINE ULONG IFileSinkFilter2_AddRef(IFileSinkFilter2* This) {
   6082     return This->lpVtbl->AddRef(This);
   6083 }
   6084 static FORCEINLINE ULONG IFileSinkFilter2_Release(IFileSinkFilter2* This) {
   6085     return This->lpVtbl->Release(This);
   6086 }
   6087 /*** IFileSinkFilter methods ***/
   6088 static FORCEINLINE HRESULT IFileSinkFilter2_SetFileName(IFileSinkFilter2* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
   6089     return This->lpVtbl->SetFileName(This,pszFileName,pmt);
   6090 }
   6091 static FORCEINLINE HRESULT IFileSinkFilter2_GetCurFile(IFileSinkFilter2* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) {
   6092     return This->lpVtbl->GetCurFile(This,ppszFileName,pmt);
   6093 }
   6094 /*** IFileSinkFilter2 methods ***/
   6095 static FORCEINLINE HRESULT IFileSinkFilter2_SetMode(IFileSinkFilter2* This,DWORD dwFlags) {
   6096     return This->lpVtbl->SetMode(This,dwFlags);
   6097 }
   6098 static FORCEINLINE HRESULT IFileSinkFilter2_GetMode(IFileSinkFilter2* This,DWORD *pdwFlags) {
   6099     return This->lpVtbl->GetMode(This,pdwFlags);
   6100 }
   6101 #endif
   6102 #endif
   6103 
   6104 #endif
   6105 
   6106 HRESULT STDMETHODCALLTYPE IFileSinkFilter2_SetMode_Proxy(
   6107     IFileSinkFilter2* This,
   6108     DWORD dwFlags);
   6109 void __RPC_STUB IFileSinkFilter2_SetMode_Stub(
   6110     IRpcStubBuffer* This,
   6111     IRpcChannelBuffer* pRpcChannelBuffer,
   6112     PRPC_MESSAGE pRpcMessage,
   6113     DWORD* pdwStubPhase);
   6114 HRESULT STDMETHODCALLTYPE IFileSinkFilter2_GetMode_Proxy(
   6115     IFileSinkFilter2* This,
   6116     DWORD *pdwFlags);
   6117 void __RPC_STUB IFileSinkFilter2_GetMode_Stub(
   6118     IRpcStubBuffer* This,
   6119     IRpcChannelBuffer* pRpcChannelBuffer,
   6120     PRPC_MESSAGE pRpcMessage,
   6121     DWORD* pdwStubPhase);
   6122 
   6123 #endif  /* __IFileSinkFilter2_INTERFACE_DEFINED__ */
   6124 
   6125 typedef IFileSinkFilter2 *PFILESINKFILTER2;
   6126 typedef enum __WIDL_axextend_generated_name_00000006 {
   6127     AM_FILE_OVERWRITE = 0x1
   6128 } AM_FILESINK_FLAGS;
   6129 /*****************************************************************************
   6130  * IGraphBuilder interface
   6131  */
   6132 #ifndef __IGraphBuilder_INTERFACE_DEFINED__
   6133 #define __IGraphBuilder_INTERFACE_DEFINED__
   6134 
   6135 DEFINE_GUID(IID_IGraphBuilder, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   6136 #if defined(__cplusplus) && !defined(CINTERFACE)
   6137 MIDL_INTERFACE("56a868a9-0ad4-11ce-b03a-0020af0ba770")
   6138 IGraphBuilder : public IFilterGraph
   6139 {
   6140     virtual HRESULT STDMETHODCALLTYPE Connect(
   6141         IPin *ppinOut,
   6142         IPin *ppinIn) = 0;
   6143 
   6144     virtual HRESULT STDMETHODCALLTYPE Render(
   6145         IPin *ppinOut) = 0;
   6146 
   6147     virtual HRESULT STDMETHODCALLTYPE RenderFile(
   6148         LPCWSTR lpcwstrFile,
   6149         LPCWSTR lpcwstrPlayList) = 0;
   6150 
   6151     virtual HRESULT STDMETHODCALLTYPE AddSourceFilter(
   6152         LPCWSTR lpcwstrFileName,
   6153         LPCWSTR lpcwstrFilterName,
   6154         IBaseFilter **ppFilter) = 0;
   6155 
   6156     virtual HRESULT STDMETHODCALLTYPE SetLogFile(
   6157         DWORD_PTR hFile) = 0;
   6158 
   6159     virtual HRESULT STDMETHODCALLTYPE Abort(
   6160         ) = 0;
   6161 
   6162     virtual HRESULT STDMETHODCALLTYPE ShouldOperationContinue(
   6163         ) = 0;
   6164 
   6165 };
   6166 #ifdef __CRT_UUID_DECL
   6167 __CRT_UUID_DECL(IGraphBuilder, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   6168 #endif
   6169 #else
   6170 typedef struct IGraphBuilderVtbl {
   6171     BEGIN_INTERFACE
   6172 
   6173     /*** IUnknown methods ***/
   6174     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6175         IGraphBuilder* This,
   6176         REFIID riid,
   6177         void **ppvObject);
   6178 
   6179     ULONG (STDMETHODCALLTYPE *AddRef)(
   6180         IGraphBuilder* This);
   6181 
   6182     ULONG (STDMETHODCALLTYPE *Release)(
   6183         IGraphBuilder* This);
   6184 
   6185     /*** IFilterGraph methods ***/
   6186     HRESULT (STDMETHODCALLTYPE *AddFilter)(
   6187         IGraphBuilder* This,
   6188         IBaseFilter *pFilter,
   6189         LPCWSTR pName);
   6190 
   6191     HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
   6192         IGraphBuilder* This,
   6193         IBaseFilter *pFilter);
   6194 
   6195     HRESULT (STDMETHODCALLTYPE *EnumFilters)(
   6196         IGraphBuilder* This,
   6197         IEnumFilters **ppEnum);
   6198 
   6199     HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
   6200         IGraphBuilder* This,
   6201         LPCWSTR pName,
   6202         IBaseFilter **ppFilter);
   6203 
   6204     HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
   6205         IGraphBuilder* This,
   6206         IPin *ppinOut,
   6207         IPin *ppinIn,
   6208         const AM_MEDIA_TYPE *pmt);
   6209 
   6210     HRESULT (STDMETHODCALLTYPE *Reconnect)(
   6211         IGraphBuilder* This,
   6212         IPin *ppin);
   6213 
   6214     HRESULT (STDMETHODCALLTYPE *Disconnect)(
   6215         IGraphBuilder* This,
   6216         IPin *ppin);
   6217 
   6218     HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
   6219         IGraphBuilder* This);
   6220 
   6221     /*** IGraphBuilder methods ***/
   6222     HRESULT (STDMETHODCALLTYPE *Connect)(
   6223         IGraphBuilder* This,
   6224         IPin *ppinOut,
   6225         IPin *ppinIn);
   6226 
   6227     HRESULT (STDMETHODCALLTYPE *Render)(
   6228         IGraphBuilder* This,
   6229         IPin *ppinOut);
   6230 
   6231     HRESULT (STDMETHODCALLTYPE *RenderFile)(
   6232         IGraphBuilder* This,
   6233         LPCWSTR lpcwstrFile,
   6234         LPCWSTR lpcwstrPlayList);
   6235 
   6236     HRESULT (STDMETHODCALLTYPE *AddSourceFilter)(
   6237         IGraphBuilder* This,
   6238         LPCWSTR lpcwstrFileName,
   6239         LPCWSTR lpcwstrFilterName,
   6240         IBaseFilter **ppFilter);
   6241 
   6242     HRESULT (STDMETHODCALLTYPE *SetLogFile)(
   6243         IGraphBuilder* This,
   6244         DWORD_PTR hFile);
   6245 
   6246     HRESULT (STDMETHODCALLTYPE *Abort)(
   6247         IGraphBuilder* This);
   6248 
   6249     HRESULT (STDMETHODCALLTYPE *ShouldOperationContinue)(
   6250         IGraphBuilder* This);
   6251 
   6252     END_INTERFACE
   6253 } IGraphBuilderVtbl;
   6254 interface IGraphBuilder {
   6255     CONST_VTBL IGraphBuilderVtbl* lpVtbl;
   6256 };
   6257 
   6258 #ifdef COBJMACROS
   6259 #ifndef WIDL_C_INLINE_WRAPPERS
   6260 /*** IUnknown methods ***/
   6261 #define IGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6262 #define IGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
   6263 #define IGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
   6264 /*** IFilterGraph methods ***/
   6265 #define IGraphBuilder_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
   6266 #define IGraphBuilder_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
   6267 #define IGraphBuilder_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
   6268 #define IGraphBuilder_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
   6269 #define IGraphBuilder_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
   6270 #define IGraphBuilder_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
   6271 #define IGraphBuilder_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
   6272 #define IGraphBuilder_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
   6273 /*** IGraphBuilder methods ***/
   6274 #define IGraphBuilder_Connect(This,ppinOut,ppinIn) (This)->lpVtbl->Connect(This,ppinOut,ppinIn)
   6275 #define IGraphBuilder_Render(This,ppinOut) (This)->lpVtbl->Render(This,ppinOut)
   6276 #define IGraphBuilder_RenderFile(This,lpcwstrFile,lpcwstrPlayList) (This)->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList)
   6277 #define IGraphBuilder_AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter)
   6278 #define IGraphBuilder_SetLogFile(This,hFile) (This)->lpVtbl->SetLogFile(This,hFile)
   6279 #define IGraphBuilder_Abort(This) (This)->lpVtbl->Abort(This)
   6280 #define IGraphBuilder_ShouldOperationContinue(This) (This)->lpVtbl->ShouldOperationContinue(This)
   6281 #else
   6282 /*** IUnknown methods ***/
   6283 static FORCEINLINE HRESULT IGraphBuilder_QueryInterface(IGraphBuilder* This,REFIID riid,void **ppvObject) {
   6284     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6285 }
   6286 static FORCEINLINE ULONG IGraphBuilder_AddRef(IGraphBuilder* This) {
   6287     return This->lpVtbl->AddRef(This);
   6288 }
   6289 static FORCEINLINE ULONG IGraphBuilder_Release(IGraphBuilder* This) {
   6290     return This->lpVtbl->Release(This);
   6291 }
   6292 /*** IFilterGraph methods ***/
   6293 static FORCEINLINE HRESULT IGraphBuilder_AddFilter(IGraphBuilder* This,IBaseFilter *pFilter,LPCWSTR pName) {
   6294     return This->lpVtbl->AddFilter(This,pFilter,pName);
   6295 }
   6296 static FORCEINLINE HRESULT IGraphBuilder_RemoveFilter(IGraphBuilder* This,IBaseFilter *pFilter) {
   6297     return This->lpVtbl->RemoveFilter(This,pFilter);
   6298 }
   6299 static FORCEINLINE HRESULT IGraphBuilder_EnumFilters(IGraphBuilder* This,IEnumFilters **ppEnum) {
   6300     return This->lpVtbl->EnumFilters(This,ppEnum);
   6301 }
   6302 static FORCEINLINE HRESULT IGraphBuilder_FindFilterByName(IGraphBuilder* This,LPCWSTR pName,IBaseFilter **ppFilter) {
   6303     return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
   6304 }
   6305 static FORCEINLINE HRESULT IGraphBuilder_ConnectDirect(IGraphBuilder* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) {
   6306     return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt);
   6307 }
   6308 static FORCEINLINE HRESULT IGraphBuilder_Reconnect(IGraphBuilder* This,IPin *ppin) {
   6309     return This->lpVtbl->Reconnect(This,ppin);
   6310 }
   6311 static FORCEINLINE HRESULT IGraphBuilder_Disconnect(IGraphBuilder* This,IPin *ppin) {
   6312     return This->lpVtbl->Disconnect(This,ppin);
   6313 }
   6314 static FORCEINLINE HRESULT IGraphBuilder_SetDefaultSyncSource(IGraphBuilder* This) {
   6315     return This->lpVtbl->SetDefaultSyncSource(This);
   6316 }
   6317 /*** IGraphBuilder methods ***/
   6318 static FORCEINLINE HRESULT IGraphBuilder_Connect(IGraphBuilder* This,IPin *ppinOut,IPin *ppinIn) {
   6319     return This->lpVtbl->Connect(This,ppinOut,ppinIn);
   6320 }
   6321 static FORCEINLINE HRESULT IGraphBuilder_Render(IGraphBuilder* This,IPin *ppinOut) {
   6322     return This->lpVtbl->Render(This,ppinOut);
   6323 }
   6324 static FORCEINLINE HRESULT IGraphBuilder_RenderFile(IGraphBuilder* This,LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList) {
   6325     return This->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList);
   6326 }
   6327 static FORCEINLINE HRESULT IGraphBuilder_AddSourceFilter(IGraphBuilder* This,LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) {
   6328     return This->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter);
   6329 }
   6330 static FORCEINLINE HRESULT IGraphBuilder_SetLogFile(IGraphBuilder* This,DWORD_PTR hFile) {
   6331     return This->lpVtbl->SetLogFile(This,hFile);
   6332 }
   6333 static FORCEINLINE HRESULT IGraphBuilder_Abort(IGraphBuilder* This) {
   6334     return This->lpVtbl->Abort(This);
   6335 }
   6336 static FORCEINLINE HRESULT IGraphBuilder_ShouldOperationContinue(IGraphBuilder* This) {
   6337     return This->lpVtbl->ShouldOperationContinue(This);
   6338 }
   6339 #endif
   6340 #endif
   6341 
   6342 #endif
   6343 
   6344 HRESULT STDMETHODCALLTYPE IGraphBuilder_Connect_Proxy(
   6345     IGraphBuilder* This,
   6346     IPin *ppinOut,
   6347     IPin *ppinIn);
   6348 void __RPC_STUB IGraphBuilder_Connect_Stub(
   6349     IRpcStubBuffer* This,
   6350     IRpcChannelBuffer* pRpcChannelBuffer,
   6351     PRPC_MESSAGE pRpcMessage,
   6352     DWORD* pdwStubPhase);
   6353 HRESULT STDMETHODCALLTYPE IGraphBuilder_Render_Proxy(
   6354     IGraphBuilder* This,
   6355     IPin *ppinOut);
   6356 void __RPC_STUB IGraphBuilder_Render_Stub(
   6357     IRpcStubBuffer* This,
   6358     IRpcChannelBuffer* pRpcChannelBuffer,
   6359     PRPC_MESSAGE pRpcMessage,
   6360     DWORD* pdwStubPhase);
   6361 HRESULT STDMETHODCALLTYPE IGraphBuilder_RenderFile_Proxy(
   6362     IGraphBuilder* This,
   6363     LPCWSTR lpcwstrFile,
   6364     LPCWSTR lpcwstrPlayList);
   6365 void __RPC_STUB IGraphBuilder_RenderFile_Stub(
   6366     IRpcStubBuffer* This,
   6367     IRpcChannelBuffer* pRpcChannelBuffer,
   6368     PRPC_MESSAGE pRpcMessage,
   6369     DWORD* pdwStubPhase);
   6370 HRESULT STDMETHODCALLTYPE IGraphBuilder_AddSourceFilter_Proxy(
   6371     IGraphBuilder* This,
   6372     LPCWSTR lpcwstrFileName,
   6373     LPCWSTR lpcwstrFilterName,
   6374     IBaseFilter **ppFilter);
   6375 void __RPC_STUB IGraphBuilder_AddSourceFilter_Stub(
   6376     IRpcStubBuffer* This,
   6377     IRpcChannelBuffer* pRpcChannelBuffer,
   6378     PRPC_MESSAGE pRpcMessage,
   6379     DWORD* pdwStubPhase);
   6380 HRESULT STDMETHODCALLTYPE IGraphBuilder_SetLogFile_Proxy(
   6381     IGraphBuilder* This,
   6382     DWORD_PTR hFile);
   6383 void __RPC_STUB IGraphBuilder_SetLogFile_Stub(
   6384     IRpcStubBuffer* This,
   6385     IRpcChannelBuffer* pRpcChannelBuffer,
   6386     PRPC_MESSAGE pRpcMessage,
   6387     DWORD* pdwStubPhase);
   6388 HRESULT STDMETHODCALLTYPE IGraphBuilder_Abort_Proxy(
   6389     IGraphBuilder* This);
   6390 void __RPC_STUB IGraphBuilder_Abort_Stub(
   6391     IRpcStubBuffer* This,
   6392     IRpcChannelBuffer* pRpcChannelBuffer,
   6393     PRPC_MESSAGE pRpcMessage,
   6394     DWORD* pdwStubPhase);
   6395 HRESULT STDMETHODCALLTYPE IGraphBuilder_ShouldOperationContinue_Proxy(
   6396     IGraphBuilder* This);
   6397 void __RPC_STUB IGraphBuilder_ShouldOperationContinue_Stub(
   6398     IRpcStubBuffer* This,
   6399     IRpcChannelBuffer* pRpcChannelBuffer,
   6400     PRPC_MESSAGE pRpcMessage,
   6401     DWORD* pdwStubPhase);
   6402 
   6403 #endif  /* __IGraphBuilder_INTERFACE_DEFINED__ */
   6404 
   6405 /*****************************************************************************
   6406  * ICaptureGraphBuilder interface
   6407  */
   6408 #ifndef __ICaptureGraphBuilder_INTERFACE_DEFINED__
   6409 #define __ICaptureGraphBuilder_INTERFACE_DEFINED__
   6410 
   6411 DEFINE_GUID(IID_ICaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
   6412 #if defined(__cplusplus) && !defined(CINTERFACE)
   6413 MIDL_INTERFACE("bf87b6e0-8c27-11d0-b3f0-00aa003761c5")
   6414 ICaptureGraphBuilder : public IUnknown
   6415 {
   6416     virtual HRESULT STDMETHODCALLTYPE SetFiltergraph(
   6417         IGraphBuilder *pfg) = 0;
   6418 
   6419     virtual HRESULT STDMETHODCALLTYPE GetFiltergraph(
   6420         IGraphBuilder **ppfg) = 0;
   6421 
   6422     virtual HRESULT STDMETHODCALLTYPE SetOutputFileName(
   6423         const GUID *pType,
   6424         LPCOLESTR lpstrFile,
   6425         IBaseFilter **ppf,
   6426         IFileSinkFilter **ppSink) = 0;
   6427 
   6428     virtual HRESULT STDMETHODCALLTYPE FindInterface(
   6429         const GUID *pCategory,
   6430         IBaseFilter *pf,
   6431         REFIID riid,
   6432         void **ppint) = 0;
   6433 
   6434     virtual HRESULT STDMETHODCALLTYPE RenderStream(
   6435         const GUID *pCategory,
   6436         IUnknown *pSource,
   6437         IBaseFilter *pfCompressor,
   6438         IBaseFilter *pfRenderer) = 0;
   6439 
   6440     virtual HRESULT STDMETHODCALLTYPE ControlStream(
   6441         const GUID *pCategory,
   6442         IBaseFilter *pFilter,
   6443         REFERENCE_TIME *pstart,
   6444         REFERENCE_TIME *pstop,
   6445         WORD wStartCookie,
   6446         WORD wStopCookie) = 0;
   6447 
   6448     virtual HRESULT STDMETHODCALLTYPE AllocCapFile(
   6449         LPCOLESTR lpstr,
   6450         DWORDLONG dwlSize) = 0;
   6451 
   6452     virtual HRESULT STDMETHODCALLTYPE CopyCaptureFile(
   6453         LPOLESTR lpwstrOld,
   6454         LPOLESTR lpwstrNew,
   6455         int fAllowEscAbort,
   6456         IAMCopyCaptureFileProgress *pCallback) = 0;
   6457 
   6458 };
   6459 #ifdef __CRT_UUID_DECL
   6460 __CRT_UUID_DECL(ICaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5)
   6461 #endif
   6462 #else
   6463 typedef struct ICaptureGraphBuilderVtbl {
   6464     BEGIN_INTERFACE
   6465 
   6466     /*** IUnknown methods ***/
   6467     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6468         ICaptureGraphBuilder* This,
   6469         REFIID riid,
   6470         void **ppvObject);
   6471 
   6472     ULONG (STDMETHODCALLTYPE *AddRef)(
   6473         ICaptureGraphBuilder* This);
   6474 
   6475     ULONG (STDMETHODCALLTYPE *Release)(
   6476         ICaptureGraphBuilder* This);
   6477 
   6478     /*** ICaptureGraphBuilder methods ***/
   6479     HRESULT (STDMETHODCALLTYPE *SetFiltergraph)(
   6480         ICaptureGraphBuilder* This,
   6481         IGraphBuilder *pfg);
   6482 
   6483     HRESULT (STDMETHODCALLTYPE *GetFiltergraph)(
   6484         ICaptureGraphBuilder* This,
   6485         IGraphBuilder **ppfg);
   6486 
   6487     HRESULT (STDMETHODCALLTYPE *SetOutputFileName)(
   6488         ICaptureGraphBuilder* This,
   6489         const GUID *pType,
   6490         LPCOLESTR lpstrFile,
   6491         IBaseFilter **ppf,
   6492         IFileSinkFilter **ppSink);
   6493 
   6494     HRESULT (STDMETHODCALLTYPE *FindInterface)(
   6495         ICaptureGraphBuilder* This,
   6496         const GUID *pCategory,
   6497         IBaseFilter *pf,
   6498         REFIID riid,
   6499         void **ppint);
   6500 
   6501     HRESULT (STDMETHODCALLTYPE *RenderStream)(
   6502         ICaptureGraphBuilder* This,
   6503         const GUID *pCategory,
   6504         IUnknown *pSource,
   6505         IBaseFilter *pfCompressor,
   6506         IBaseFilter *pfRenderer);
   6507 
   6508     HRESULT (STDMETHODCALLTYPE *ControlStream)(
   6509         ICaptureGraphBuilder* This,
   6510         const GUID *pCategory,
   6511         IBaseFilter *pFilter,
   6512         REFERENCE_TIME *pstart,
   6513         REFERENCE_TIME *pstop,
   6514         WORD wStartCookie,
   6515         WORD wStopCookie);
   6516 
   6517     HRESULT (STDMETHODCALLTYPE *AllocCapFile)(
   6518         ICaptureGraphBuilder* This,
   6519         LPCOLESTR lpstr,
   6520         DWORDLONG dwlSize);
   6521 
   6522     HRESULT (STDMETHODCALLTYPE *CopyCaptureFile)(
   6523         ICaptureGraphBuilder* This,
   6524         LPOLESTR lpwstrOld,
   6525         LPOLESTR lpwstrNew,
   6526         int fAllowEscAbort,
   6527         IAMCopyCaptureFileProgress *pCallback);
   6528 
   6529     END_INTERFACE
   6530 } ICaptureGraphBuilderVtbl;
   6531 interface ICaptureGraphBuilder {
   6532     CONST_VTBL ICaptureGraphBuilderVtbl* lpVtbl;
   6533 };
   6534 
   6535 #ifdef COBJMACROS
   6536 #ifndef WIDL_C_INLINE_WRAPPERS
   6537 /*** IUnknown methods ***/
   6538 #define ICaptureGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6539 #define ICaptureGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
   6540 #define ICaptureGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
   6541 /*** ICaptureGraphBuilder methods ***/
   6542 #define ICaptureGraphBuilder_SetFiltergraph(This,pfg) (This)->lpVtbl->SetFiltergraph(This,pfg)
   6543 #define ICaptureGraphBuilder_GetFiltergraph(This,ppfg) (This)->lpVtbl->GetFiltergraph(This,ppfg)
   6544 #define ICaptureGraphBuilder_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink) (This)->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)
   6545 #define ICaptureGraphBuilder_FindInterface(This,pCategory,pf,riid,ppint) (This)->lpVtbl->FindInterface(This,pCategory,pf,riid,ppint)
   6546 #define ICaptureGraphBuilder_RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer) (This)->lpVtbl->RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer)
   6547 #define ICaptureGraphBuilder_ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie) (This)->lpVtbl->ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie)
   6548 #define ICaptureGraphBuilder_AllocCapFile(This,lpstr,dwlSize) (This)->lpVtbl->AllocCapFile(This,lpstr,dwlSize)
   6549 #define ICaptureGraphBuilder_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback) (This)->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)
   6550 #else
   6551 /*** IUnknown methods ***/
   6552 static FORCEINLINE HRESULT ICaptureGraphBuilder_QueryInterface(ICaptureGraphBuilder* This,REFIID riid,void **ppvObject) {
   6553     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6554 }
   6555 static FORCEINLINE ULONG ICaptureGraphBuilder_AddRef(ICaptureGraphBuilder* This) {
   6556     return This->lpVtbl->AddRef(This);
   6557 }
   6558 static FORCEINLINE ULONG ICaptureGraphBuilder_Release(ICaptureGraphBuilder* This) {
   6559     return This->lpVtbl->Release(This);
   6560 }
   6561 /*** ICaptureGraphBuilder methods ***/
   6562 static FORCEINLINE HRESULT ICaptureGraphBuilder_SetFiltergraph(ICaptureGraphBuilder* This,IGraphBuilder *pfg) {
   6563     return This->lpVtbl->SetFiltergraph(This,pfg);
   6564 }
   6565 static FORCEINLINE HRESULT ICaptureGraphBuilder_GetFiltergraph(ICaptureGraphBuilder* This,IGraphBuilder **ppfg) {
   6566     return This->lpVtbl->GetFiltergraph(This,ppfg);
   6567 }
   6568 static FORCEINLINE HRESULT ICaptureGraphBuilder_SetOutputFileName(ICaptureGraphBuilder* This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink) {
   6569     return This->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink);
   6570 }
   6571 static FORCEINLINE HRESULT ICaptureGraphBuilder_FindInterface(ICaptureGraphBuilder* This,const GUID *pCategory,IBaseFilter *pf,REFIID riid,void **ppint) {
   6572     return This->lpVtbl->FindInterface(This,pCategory,pf,riid,ppint);
   6573 }
   6574 static FORCEINLINE HRESULT ICaptureGraphBuilder_RenderStream(ICaptureGraphBuilder* This,const GUID *pCategory,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer) {
   6575     return This->lpVtbl->RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer);
   6576 }
   6577 static FORCEINLINE HRESULT ICaptureGraphBuilder_ControlStream(ICaptureGraphBuilder* This,const GUID *pCategory,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie) {
   6578     return This->lpVtbl->ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie);
   6579 }
   6580 static FORCEINLINE HRESULT ICaptureGraphBuilder_AllocCapFile(ICaptureGraphBuilder* This,LPCOLESTR lpstr,DWORDLONG dwlSize) {
   6581     return This->lpVtbl->AllocCapFile(This,lpstr,dwlSize);
   6582 }
   6583 static FORCEINLINE HRESULT ICaptureGraphBuilder_CopyCaptureFile(ICaptureGraphBuilder* This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback) {
   6584     return This->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback);
   6585 }
   6586 #endif
   6587 #endif
   6588 
   6589 #endif
   6590 
   6591 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_SetFiltergraph_Proxy(
   6592     ICaptureGraphBuilder* This,
   6593     IGraphBuilder *pfg);
   6594 void __RPC_STUB ICaptureGraphBuilder_SetFiltergraph_Stub(
   6595     IRpcStubBuffer* This,
   6596     IRpcChannelBuffer* pRpcChannelBuffer,
   6597     PRPC_MESSAGE pRpcMessage,
   6598     DWORD* pdwStubPhase);
   6599 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_GetFiltergraph_Proxy(
   6600     ICaptureGraphBuilder* This,
   6601     IGraphBuilder **ppfg);
   6602 void __RPC_STUB ICaptureGraphBuilder_GetFiltergraph_Stub(
   6603     IRpcStubBuffer* This,
   6604     IRpcChannelBuffer* pRpcChannelBuffer,
   6605     PRPC_MESSAGE pRpcMessage,
   6606     DWORD* pdwStubPhase);
   6607 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_SetOutputFileName_Proxy(
   6608     ICaptureGraphBuilder* This,
   6609     const GUID *pType,
   6610     LPCOLESTR lpstrFile,
   6611     IBaseFilter **ppf,
   6612     IFileSinkFilter **ppSink);
   6613 void __RPC_STUB ICaptureGraphBuilder_SetOutputFileName_Stub(
   6614     IRpcStubBuffer* This,
   6615     IRpcChannelBuffer* pRpcChannelBuffer,
   6616     PRPC_MESSAGE pRpcMessage,
   6617     DWORD* pdwStubPhase);
   6618 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_RemoteFindInterface_Proxy(
   6619     ICaptureGraphBuilder* This,
   6620     const GUID *pCategory,
   6621     IBaseFilter *pf,
   6622     REFIID riid,
   6623     IUnknown **ppint);
   6624 void __RPC_STUB ICaptureGraphBuilder_RemoteFindInterface_Stub(
   6625     IRpcStubBuffer* This,
   6626     IRpcChannelBuffer* pRpcChannelBuffer,
   6627     PRPC_MESSAGE pRpcMessage,
   6628     DWORD* pdwStubPhase);
   6629 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_RenderStream_Proxy(
   6630     ICaptureGraphBuilder* This,
   6631     const GUID *pCategory,
   6632     IUnknown *pSource,
   6633     IBaseFilter *pfCompressor,
   6634     IBaseFilter *pfRenderer);
   6635 void __RPC_STUB ICaptureGraphBuilder_RenderStream_Stub(
   6636     IRpcStubBuffer* This,
   6637     IRpcChannelBuffer* pRpcChannelBuffer,
   6638     PRPC_MESSAGE pRpcMessage,
   6639     DWORD* pdwStubPhase);
   6640 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_ControlStream_Proxy(
   6641     ICaptureGraphBuilder* This,
   6642     const GUID *pCategory,
   6643     IBaseFilter *pFilter,
   6644     REFERENCE_TIME *pstart,
   6645     REFERENCE_TIME *pstop,
   6646     WORD wStartCookie,
   6647     WORD wStopCookie);
   6648 void __RPC_STUB ICaptureGraphBuilder_ControlStream_Stub(
   6649     IRpcStubBuffer* This,
   6650     IRpcChannelBuffer* pRpcChannelBuffer,
   6651     PRPC_MESSAGE pRpcMessage,
   6652     DWORD* pdwStubPhase);
   6653 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_AllocCapFile_Proxy(
   6654     ICaptureGraphBuilder* This,
   6655     LPCOLESTR lpstr,
   6656     DWORDLONG dwlSize);
   6657 void __RPC_STUB ICaptureGraphBuilder_AllocCapFile_Stub(
   6658     IRpcStubBuffer* This,
   6659     IRpcChannelBuffer* pRpcChannelBuffer,
   6660     PRPC_MESSAGE pRpcMessage,
   6661     DWORD* pdwStubPhase);
   6662 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_CopyCaptureFile_Proxy(
   6663     ICaptureGraphBuilder* This,
   6664     LPOLESTR lpwstrOld,
   6665     LPOLESTR lpwstrNew,
   6666     int fAllowEscAbort,
   6667     IAMCopyCaptureFileProgress *pCallback);
   6668 void __RPC_STUB ICaptureGraphBuilder_CopyCaptureFile_Stub(
   6669     IRpcStubBuffer* This,
   6670     IRpcChannelBuffer* pRpcChannelBuffer,
   6671     PRPC_MESSAGE pRpcMessage,
   6672     DWORD* pdwStubPhase);
   6673 HRESULT CALLBACK ICaptureGraphBuilder_FindInterface_Proxy(
   6674     ICaptureGraphBuilder* This,
   6675     const GUID *pCategory,
   6676     IBaseFilter *pf,
   6677     REFIID riid,
   6678     void **ppint);
   6679 HRESULT __RPC_STUB ICaptureGraphBuilder_FindInterface_Stub(
   6680     ICaptureGraphBuilder* This,
   6681     const GUID *pCategory,
   6682     IBaseFilter *pf,
   6683     REFIID riid,
   6684     IUnknown **ppint);
   6685 
   6686 #endif  /* __ICaptureGraphBuilder_INTERFACE_DEFINED__ */
   6687 
   6688 /*****************************************************************************
   6689  * IAMCopyCaptureFileProgress interface
   6690  */
   6691 #ifndef __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
   6692 #define __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
   6693 
   6694 DEFINE_GUID(IID_IAMCopyCaptureFileProgress, 0x670d1d20, 0xa068, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
   6695 #if defined(__cplusplus) && !defined(CINTERFACE)
   6696 MIDL_INTERFACE("670d1d20-a068-11d0-b3f0-00aa003761c5")
   6697 IAMCopyCaptureFileProgress : public IUnknown
   6698 {
   6699     virtual HRESULT STDMETHODCALLTYPE Progress(
   6700         int iProgress) = 0;
   6701 
   6702 };
   6703 #ifdef __CRT_UUID_DECL
   6704 __CRT_UUID_DECL(IAMCopyCaptureFileProgress, 0x670d1d20, 0xa068, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5)
   6705 #endif
   6706 #else
   6707 typedef struct IAMCopyCaptureFileProgressVtbl {
   6708     BEGIN_INTERFACE
   6709 
   6710     /*** IUnknown methods ***/
   6711     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6712         IAMCopyCaptureFileProgress* This,
   6713         REFIID riid,
   6714         void **ppvObject);
   6715 
   6716     ULONG (STDMETHODCALLTYPE *AddRef)(
   6717         IAMCopyCaptureFileProgress* This);
   6718 
   6719     ULONG (STDMETHODCALLTYPE *Release)(
   6720         IAMCopyCaptureFileProgress* This);
   6721 
   6722     /*** IAMCopyCaptureFileProgress methods ***/
   6723     HRESULT (STDMETHODCALLTYPE *Progress)(
   6724         IAMCopyCaptureFileProgress* This,
   6725         int iProgress);
   6726 
   6727     END_INTERFACE
   6728 } IAMCopyCaptureFileProgressVtbl;
   6729 interface IAMCopyCaptureFileProgress {
   6730     CONST_VTBL IAMCopyCaptureFileProgressVtbl* lpVtbl;
   6731 };
   6732 
   6733 #ifdef COBJMACROS
   6734 #ifndef WIDL_C_INLINE_WRAPPERS
   6735 /*** IUnknown methods ***/
   6736 #define IAMCopyCaptureFileProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6737 #define IAMCopyCaptureFileProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
   6738 #define IAMCopyCaptureFileProgress_Release(This) (This)->lpVtbl->Release(This)
   6739 /*** IAMCopyCaptureFileProgress methods ***/
   6740 #define IAMCopyCaptureFileProgress_Progress(This,iProgress) (This)->lpVtbl->Progress(This,iProgress)
   6741 #else
   6742 /*** IUnknown methods ***/
   6743 static FORCEINLINE HRESULT IAMCopyCaptureFileProgress_QueryInterface(IAMCopyCaptureFileProgress* This,REFIID riid,void **ppvObject) {
   6744     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6745 }
   6746 static FORCEINLINE ULONG IAMCopyCaptureFileProgress_AddRef(IAMCopyCaptureFileProgress* This) {
   6747     return This->lpVtbl->AddRef(This);
   6748 }
   6749 static FORCEINLINE ULONG IAMCopyCaptureFileProgress_Release(IAMCopyCaptureFileProgress* This) {
   6750     return This->lpVtbl->Release(This);
   6751 }
   6752 /*** IAMCopyCaptureFileProgress methods ***/
   6753 static FORCEINLINE HRESULT IAMCopyCaptureFileProgress_Progress(IAMCopyCaptureFileProgress* This,int iProgress) {
   6754     return This->lpVtbl->Progress(This,iProgress);
   6755 }
   6756 #endif
   6757 #endif
   6758 
   6759 #endif
   6760 
   6761 HRESULT STDMETHODCALLTYPE IAMCopyCaptureFileProgress_Progress_Proxy(
   6762     IAMCopyCaptureFileProgress* This,
   6763     int iProgress);
   6764 void __RPC_STUB IAMCopyCaptureFileProgress_Progress_Stub(
   6765     IRpcStubBuffer* This,
   6766     IRpcChannelBuffer* pRpcChannelBuffer,
   6767     PRPC_MESSAGE pRpcMessage,
   6768     DWORD* pdwStubPhase);
   6769 
   6770 #endif  /* __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__ */
   6771 
   6772 /*****************************************************************************
   6773  * ICaptureGraphBuilder2 interface
   6774  */
   6775 #ifndef __ICaptureGraphBuilder2_INTERFACE_DEFINED__
   6776 #define __ICaptureGraphBuilder2_INTERFACE_DEFINED__
   6777 
   6778 DEFINE_GUID(IID_ICaptureGraphBuilder2, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,0xfa, 0x00,0xa0,0xc9,0xc6,0xe3,0x8d);
   6779 #if defined(__cplusplus) && !defined(CINTERFACE)
   6780 MIDL_INTERFACE("93e5a4e0-2d50-11d2-abfa-00a0c9c6e38d")
   6781 ICaptureGraphBuilder2 : public IUnknown
   6782 {
   6783     virtual HRESULT STDMETHODCALLTYPE SetFiltergraph(
   6784         IGraphBuilder *pfg) = 0;
   6785 
   6786     virtual HRESULT STDMETHODCALLTYPE GetFiltergraph(
   6787         IGraphBuilder **ppfg) = 0;
   6788 
   6789     virtual HRESULT STDMETHODCALLTYPE SetOutputFileName(
   6790         const GUID *pType,
   6791         LPCOLESTR lpstrFile,
   6792         IBaseFilter **ppf,
   6793         IFileSinkFilter **ppSink) = 0;
   6794 
   6795     virtual HRESULT STDMETHODCALLTYPE FindInterface(
   6796         const GUID *pCategory,
   6797         const GUID *pType,
   6798         IBaseFilter *pf,
   6799         REFIID riid,
   6800         void **ppint) = 0;
   6801 
   6802     virtual HRESULT STDMETHODCALLTYPE RenderStream(
   6803         const GUID *pCategory,
   6804         const GUID *pType,
   6805         IUnknown *pSource,
   6806         IBaseFilter *pfCompressor,
   6807         IBaseFilter *pfRenderer) = 0;
   6808 
   6809     virtual HRESULT STDMETHODCALLTYPE ControlStream(
   6810         const GUID *pCategory,
   6811         const GUID *pType,
   6812         IBaseFilter *pFilter,
   6813         REFERENCE_TIME *pstart,
   6814         REFERENCE_TIME *pstop,
   6815         WORD wStartCookie,
   6816         WORD wStopCookie) = 0;
   6817 
   6818     virtual HRESULT STDMETHODCALLTYPE AllocCapFile(
   6819         LPCOLESTR lpstr,
   6820         DWORDLONG dwlSize) = 0;
   6821 
   6822     virtual HRESULT STDMETHODCALLTYPE CopyCaptureFile(
   6823         LPOLESTR lpwstrOld,
   6824         LPOLESTR lpwstrNew,
   6825         int fAllowEscAbort,
   6826         IAMCopyCaptureFileProgress *pCallback) = 0;
   6827 
   6828     virtual HRESULT STDMETHODCALLTYPE FindPin(
   6829         IUnknown *pSource,
   6830         PIN_DIRECTION pindir,
   6831         const GUID *pCategory,
   6832         const GUID *pType,
   6833         WINBOOL fUnconnected,
   6834         int num,
   6835         IPin **ppPin) = 0;
   6836 
   6837 };
   6838 #ifdef __CRT_UUID_DECL
   6839 __CRT_UUID_DECL(ICaptureGraphBuilder2, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,0xfa, 0x00,0xa0,0xc9,0xc6,0xe3,0x8d)
   6840 #endif
   6841 #else
   6842 typedef struct ICaptureGraphBuilder2Vtbl {
   6843     BEGIN_INTERFACE
   6844 
   6845     /*** IUnknown methods ***/
   6846     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6847         ICaptureGraphBuilder2* This,
   6848         REFIID riid,
   6849         void **ppvObject);
   6850 
   6851     ULONG (STDMETHODCALLTYPE *AddRef)(
   6852         ICaptureGraphBuilder2* This);
   6853 
   6854     ULONG (STDMETHODCALLTYPE *Release)(
   6855         ICaptureGraphBuilder2* This);
   6856 
   6857     /*** ICaptureGraphBuilder2 methods ***/
   6858     HRESULT (STDMETHODCALLTYPE *SetFiltergraph)(
   6859         ICaptureGraphBuilder2* This,
   6860         IGraphBuilder *pfg);
   6861 
   6862     HRESULT (STDMETHODCALLTYPE *GetFiltergraph)(
   6863         ICaptureGraphBuilder2* This,
   6864         IGraphBuilder **ppfg);
   6865 
   6866     HRESULT (STDMETHODCALLTYPE *SetOutputFileName)(
   6867         ICaptureGraphBuilder2* This,
   6868         const GUID *pType,
   6869         LPCOLESTR lpstrFile,
   6870         IBaseFilter **ppf,
   6871         IFileSinkFilter **ppSink);
   6872 
   6873     HRESULT (STDMETHODCALLTYPE *FindInterface)(
   6874         ICaptureGraphBuilder2* This,
   6875         const GUID *pCategory,
   6876         const GUID *pType,
   6877         IBaseFilter *pf,
   6878         REFIID riid,
   6879         void **ppint);
   6880 
   6881     HRESULT (STDMETHODCALLTYPE *RenderStream)(
   6882         ICaptureGraphBuilder2* This,
   6883         const GUID *pCategory,
   6884         const GUID *pType,
   6885         IUnknown *pSource,
   6886         IBaseFilter *pfCompressor,
   6887         IBaseFilter *pfRenderer);
   6888 
   6889     HRESULT (STDMETHODCALLTYPE *ControlStream)(
   6890         ICaptureGraphBuilder2* This,
   6891         const GUID *pCategory,
   6892         const GUID *pType,
   6893         IBaseFilter *pFilter,
   6894         REFERENCE_TIME *pstart,
   6895         REFERENCE_TIME *pstop,
   6896         WORD wStartCookie,
   6897         WORD wStopCookie);
   6898 
   6899     HRESULT (STDMETHODCALLTYPE *AllocCapFile)(
   6900         ICaptureGraphBuilder2* This,
   6901         LPCOLESTR lpstr,
   6902         DWORDLONG dwlSize);
   6903 
   6904     HRESULT (STDMETHODCALLTYPE *CopyCaptureFile)(
   6905         ICaptureGraphBuilder2* This,
   6906         LPOLESTR lpwstrOld,
   6907         LPOLESTR lpwstrNew,
   6908         int fAllowEscAbort,
   6909         IAMCopyCaptureFileProgress *pCallback);
   6910 
   6911     HRESULT (STDMETHODCALLTYPE *FindPin)(
   6912         ICaptureGraphBuilder2* This,
   6913         IUnknown *pSource,
   6914         PIN_DIRECTION pindir,
   6915         const GUID *pCategory,
   6916         const GUID *pType,
   6917         WINBOOL fUnconnected,
   6918         int num,
   6919         IPin **ppPin);
   6920 
   6921     END_INTERFACE
   6922 } ICaptureGraphBuilder2Vtbl;
   6923 interface ICaptureGraphBuilder2 {
   6924     CONST_VTBL ICaptureGraphBuilder2Vtbl* lpVtbl;
   6925 };
   6926 
   6927 #ifdef COBJMACROS
   6928 #ifndef WIDL_C_INLINE_WRAPPERS
   6929 /*** IUnknown methods ***/
   6930 #define ICaptureGraphBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6931 #define ICaptureGraphBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This)
   6932 #define ICaptureGraphBuilder2_Release(This) (This)->lpVtbl->Release(This)
   6933 /*** ICaptureGraphBuilder2 methods ***/
   6934 #define ICaptureGraphBuilder2_SetFiltergraph(This,pfg) (This)->lpVtbl->SetFiltergraph(This,pfg)
   6935 #define ICaptureGraphBuilder2_GetFiltergraph(This,ppfg) (This)->lpVtbl->GetFiltergraph(This,ppfg)
   6936 #define ICaptureGraphBuilder2_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink) (This)->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)
   6937 #define ICaptureGraphBuilder2_FindInterface(This,pCategory,pType,pf,riid,ppint) (This)->lpVtbl->FindInterface(This,pCategory,pType,pf,riid,ppint)
   6938 #define ICaptureGraphBuilder2_RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer) (This)->lpVtbl->RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer)
   6939 #define ICaptureGraphBuilder2_ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie) (This)->lpVtbl->ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie)
   6940 #define ICaptureGraphBuilder2_AllocCapFile(This,lpstr,dwlSize) (This)->lpVtbl->AllocCapFile(This,lpstr,dwlSize)
   6941 #define ICaptureGraphBuilder2_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback) (This)->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)
   6942 #define ICaptureGraphBuilder2_FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin) (This)->lpVtbl->FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin)
   6943 #else
   6944 /*** IUnknown methods ***/
   6945 static FORCEINLINE HRESULT ICaptureGraphBuilder2_QueryInterface(ICaptureGraphBuilder2* This,REFIID riid,void **ppvObject) {
   6946     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6947 }
   6948 static FORCEINLINE ULONG ICaptureGraphBuilder2_AddRef(ICaptureGraphBuilder2* This) {
   6949     return This->lpVtbl->AddRef(This);
   6950 }
   6951 static FORCEINLINE ULONG ICaptureGraphBuilder2_Release(ICaptureGraphBuilder2* This) {
   6952     return This->lpVtbl->Release(This);
   6953 }
   6954 /*** ICaptureGraphBuilder2 methods ***/
   6955 static FORCEINLINE HRESULT ICaptureGraphBuilder2_SetFiltergraph(ICaptureGraphBuilder2* This,IGraphBuilder *pfg) {
   6956     return This->lpVtbl->SetFiltergraph(This,pfg);
   6957 }
   6958 static FORCEINLINE HRESULT ICaptureGraphBuilder2_GetFiltergraph(ICaptureGraphBuilder2* This,IGraphBuilder **ppfg) {
   6959     return This->lpVtbl->GetFiltergraph(This,ppfg);
   6960 }
   6961 static FORCEINLINE HRESULT ICaptureGraphBuilder2_SetOutputFileName(ICaptureGraphBuilder2* This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink) {
   6962     return This->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink);
   6963 }
   6964 static FORCEINLINE HRESULT ICaptureGraphBuilder2_FindInterface(ICaptureGraphBuilder2* This,const GUID *pCategory,const GUID *pType,IBaseFilter *pf,REFIID riid,void **ppint) {
   6965     return This->lpVtbl->FindInterface(This,pCategory,pType,pf,riid,ppint);
   6966 }
   6967 static FORCEINLINE HRESULT ICaptureGraphBuilder2_RenderStream(ICaptureGraphBuilder2* This,const GUID *pCategory,const GUID *pType,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer) {
   6968     return This->lpVtbl->RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer);
   6969 }
   6970 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) {
   6971     return This->lpVtbl->ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie);
   6972 }
   6973 static FORCEINLINE HRESULT ICaptureGraphBuilder2_AllocCapFile(ICaptureGraphBuilder2* This,LPCOLESTR lpstr,DWORDLONG dwlSize) {
   6974     return This->lpVtbl->AllocCapFile(This,lpstr,dwlSize);
   6975 }
   6976 static FORCEINLINE HRESULT ICaptureGraphBuilder2_CopyCaptureFile(ICaptureGraphBuilder2* This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback) {
   6977     return This->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback);
   6978 }
   6979 static FORCEINLINE HRESULT ICaptureGraphBuilder2_FindPin(ICaptureGraphBuilder2* This,IUnknown *pSource,PIN_DIRECTION pindir,const GUID *pCategory,const GUID *pType,WINBOOL fUnconnected,int num,IPin **ppPin) {
   6980     return This->lpVtbl->FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin);
   6981 }
   6982 #endif
   6983 #endif
   6984 
   6985 #endif
   6986 
   6987 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_SetFiltergraph_Proxy(
   6988     ICaptureGraphBuilder2* This,
   6989     IGraphBuilder *pfg);
   6990 void __RPC_STUB ICaptureGraphBuilder2_SetFiltergraph_Stub(
   6991     IRpcStubBuffer* This,
   6992     IRpcChannelBuffer* pRpcChannelBuffer,
   6993     PRPC_MESSAGE pRpcMessage,
   6994     DWORD* pdwStubPhase);
   6995 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_GetFiltergraph_Proxy(
   6996     ICaptureGraphBuilder2* This,
   6997     IGraphBuilder **ppfg);
   6998 void __RPC_STUB ICaptureGraphBuilder2_GetFiltergraph_Stub(
   6999     IRpcStubBuffer* This,
   7000     IRpcChannelBuffer* pRpcChannelBuffer,
   7001     PRPC_MESSAGE pRpcMessage,
   7002     DWORD* pdwStubPhase);
   7003 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_SetOutputFileName_Proxy(
   7004     ICaptureGraphBuilder2* This,
   7005     const GUID *pType,
   7006     LPCOLESTR lpstrFile,
   7007     IBaseFilter **ppf,
   7008     IFileSinkFilter **ppSink);
   7009 void __RPC_STUB ICaptureGraphBuilder2_SetOutputFileName_Stub(
   7010     IRpcStubBuffer* This,
   7011     IRpcChannelBuffer* pRpcChannelBuffer,
   7012     PRPC_MESSAGE pRpcMessage,
   7013     DWORD* pdwStubPhase);
   7014 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_RemoteFindInterface_Proxy(
   7015     ICaptureGraphBuilder2* This,
   7016     const GUID *pCategory,
   7017     const GUID *pType,
   7018     IBaseFilter *pf,
   7019     REFIID riid,
   7020     IUnknown **ppint);
   7021 void __RPC_STUB ICaptureGraphBuilder2_RemoteFindInterface_Stub(
   7022     IRpcStubBuffer* This,
   7023     IRpcChannelBuffer* pRpcChannelBuffer,
   7024     PRPC_MESSAGE pRpcMessage,
   7025     DWORD* pdwStubPhase);
   7026 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_RenderStream_Proxy(
   7027     ICaptureGraphBuilder2* This,
   7028     const GUID *pCategory,
   7029     const GUID *pType,
   7030     IUnknown *pSource,
   7031     IBaseFilter *pfCompressor,
   7032     IBaseFilter *pfRenderer);
   7033 void __RPC_STUB ICaptureGraphBuilder2_RenderStream_Stub(
   7034     IRpcStubBuffer* This,
   7035     IRpcChannelBuffer* pRpcChannelBuffer,
   7036     PRPC_MESSAGE pRpcMessage,
   7037     DWORD* pdwStubPhase);
   7038 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_ControlStream_Proxy(
   7039     ICaptureGraphBuilder2* This,
   7040     const GUID *pCategory,
   7041     const GUID *pType,
   7042     IBaseFilter *pFilter,
   7043     REFERENCE_TIME *pstart,
   7044     REFERENCE_TIME *pstop,
   7045     WORD wStartCookie,
   7046     WORD wStopCookie);
   7047 void __RPC_STUB ICaptureGraphBuilder2_ControlStream_Stub(
   7048     IRpcStubBuffer* This,
   7049     IRpcChannelBuffer* pRpcChannelBuffer,
   7050     PRPC_MESSAGE pRpcMessage,
   7051     DWORD* pdwStubPhase);
   7052 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_AllocCapFile_Proxy(
   7053     ICaptureGraphBuilder2* This,
   7054     LPCOLESTR lpstr,
   7055     DWORDLONG dwlSize);
   7056 void __RPC_STUB ICaptureGraphBuilder2_AllocCapFile_Stub(
   7057     IRpcStubBuffer* This,
   7058     IRpcChannelBuffer* pRpcChannelBuffer,
   7059     PRPC_MESSAGE pRpcMessage,
   7060     DWORD* pdwStubPhase);
   7061 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_CopyCaptureFile_Proxy(
   7062     ICaptureGraphBuilder2* This,
   7063     LPOLESTR lpwstrOld,
   7064     LPOLESTR lpwstrNew,
   7065     int fAllowEscAbort,
   7066     IAMCopyCaptureFileProgress *pCallback);
   7067 void __RPC_STUB ICaptureGraphBuilder2_CopyCaptureFile_Stub(
   7068     IRpcStubBuffer* This,
   7069     IRpcChannelBuffer* pRpcChannelBuffer,
   7070     PRPC_MESSAGE pRpcMessage,
   7071     DWORD* pdwStubPhase);
   7072 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_FindPin_Proxy(
   7073     ICaptureGraphBuilder2* This,
   7074     IUnknown *pSource,
   7075     PIN_DIRECTION pindir,
   7076     const GUID *pCategory,
   7077     const GUID *pType,
   7078     WINBOOL fUnconnected,
   7079     int num,
   7080     IPin **ppPin);
   7081 void __RPC_STUB ICaptureGraphBuilder2_FindPin_Stub(
   7082     IRpcStubBuffer* This,
   7083     IRpcChannelBuffer* pRpcChannelBuffer,
   7084     PRPC_MESSAGE pRpcMessage,
   7085     DWORD* pdwStubPhase);
   7086 HRESULT CALLBACK ICaptureGraphBuilder2_FindInterface_Proxy(
   7087     ICaptureGraphBuilder2* This,
   7088     const GUID *pCategory,
   7089     const GUID *pType,
   7090     IBaseFilter *pf,
   7091     REFIID riid,
   7092     void **ppint);
   7093 HRESULT __RPC_STUB ICaptureGraphBuilder2_FindInterface_Stub(
   7094     ICaptureGraphBuilder2* This,
   7095     const GUID *pCategory,
   7096     const GUID *pType,
   7097     IBaseFilter *pf,
   7098     REFIID riid,
   7099     IUnknown **ppint);
   7100 
   7101 #endif  /* __ICaptureGraphBuilder2_INTERFACE_DEFINED__ */
   7102 
   7103 enum _AM_RENSDEREXFLAGS {
   7104     AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x1
   7105 };
   7106 
   7107 /*****************************************************************************
   7108  * IFilterGraph2 interface
   7109  */
   7110 #ifndef __IFilterGraph2_INTERFACE_DEFINED__
   7111 #define __IFilterGraph2_INTERFACE_DEFINED__
   7112 
   7113 DEFINE_GUID(IID_IFilterGraph2, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
   7114 #if defined(__cplusplus) && !defined(CINTERFACE)
   7115 MIDL_INTERFACE("36b73882-c2c8-11cf-8b46-00805f6cef60")
   7116 IFilterGraph2 : public IGraphBuilder
   7117 {
   7118     virtual HRESULT STDMETHODCALLTYPE AddSourceFilterForMoniker(
   7119         IMoniker *pMoniker,
   7120         IBindCtx *pCtx,
   7121         LPCWSTR lpcwstrFilterName,
   7122         IBaseFilter **ppFilter) = 0;
   7123 
   7124     virtual HRESULT STDMETHODCALLTYPE ReconnectEx(
   7125         IPin *ppin,
   7126         const AM_MEDIA_TYPE *pmt) = 0;
   7127 
   7128     virtual HRESULT STDMETHODCALLTYPE RenderEx(
   7129         IPin *pPinOut,
   7130         DWORD dwFlags,
   7131         DWORD *pvContext) = 0;
   7132 
   7133 };
   7134 #ifdef __CRT_UUID_DECL
   7135 __CRT_UUID_DECL(IFilterGraph2, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
   7136 #endif
   7137 #else
   7138 typedef struct IFilterGraph2Vtbl {
   7139     BEGIN_INTERFACE
   7140 
   7141     /*** IUnknown methods ***/
   7142     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7143         IFilterGraph2* This,
   7144         REFIID riid,
   7145         void **ppvObject);
   7146 
   7147     ULONG (STDMETHODCALLTYPE *AddRef)(
   7148         IFilterGraph2* This);
   7149 
   7150     ULONG (STDMETHODCALLTYPE *Release)(
   7151         IFilterGraph2* This);
   7152 
   7153     /*** IFilterGraph methods ***/
   7154     HRESULT (STDMETHODCALLTYPE *AddFilter)(
   7155         IFilterGraph2* This,
   7156         IBaseFilter *pFilter,
   7157         LPCWSTR pName);
   7158 
   7159     HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
   7160         IFilterGraph2* This,
   7161         IBaseFilter *pFilter);
   7162 
   7163     HRESULT (STDMETHODCALLTYPE *EnumFilters)(
   7164         IFilterGraph2* This,
   7165         IEnumFilters **ppEnum);
   7166 
   7167     HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
   7168         IFilterGraph2* This,
   7169         LPCWSTR pName,
   7170         IBaseFilter **ppFilter);
   7171 
   7172     HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
   7173         IFilterGraph2* This,
   7174         IPin *ppinOut,
   7175         IPin *ppinIn,
   7176         const AM_MEDIA_TYPE *pmt);
   7177 
   7178     HRESULT (STDMETHODCALLTYPE *Reconnect)(
   7179         IFilterGraph2* This,
   7180         IPin *ppin);
   7181 
   7182     HRESULT (STDMETHODCALLTYPE *Disconnect)(
   7183         IFilterGraph2* This,
   7184         IPin *ppin);
   7185 
   7186     HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
   7187         IFilterGraph2* This);
   7188 
   7189     /*** IGraphBuilder methods ***/
   7190     HRESULT (STDMETHODCALLTYPE *Connect)(
   7191         IFilterGraph2* This,
   7192         IPin *ppinOut,
   7193         IPin *ppinIn);
   7194 
   7195     HRESULT (STDMETHODCALLTYPE *Render)(
   7196         IFilterGraph2* This,
   7197         IPin *ppinOut);
   7198 
   7199     HRESULT (STDMETHODCALLTYPE *RenderFile)(
   7200         IFilterGraph2* This,
   7201         LPCWSTR lpcwstrFile,
   7202         LPCWSTR lpcwstrPlayList);
   7203 
   7204     HRESULT (STDMETHODCALLTYPE *AddSourceFilter)(
   7205         IFilterGraph2* This,
   7206         LPCWSTR lpcwstrFileName,
   7207         LPCWSTR lpcwstrFilterName,
   7208         IBaseFilter **ppFilter);
   7209 
   7210     HRESULT (STDMETHODCALLTYPE *SetLogFile)(
   7211         IFilterGraph2* This,
   7212         DWORD_PTR hFile);
   7213 
   7214     HRESULT (STDMETHODCALLTYPE *Abort)(
   7215         IFilterGraph2* This);
   7216 
   7217     HRESULT (STDMETHODCALLTYPE *ShouldOperationContinue)(
   7218         IFilterGraph2* This);
   7219 
   7220     /*** IFilterGraph2 methods ***/
   7221     HRESULT (STDMETHODCALLTYPE *AddSourceFilterForMoniker)(
   7222         IFilterGraph2* This,
   7223         IMoniker *pMoniker,
   7224         IBindCtx *pCtx,
   7225         LPCWSTR lpcwstrFilterName,
   7226         IBaseFilter **ppFilter);
   7227 
   7228     HRESULT (STDMETHODCALLTYPE *ReconnectEx)(
   7229         IFilterGraph2* This,
   7230         IPin *ppin,
   7231         const AM_MEDIA_TYPE *pmt);
   7232 
   7233     HRESULT (STDMETHODCALLTYPE *RenderEx)(
   7234         IFilterGraph2* This,
   7235         IPin *pPinOut,
   7236         DWORD dwFlags,
   7237         DWORD *pvContext);
   7238 
   7239     END_INTERFACE
   7240 } IFilterGraph2Vtbl;
   7241 interface IFilterGraph2 {
   7242     CONST_VTBL IFilterGraph2Vtbl* lpVtbl;
   7243 };
   7244 
   7245 #ifdef COBJMACROS
   7246 #ifndef WIDL_C_INLINE_WRAPPERS
   7247 /*** IUnknown methods ***/
   7248 #define IFilterGraph2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7249 #define IFilterGraph2_AddRef(This) (This)->lpVtbl->AddRef(This)
   7250 #define IFilterGraph2_Release(This) (This)->lpVtbl->Release(This)
   7251 /*** IFilterGraph methods ***/
   7252 #define IFilterGraph2_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
   7253 #define IFilterGraph2_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
   7254 #define IFilterGraph2_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
   7255 #define IFilterGraph2_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
   7256 #define IFilterGraph2_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
   7257 #define IFilterGraph2_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
   7258 #define IFilterGraph2_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
   7259 #define IFilterGraph2_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
   7260 /*** IGraphBuilder methods ***/
   7261 #define IFilterGraph2_Connect(This,ppinOut,ppinIn) (This)->lpVtbl->Connect(This,ppinOut,ppinIn)
   7262 #define IFilterGraph2_Render(This,ppinOut) (This)->lpVtbl->Render(This,ppinOut)
   7263 #define IFilterGraph2_RenderFile(This,lpcwstrFile,lpcwstrPlayList) (This)->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList)
   7264 #define IFilterGraph2_AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter)
   7265 #define IFilterGraph2_SetLogFile(This,hFile) (This)->lpVtbl->SetLogFile(This,hFile)
   7266 #define IFilterGraph2_Abort(This) (This)->lpVtbl->Abort(This)
   7267 #define IFilterGraph2_ShouldOperationContinue(This) (This)->lpVtbl->ShouldOperationContinue(This)
   7268 /*** IFilterGraph2 methods ***/
   7269 #define IFilterGraph2_AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter)
   7270 #define IFilterGraph2_ReconnectEx(This,ppin,pmt) (This)->lpVtbl->ReconnectEx(This,ppin,pmt)
   7271 #define IFilterGraph2_RenderEx(This,pPinOut,dwFlags,pvContext) (This)->lpVtbl->RenderEx(This,pPinOut,dwFlags,pvContext)
   7272 #else
   7273 /*** IUnknown methods ***/
   7274 static FORCEINLINE HRESULT IFilterGraph2_QueryInterface(IFilterGraph2* This,REFIID riid,void **ppvObject) {
   7275     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7276 }
   7277 static FORCEINLINE ULONG IFilterGraph2_AddRef(IFilterGraph2* This) {
   7278     return This->lpVtbl->AddRef(This);
   7279 }
   7280 static FORCEINLINE ULONG IFilterGraph2_Release(IFilterGraph2* This) {
   7281     return This->lpVtbl->Release(This);
   7282 }
   7283 /*** IFilterGraph methods ***/
   7284 static FORCEINLINE HRESULT IFilterGraph2_AddFilter(IFilterGraph2* This,IBaseFilter *pFilter,LPCWSTR pName) {
   7285     return This->lpVtbl->AddFilter(This,pFilter,pName);
   7286 }
   7287 static FORCEINLINE HRESULT IFilterGraph2_RemoveFilter(IFilterGraph2* This,IBaseFilter *pFilter) {
   7288     return This->lpVtbl->RemoveFilter(This,pFilter);
   7289 }
   7290 static FORCEINLINE HRESULT IFilterGraph2_EnumFilters(IFilterGraph2* This,IEnumFilters **ppEnum) {
   7291     return This->lpVtbl->EnumFilters(This,ppEnum);
   7292 }
   7293 static FORCEINLINE HRESULT IFilterGraph2_FindFilterByName(IFilterGraph2* This,LPCWSTR pName,IBaseFilter **ppFilter) {
   7294     return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
   7295 }
   7296 static FORCEINLINE HRESULT IFilterGraph2_ConnectDirect(IFilterGraph2* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) {
   7297     return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt);
   7298 }
   7299 static FORCEINLINE HRESULT IFilterGraph2_Reconnect(IFilterGraph2* This,IPin *ppin) {
   7300     return This->lpVtbl->Reconnect(This,ppin);
   7301 }
   7302 static FORCEINLINE HRESULT IFilterGraph2_Disconnect(IFilterGraph2* This,IPin *ppin) {
   7303     return This->lpVtbl->Disconnect(This,ppin);
   7304 }
   7305 static FORCEINLINE HRESULT IFilterGraph2_SetDefaultSyncSource(IFilterGraph2* This) {
   7306     return This->lpVtbl->SetDefaultSyncSource(This);
   7307 }
   7308 /*** IGraphBuilder methods ***/
   7309 static FORCEINLINE HRESULT IFilterGrap