zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

strmif.h (746026B) - Raw


      1 /*** Autogenerated by WIDL 10.4 from include/strmif.idl - Do not edit ***/
      2 
      3 #ifdef _WIN32
      4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      6 #endif
      7 #include <rpc.h>
      8 #include <rpcndr.h>
      9 #endif
     10 
     11 #ifndef COM_NO_WINDOWS_H
     12 #include <windows.h>
     13 #include <ole2.h>
     14 #endif
     15 
     16 #ifndef __strmif_h__
     17 #define __strmif_h__
     18 
     19 /* Forward declarations */
     20 
     21 #ifndef __ICreateDevEnum_FWD_DEFINED__
     22 #define __ICreateDevEnum_FWD_DEFINED__
     23 typedef interface ICreateDevEnum ICreateDevEnum;
     24 #ifdef __cplusplus
     25 interface ICreateDevEnum;
     26 #endif /* __cplusplus */
     27 #endif
     28 
     29 #ifndef __IPin_FWD_DEFINED__
     30 #define __IPin_FWD_DEFINED__
     31 typedef interface IPin IPin;
     32 #ifdef __cplusplus
     33 interface IPin;
     34 #endif /* __cplusplus */
     35 #endif
     36 
     37 #ifndef __IEnumPins_FWD_DEFINED__
     38 #define __IEnumPins_FWD_DEFINED__
     39 typedef interface IEnumPins IEnumPins;
     40 #ifdef __cplusplus
     41 interface IEnumPins;
     42 #endif /* __cplusplus */
     43 #endif
     44 
     45 #ifndef __IEnumMediaTypes_FWD_DEFINED__
     46 #define __IEnumMediaTypes_FWD_DEFINED__
     47 typedef interface IEnumMediaTypes IEnumMediaTypes;
     48 #ifdef __cplusplus
     49 interface IEnumMediaTypes;
     50 #endif /* __cplusplus */
     51 #endif
     52 
     53 #ifndef __IFilterGraph_FWD_DEFINED__
     54 #define __IFilterGraph_FWD_DEFINED__
     55 typedef interface IFilterGraph IFilterGraph;
     56 #ifdef __cplusplus
     57 interface IFilterGraph;
     58 #endif /* __cplusplus */
     59 #endif
     60 
     61 #ifndef __IEnumFilters_FWD_DEFINED__
     62 #define __IEnumFilters_FWD_DEFINED__
     63 typedef interface IEnumFilters IEnumFilters;
     64 #ifdef __cplusplus
     65 interface IEnumFilters;
     66 #endif /* __cplusplus */
     67 #endif
     68 
     69 #ifndef __IMediaFilter_FWD_DEFINED__
     70 #define __IMediaFilter_FWD_DEFINED__
     71 typedef interface IMediaFilter IMediaFilter;
     72 #ifdef __cplusplus
     73 interface IMediaFilter;
     74 #endif /* __cplusplus */
     75 #endif
     76 
     77 #ifndef __IBaseFilter_FWD_DEFINED__
     78 #define __IBaseFilter_FWD_DEFINED__
     79 typedef interface IBaseFilter IBaseFilter;
     80 #ifdef __cplusplus
     81 interface IBaseFilter;
     82 #endif /* __cplusplus */
     83 #endif
     84 
     85 #ifndef __IReferenceClock_FWD_DEFINED__
     86 #define __IReferenceClock_FWD_DEFINED__
     87 typedef interface IReferenceClock IReferenceClock;
     88 #ifdef __cplusplus
     89 interface IReferenceClock;
     90 #endif /* __cplusplus */
     91 #endif
     92 
     93 #ifndef __IReferenceClockTimerControl_FWD_DEFINED__
     94 #define __IReferenceClockTimerControl_FWD_DEFINED__
     95 typedef interface IReferenceClockTimerControl IReferenceClockTimerControl;
     96 #ifdef __cplusplus
     97 interface IReferenceClockTimerControl;
     98 #endif /* __cplusplus */
     99 #endif
    100 
    101 #ifndef __IReferenceClock2_FWD_DEFINED__
    102 #define __IReferenceClock2_FWD_DEFINED__
    103 typedef interface IReferenceClock2 IReferenceClock2;
    104 #ifdef __cplusplus
    105 interface IReferenceClock2;
    106 #endif /* __cplusplus */
    107 #endif
    108 
    109 #ifndef __IMediaSample_FWD_DEFINED__
    110 #define __IMediaSample_FWD_DEFINED__
    111 typedef interface IMediaSample IMediaSample;
    112 #ifdef __cplusplus
    113 interface IMediaSample;
    114 #endif /* __cplusplus */
    115 #endif
    116 
    117 #ifndef __IMediaSample2_FWD_DEFINED__
    118 #define __IMediaSample2_FWD_DEFINED__
    119 typedef interface IMediaSample2 IMediaSample2;
    120 #ifdef __cplusplus
    121 interface IMediaSample2;
    122 #endif /* __cplusplus */
    123 #endif
    124 
    125 #ifndef __IMediaSample2Config_FWD_DEFINED__
    126 #define __IMediaSample2Config_FWD_DEFINED__
    127 typedef interface IMediaSample2Config IMediaSample2Config;
    128 #ifdef __cplusplus
    129 interface IMediaSample2Config;
    130 #endif /* __cplusplus */
    131 #endif
    132 
    133 #ifndef __IMemAllocator_FWD_DEFINED__
    134 #define __IMemAllocator_FWD_DEFINED__
    135 typedef interface IMemAllocator IMemAllocator;
    136 #ifdef __cplusplus
    137 interface IMemAllocator;
    138 #endif /* __cplusplus */
    139 #endif
    140 
    141 #ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__
    142 #define __IMemAllocatorCallbackTemp_FWD_DEFINED__
    143 typedef interface IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp;
    144 #ifdef __cplusplus
    145 interface IMemAllocatorCallbackTemp;
    146 #endif /* __cplusplus */
    147 #endif
    148 
    149 #ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
    150 #define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
    151 typedef interface IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp;
    152 #ifdef __cplusplus
    153 interface IMemAllocatorNotifyCallbackTemp;
    154 #endif /* __cplusplus */
    155 #endif
    156 
    157 #ifndef __IMemInputPin_FWD_DEFINED__
    158 #define __IMemInputPin_FWD_DEFINED__
    159 typedef interface IMemInputPin IMemInputPin;
    160 #ifdef __cplusplus
    161 interface IMemInputPin;
    162 #endif /* __cplusplus */
    163 #endif
    164 
    165 #ifndef __IAMovieSetup_FWD_DEFINED__
    166 #define __IAMovieSetup_FWD_DEFINED__
    167 typedef interface IAMovieSetup IAMovieSetup;
    168 #ifdef __cplusplus
    169 interface IAMovieSetup;
    170 #endif /* __cplusplus */
    171 #endif
    172 
    173 #ifndef __IMediaSeeking_FWD_DEFINED__
    174 #define __IMediaSeeking_FWD_DEFINED__
    175 typedef interface IMediaSeeking IMediaSeeking;
    176 #ifdef __cplusplus
    177 interface IMediaSeeking;
    178 #endif /* __cplusplus */
    179 #endif
    180 
    181 #ifndef __IEnumRegFilters_FWD_DEFINED__
    182 #define __IEnumRegFilters_FWD_DEFINED__
    183 typedef interface IEnumRegFilters IEnumRegFilters;
    184 #ifdef __cplusplus
    185 interface IEnumRegFilters;
    186 #endif /* __cplusplus */
    187 #endif
    188 
    189 #ifndef __IFilterMapper_FWD_DEFINED__
    190 #define __IFilterMapper_FWD_DEFINED__
    191 typedef interface IFilterMapper IFilterMapper;
    192 #ifdef __cplusplus
    193 interface IFilterMapper;
    194 #endif /* __cplusplus */
    195 #endif
    196 
    197 #ifndef __IFilterMapper2_FWD_DEFINED__
    198 #define __IFilterMapper2_FWD_DEFINED__
    199 typedef interface IFilterMapper2 IFilterMapper2;
    200 #ifdef __cplusplus
    201 interface IFilterMapper2;
    202 #endif /* __cplusplus */
    203 #endif
    204 
    205 #ifndef __IFilterMapper3_FWD_DEFINED__
    206 #define __IFilterMapper3_FWD_DEFINED__
    207 typedef interface IFilterMapper3 IFilterMapper3;
    208 #ifdef __cplusplus
    209 interface IFilterMapper3;
    210 #endif /* __cplusplus */
    211 #endif
    212 
    213 #ifndef __IQualityControl_FWD_DEFINED__
    214 #define __IQualityControl_FWD_DEFINED__
    215 typedef interface IQualityControl IQualityControl;
    216 #ifdef __cplusplus
    217 interface IQualityControl;
    218 #endif /* __cplusplus */
    219 #endif
    220 
    221 #ifndef __IOverlayNotify_FWD_DEFINED__
    222 #define __IOverlayNotify_FWD_DEFINED__
    223 typedef interface IOverlayNotify IOverlayNotify;
    224 #ifdef __cplusplus
    225 interface IOverlayNotify;
    226 #endif /* __cplusplus */
    227 #endif
    228 
    229 #ifndef __IOverlayNotify2_FWD_DEFINED__
    230 #define __IOverlayNotify2_FWD_DEFINED__
    231 typedef interface IOverlayNotify2 IOverlayNotify2;
    232 #ifdef __cplusplus
    233 interface IOverlayNotify2;
    234 #endif /* __cplusplus */
    235 #endif
    236 
    237 #ifndef __IOverlay_FWD_DEFINED__
    238 #define __IOverlay_FWD_DEFINED__
    239 typedef interface IOverlay IOverlay;
    240 #ifdef __cplusplus
    241 interface IOverlay;
    242 #endif /* __cplusplus */
    243 #endif
    244 
    245 #ifndef __IMediaEventSink_FWD_DEFINED__
    246 #define __IMediaEventSink_FWD_DEFINED__
    247 typedef interface IMediaEventSink IMediaEventSink;
    248 #ifdef __cplusplus
    249 interface IMediaEventSink;
    250 #endif /* __cplusplus */
    251 #endif
    252 
    253 #ifndef __IFileSourceFilter_FWD_DEFINED__
    254 #define __IFileSourceFilter_FWD_DEFINED__
    255 typedef interface IFileSourceFilter IFileSourceFilter;
    256 #ifdef __cplusplus
    257 interface IFileSourceFilter;
    258 #endif /* __cplusplus */
    259 #endif
    260 
    261 #ifndef __IFileSinkFilter_FWD_DEFINED__
    262 #define __IFileSinkFilter_FWD_DEFINED__
    263 typedef interface IFileSinkFilter IFileSinkFilter;
    264 #ifdef __cplusplus
    265 interface IFileSinkFilter;
    266 #endif /* __cplusplus */
    267 #endif
    268 
    269 #ifndef __IFileSinkFilter2_FWD_DEFINED__
    270 #define __IFileSinkFilter2_FWD_DEFINED__
    271 typedef interface IFileSinkFilter2 IFileSinkFilter2;
    272 #ifdef __cplusplus
    273 interface IFileSinkFilter2;
    274 #endif /* __cplusplus */
    275 #endif
    276 
    277 #ifndef __IGraphBuilder_FWD_DEFINED__
    278 #define __IGraphBuilder_FWD_DEFINED__
    279 typedef interface IGraphBuilder IGraphBuilder;
    280 #ifdef __cplusplus
    281 interface IGraphBuilder;
    282 #endif /* __cplusplus */
    283 #endif
    284 
    285 #ifndef __ICaptureGraphBuilder_FWD_DEFINED__
    286 #define __ICaptureGraphBuilder_FWD_DEFINED__
    287 typedef interface ICaptureGraphBuilder ICaptureGraphBuilder;
    288 #ifdef __cplusplus
    289 interface ICaptureGraphBuilder;
    290 #endif /* __cplusplus */
    291 #endif
    292 
    293 #ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__
    294 #define __IAMCopyCaptureFileProgress_FWD_DEFINED__
    295 typedef interface IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
    296 #ifdef __cplusplus
    297 interface IAMCopyCaptureFileProgress;
    298 #endif /* __cplusplus */
    299 #endif
    300 
    301 #ifndef __ICaptureGraphBuilder2_FWD_DEFINED__
    302 #define __ICaptureGraphBuilder2_FWD_DEFINED__
    303 typedef interface ICaptureGraphBuilder2 ICaptureGraphBuilder2;
    304 #ifdef __cplusplus
    305 interface ICaptureGraphBuilder2;
    306 #endif /* __cplusplus */
    307 #endif
    308 
    309 #ifndef __IConfigAviMux_FWD_DEFINED__
    310 #define __IConfigAviMux_FWD_DEFINED__
    311 typedef interface IConfigAviMux IConfigAviMux;
    312 #ifdef __cplusplus
    313 interface IConfigAviMux;
    314 #endif /* __cplusplus */
    315 #endif
    316 
    317 #ifndef __IConfigInterleaving_FWD_DEFINED__
    318 #define __IConfigInterleaving_FWD_DEFINED__
    319 typedef interface IConfigInterleaving IConfigInterleaving;
    320 #ifdef __cplusplus
    321 interface IConfigInterleaving;
    322 #endif /* __cplusplus */
    323 #endif
    324 
    325 #ifndef __IAMClockSlave_FWD_DEFINED__
    326 #define __IAMClockSlave_FWD_DEFINED__
    327 typedef interface IAMClockSlave IAMClockSlave;
    328 #ifdef __cplusplus
    329 interface IAMClockSlave;
    330 #endif /* __cplusplus */
    331 #endif
    332 
    333 #ifndef __IAMCertifiedOutputProtection_FWD_DEFINED__
    334 #define __IAMCertifiedOutputProtection_FWD_DEFINED__
    335 typedef interface IAMCertifiedOutputProtection IAMCertifiedOutputProtection;
    336 #ifdef __cplusplus
    337 interface IAMCertifiedOutputProtection;
    338 #endif /* __cplusplus */
    339 #endif
    340 
    341 #ifndef __IFilterGraph2_FWD_DEFINED__
    342 #define __IFilterGraph2_FWD_DEFINED__
    343 typedef interface IFilterGraph2 IFilterGraph2;
    344 #ifdef __cplusplus
    345 interface IFilterGraph2;
    346 #endif /* __cplusplus */
    347 #endif
    348 
    349 #ifndef __IStreamBuilder_FWD_DEFINED__
    350 #define __IStreamBuilder_FWD_DEFINED__
    351 typedef interface IStreamBuilder IStreamBuilder;
    352 #ifdef __cplusplus
    353 interface IStreamBuilder;
    354 #endif /* __cplusplus */
    355 #endif
    356 
    357 #ifndef __IAMStreamConfig_FWD_DEFINED__
    358 #define __IAMStreamConfig_FWD_DEFINED__
    359 typedef interface IAMStreamConfig IAMStreamConfig;
    360 #ifdef __cplusplus
    361 interface IAMStreamConfig;
    362 #endif /* __cplusplus */
    363 #endif
    364 
    365 #ifndef __IAMVideoProcAmp_FWD_DEFINED__
    366 #define __IAMVideoProcAmp_FWD_DEFINED__
    367 typedef interface IAMVideoProcAmp IAMVideoProcAmp;
    368 #ifdef __cplusplus
    369 interface IAMVideoProcAmp;
    370 #endif /* __cplusplus */
    371 #endif
    372 
    373 #ifndef __IAsyncReader_FWD_DEFINED__
    374 #define __IAsyncReader_FWD_DEFINED__
    375 typedef interface IAsyncReader IAsyncReader;
    376 #ifdef __cplusplus
    377 interface IAsyncReader;
    378 #endif /* __cplusplus */
    379 #endif
    380 
    381 #ifndef __IGraphVersion_FWD_DEFINED__
    382 #define __IGraphVersion_FWD_DEFINED__
    383 typedef interface IGraphVersion IGraphVersion;
    384 #ifdef __cplusplus
    385 interface IGraphVersion;
    386 #endif /* __cplusplus */
    387 #endif
    388 
    389 #ifndef __IResourceConsumer_FWD_DEFINED__
    390 #define __IResourceConsumer_FWD_DEFINED__
    391 typedef interface IResourceConsumer IResourceConsumer;
    392 #ifdef __cplusplus
    393 interface IResourceConsumer;
    394 #endif /* __cplusplus */
    395 #endif
    396 
    397 #ifndef __IResourceManager_FWD_DEFINED__
    398 #define __IResourceManager_FWD_DEFINED__
    399 typedef interface IResourceManager IResourceManager;
    400 #ifdef __cplusplus
    401 interface IResourceManager;
    402 #endif /* __cplusplus */
    403 #endif
    404 
    405 #ifndef __IAMStreamControl_FWD_DEFINED__
    406 #define __IAMStreamControl_FWD_DEFINED__
    407 typedef interface IAMStreamControl IAMStreamControl;
    408 #ifdef __cplusplus
    409 interface IAMStreamControl;
    410 #endif /* __cplusplus */
    411 #endif
    412 
    413 #ifndef __IKsPropertySet_FWD_DEFINED__
    414 #define __IKsPropertySet_FWD_DEFINED__
    415 typedef interface IKsPropertySet IKsPropertySet;
    416 #ifdef __cplusplus
    417 interface IKsPropertySet;
    418 #endif /* __cplusplus */
    419 #endif
    420 
    421 #ifndef __IMediaPropertyBag_FWD_DEFINED__
    422 #define __IMediaPropertyBag_FWD_DEFINED__
    423 typedef interface IMediaPropertyBag IMediaPropertyBag;
    424 #ifdef __cplusplus
    425 interface IMediaPropertyBag;
    426 #endif /* __cplusplus */
    427 #endif
    428 
    429 #ifndef __IPersistMediaPropertyBag_FWD_DEFINED__
    430 #define __IPersistMediaPropertyBag_FWD_DEFINED__
    431 typedef interface IPersistMediaPropertyBag IPersistMediaPropertyBag;
    432 #ifdef __cplusplus
    433 interface IPersistMediaPropertyBag;
    434 #endif /* __cplusplus */
    435 #endif
    436 
    437 #ifndef __ISeekingPassThru_FWD_DEFINED__
    438 #define __ISeekingPassThru_FWD_DEFINED__
    439 typedef interface ISeekingPassThru ISeekingPassThru;
    440 #ifdef __cplusplus
    441 interface ISeekingPassThru;
    442 #endif /* __cplusplus */
    443 #endif
    444 
    445 #ifndef __IAMFilterMiscFlags_FWD_DEFINED__
    446 #define __IAMFilterMiscFlags_FWD_DEFINED__
    447 typedef interface IAMFilterMiscFlags IAMFilterMiscFlags;
    448 #ifdef __cplusplus
    449 interface IAMFilterMiscFlags;
    450 #endif /* __cplusplus */
    451 #endif
    452 
    453 #ifndef __IAMGraphBuilderCallback_FWD_DEFINED__
    454 #define __IAMGraphBuilderCallback_FWD_DEFINED__
    455 typedef interface IAMGraphBuilderCallback IAMGraphBuilderCallback;
    456 #ifdef __cplusplus
    457 interface IAMGraphBuilderCallback;
    458 #endif /* __cplusplus */
    459 #endif
    460 
    461 #ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__
    462 #define __IAMVfwCaptureDialogs_FWD_DEFINED__
    463 typedef interface IAMVfwCaptureDialogs IAMVfwCaptureDialogs;
    464 #ifdef __cplusplus
    465 interface IAMVfwCaptureDialogs;
    466 #endif /* __cplusplus */
    467 #endif
    468 
    469 #ifndef __IAMCameraControl_FWD_DEFINED__
    470 #define __IAMCameraControl_FWD_DEFINED__
    471 typedef interface IAMCameraControl IAMCameraControl;
    472 #ifdef __cplusplus
    473 interface IAMCameraControl;
    474 #endif /* __cplusplus */
    475 #endif
    476 
    477 #ifndef __IAMVideoControl_FWD_DEFINED__
    478 #define __IAMVideoControl_FWD_DEFINED__
    479 typedef interface IAMVideoControl IAMVideoControl;
    480 #ifdef __cplusplus
    481 interface IAMVideoControl;
    482 #endif /* __cplusplus */
    483 #endif
    484 
    485 #ifndef __IAMBufferNegotiation_FWD_DEFINED__
    486 #define __IAMBufferNegotiation_FWD_DEFINED__
    487 typedef interface IAMBufferNegotiation IAMBufferNegotiation;
    488 #ifdef __cplusplus
    489 interface IAMBufferNegotiation;
    490 #endif /* __cplusplus */
    491 #endif
    492 
    493 #ifndef __IAMDroppedFrames_FWD_DEFINED__
    494 #define __IAMDroppedFrames_FWD_DEFINED__
    495 typedef interface IAMDroppedFrames IAMDroppedFrames;
    496 #ifdef __cplusplus
    497 interface IAMDroppedFrames;
    498 #endif /* __cplusplus */
    499 #endif
    500 
    501 #ifndef __IAMLatency_FWD_DEFINED__
    502 #define __IAMLatency_FWD_DEFINED__
    503 typedef interface IAMLatency IAMLatency;
    504 #ifdef __cplusplus
    505 interface IAMLatency;
    506 #endif /* __cplusplus */
    507 #endif
    508 
    509 #ifndef __IAMPushSource_FWD_DEFINED__
    510 #define __IAMPushSource_FWD_DEFINED__
    511 typedef interface IAMPushSource IAMPushSource;
    512 #ifdef __cplusplus
    513 interface IAMPushSource;
    514 #endif /* __cplusplus */
    515 #endif
    516 
    517 #ifndef __IAMVideoCompression_FWD_DEFINED__
    518 #define __IAMVideoCompression_FWD_DEFINED__
    519 typedef interface IAMVideoCompression IAMVideoCompression;
    520 #ifdef __cplusplus
    521 interface IAMVideoCompression;
    522 #endif /* __cplusplus */
    523 #endif
    524 
    525 #ifndef __IAMCrossbar_FWD_DEFINED__
    526 #define __IAMCrossbar_FWD_DEFINED__
    527 typedef interface IAMCrossbar IAMCrossbar;
    528 #ifdef __cplusplus
    529 interface IAMCrossbar;
    530 #endif /* __cplusplus */
    531 #endif
    532 
    533 #ifndef __IAMTunerNotification_FWD_DEFINED__
    534 #define __IAMTunerNotification_FWD_DEFINED__
    535 typedef interface IAMTunerNotification IAMTunerNotification;
    536 #ifdef __cplusplus
    537 interface IAMTunerNotification;
    538 #endif /* __cplusplus */
    539 #endif
    540 
    541 #ifndef __IAMTuner_FWD_DEFINED__
    542 #define __IAMTuner_FWD_DEFINED__
    543 typedef interface IAMTuner IAMTuner;
    544 #ifdef __cplusplus
    545 interface IAMTuner;
    546 #endif /* __cplusplus */
    547 #endif
    548 
    549 #ifndef __IAMTVTuner_FWD_DEFINED__
    550 #define __IAMTVTuner_FWD_DEFINED__
    551 typedef interface IAMTVTuner IAMTVTuner;
    552 #ifdef __cplusplus
    553 interface IAMTVTuner;
    554 #endif /* __cplusplus */
    555 #endif
    556 
    557 #ifndef __IVideoFrameStep_FWD_DEFINED__
    558 #define __IVideoFrameStep_FWD_DEFINED__
    559 typedef interface IVideoFrameStep IVideoFrameStep;
    560 #ifdef __cplusplus
    561 interface IVideoFrameStep;
    562 #endif /* __cplusplus */
    563 #endif
    564 
    565 #ifndef __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
    566 #define __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
    567 typedef interface IAMAsyncReaderTimestampScaling IAMAsyncReaderTimestampScaling;
    568 #ifdef __cplusplus
    569 interface IAMAsyncReaderTimestampScaling;
    570 #endif /* __cplusplus */
    571 #endif
    572 
    573 #ifndef __IAMPluginControl_FWD_DEFINED__
    574 #define __IAMPluginControl_FWD_DEFINED__
    575 typedef interface IAMPluginControl IAMPluginControl;
    576 #ifdef __cplusplus
    577 interface IAMPluginControl;
    578 #endif /* __cplusplus */
    579 #endif
    580 
    581 #ifndef __IPinConnection_FWD_DEFINED__
    582 #define __IPinConnection_FWD_DEFINED__
    583 typedef interface IPinConnection IPinConnection;
    584 #ifdef __cplusplus
    585 interface IPinConnection;
    586 #endif /* __cplusplus */
    587 #endif
    588 
    589 #ifndef __IPinFlowControl_FWD_DEFINED__
    590 #define __IPinFlowControl_FWD_DEFINED__
    591 typedef interface IPinFlowControl IPinFlowControl;
    592 #ifdef __cplusplus
    593 interface IPinFlowControl;
    594 #endif /* __cplusplus */
    595 #endif
    596 
    597 #ifndef __IGraphConfig_FWD_DEFINED__
    598 #define __IGraphConfig_FWD_DEFINED__
    599 typedef interface IGraphConfig IGraphConfig;
    600 #ifdef __cplusplus
    601 interface IGraphConfig;
    602 #endif /* __cplusplus */
    603 #endif
    604 
    605 #ifndef __IGraphConfigCallback_FWD_DEFINED__
    606 #define __IGraphConfigCallback_FWD_DEFINED__
    607 typedef interface IGraphConfigCallback IGraphConfigCallback;
    608 #ifdef __cplusplus
    609 interface IGraphConfigCallback;
    610 #endif /* __cplusplus */
    611 #endif
    612 
    613 #ifndef __IFilterChain_FWD_DEFINED__
    614 #define __IFilterChain_FWD_DEFINED__
    615 typedef interface IFilterChain IFilterChain;
    616 #ifdef __cplusplus
    617 interface IFilterChain;
    618 #endif /* __cplusplus */
    619 #endif
    620 
    621 /* Headers for imported files */
    622 
    623 #include <unknwn.h>
    624 #include <objidl.h>
    625 #include <oaidl.h>
    626 
    627 #ifdef __cplusplus
    628 extern "C" {
    629 #endif
    630 
    631 /**
    632  * This file is part of the mingw-w64 runtime package.
    633  * No warranty is given; refer to the file DISCLAIMER within this package.
    634  */
    635 
    636 #include <winapifamily.h>
    637 
    638 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
    639 
    640 #define CDEF_CLASS_DEFAULT 0x1
    641 #define CDEF_BYPASS_CLASS_MANAGER 0x2
    642 #define CDEF_MERIT_ABOVE_DO_NOT_USE 0x8
    643 #define CDEF_DEVMON_CMGR_DEVICE 0x10
    644 #define CDEF_DEVMON_DMO 0x20
    645 #define CDEF_DEVMON_PNP_DEVICE 0x40
    646 #define CDEF_DEVMON_FILTER 0x80
    647 
    648 #define CDEF_DEVMON_SELECTIVE_MASK 0xf0
    649 
    650 
    651 /*****************************************************************************
    652  * ICreateDevEnum interface
    653  */
    654 #ifndef __ICreateDevEnum_INTERFACE_DEFINED__
    655 #define __ICreateDevEnum_INTERFACE_DEFINED__
    656 
    657 DEFINE_GUID(IID_ICreateDevEnum, 0x29840822, 0x5b84, 0x11d0, 0xbd,0x3b, 0x00,0xa0,0xc9,0x11,0xce,0x86);
    658 #if defined(__cplusplus) && !defined(CINTERFACE)
    659 MIDL_INTERFACE("29840822-5b84-11d0-bd3b-00a0c911ce86")
    660 ICreateDevEnum : public IUnknown
    661 {
    662     virtual HRESULT STDMETHODCALLTYPE CreateClassEnumerator(
    663         REFCLSID clsidDeviceClass,
    664         IEnumMoniker **ppEnumMoniker,
    665         DWORD dwFlags) = 0;
    666 
    667 };
    668 #ifdef __CRT_UUID_DECL
    669 __CRT_UUID_DECL(ICreateDevEnum, 0x29840822, 0x5b84, 0x11d0, 0xbd,0x3b, 0x00,0xa0,0xc9,0x11,0xce,0x86)
    670 #endif
    671 #else
    672 typedef struct ICreateDevEnumVtbl {
    673     BEGIN_INTERFACE
    674 
    675     /*** IUnknown methods ***/
    676     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    677         ICreateDevEnum *This,
    678         REFIID riid,
    679         void **ppvObject);
    680 
    681     ULONG (STDMETHODCALLTYPE *AddRef)(
    682         ICreateDevEnum *This);
    683 
    684     ULONG (STDMETHODCALLTYPE *Release)(
    685         ICreateDevEnum *This);
    686 
    687     /*** ICreateDevEnum methods ***/
    688     HRESULT (STDMETHODCALLTYPE *CreateClassEnumerator)(
    689         ICreateDevEnum *This,
    690         REFCLSID clsidDeviceClass,
    691         IEnumMoniker **ppEnumMoniker,
    692         DWORD dwFlags);
    693 
    694     END_INTERFACE
    695 } ICreateDevEnumVtbl;
    696 
    697 interface ICreateDevEnum {
    698     CONST_VTBL ICreateDevEnumVtbl* lpVtbl;
    699 };
    700 
    701 #ifdef COBJMACROS
    702 #ifndef WIDL_C_INLINE_WRAPPERS
    703 /*** IUnknown methods ***/
    704 #define ICreateDevEnum_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    705 #define ICreateDevEnum_AddRef(This) (This)->lpVtbl->AddRef(This)
    706 #define ICreateDevEnum_Release(This) (This)->lpVtbl->Release(This)
    707 /*** ICreateDevEnum methods ***/
    708 #define ICreateDevEnum_CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags) (This)->lpVtbl->CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags)
    709 #else
    710 /*** IUnknown methods ***/
    711 static inline HRESULT ICreateDevEnum_QueryInterface(ICreateDevEnum* This,REFIID riid,void **ppvObject) {
    712     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    713 }
    714 static inline ULONG ICreateDevEnum_AddRef(ICreateDevEnum* This) {
    715     return This->lpVtbl->AddRef(This);
    716 }
    717 static inline ULONG ICreateDevEnum_Release(ICreateDevEnum* This) {
    718     return This->lpVtbl->Release(This);
    719 }
    720 /*** ICreateDevEnum methods ***/
    721 static inline HRESULT ICreateDevEnum_CreateClassEnumerator(ICreateDevEnum* This,REFCLSID clsidDeviceClass,IEnumMoniker **ppEnumMoniker,DWORD dwFlags) {
    722     return This->lpVtbl->CreateClassEnumerator(This,clsidDeviceClass,ppEnumMoniker,dwFlags);
    723 }
    724 #endif
    725 #endif
    726 
    727 #endif
    728 
    729 
    730 #endif  /* __ICreateDevEnum_INTERFACE_DEFINED__ */
    731 
    732 #endif
    733 /**
    734  * This file is part of the mingw-w64 runtime package.
    735  * No warranty is given; refer to the file DISCLAIMER within this package.
    736  */
    737 
    738 #include <winapifamily.h>
    739 
    740 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
    741 
    742 #define CHARS_IN_GUID 39
    743 
    744 #ifdef WINE_NO_UNICODE_MACROS
    745 #undef GetTimeFormat
    746 #endif
    747 
    748 typedef struct _AMMediaType {
    749     GUID majortype;
    750     GUID subtype;
    751     WINBOOL bFixedSizeSamples;
    752     WINBOOL bTemporalCompression;
    753     ULONG lSampleSize;
    754     GUID formattype;
    755     IUnknown *pUnk;
    756     ULONG cbFormat;
    757     BYTE *pbFormat;
    758 } AM_MEDIA_TYPE;
    759 
    760 typedef enum _PinDirection {
    761     PINDIR_INPUT = 0,
    762     PINDIR_OUTPUT = 1
    763 } PIN_DIRECTION;
    764 
    765 #define MAX_PIN_NAME 128
    766 #define MAX_FILTER_NAME 128
    767 
    768 #ifndef REFERENCE_TIME_DEFINED
    769 #define REFERENCE_TIME_DEFINED
    770 typedef LONGLONG REFERENCE_TIME;
    771 #endif
    772 
    773 #ifndef REFTIME_DEFINED
    774 #define REFTIME_DEFINED
    775 typedef double REFTIME;
    776 #endif
    777 
    778 typedef DWORD_PTR HSEMAPHORE;
    779 typedef DWORD_PTR HEVENT;
    780 
    781 typedef struct _AllocatorProperties {
    782     LONG cBuffers;
    783     LONG cbBuffer;
    784     LONG cbAlign;
    785     LONG cbPrefix;
    786 } ALLOCATOR_PROPERTIES;
    787 
    788 #ifndef __IAMovieSetup_FWD_DEFINED__
    789 #define __IAMovieSetup_FWD_DEFINED__
    790 typedef interface IAMovieSetup IAMovieSetup;
    791 #ifdef __cplusplus
    792 interface IAMovieSetup;
    793 #endif /* __cplusplus */
    794 #endif
    795 
    796 #ifndef __IEnumFilters_FWD_DEFINED__
    797 #define __IEnumFilters_FWD_DEFINED__
    798 typedef interface IEnumFilters IEnumFilters;
    799 #ifdef __cplusplus
    800 interface IEnumFilters;
    801 #endif /* __cplusplus */
    802 #endif
    803 
    804 #ifndef __IEnumMediaTypes_FWD_DEFINED__
    805 #define __IEnumMediaTypes_FWD_DEFINED__
    806 typedef interface IEnumMediaTypes IEnumMediaTypes;
    807 #ifdef __cplusplus
    808 interface IEnumMediaTypes;
    809 #endif /* __cplusplus */
    810 #endif
    811 
    812 #ifndef __IEnumPins_FWD_DEFINED__
    813 #define __IEnumPins_FWD_DEFINED__
    814 typedef interface IEnumPins IEnumPins;
    815 #ifdef __cplusplus
    816 interface IEnumPins;
    817 #endif /* __cplusplus */
    818 #endif
    819 
    820 #ifndef __IBaseFilter_FWD_DEFINED__
    821 #define __IBaseFilter_FWD_DEFINED__
    822 typedef interface IBaseFilter IBaseFilter;
    823 #ifdef __cplusplus
    824 interface IBaseFilter;
    825 #endif /* __cplusplus */
    826 #endif
    827 
    828 #ifndef __IFilterGraph_FWD_DEFINED__
    829 #define __IFilterGraph_FWD_DEFINED__
    830 typedef interface IFilterGraph IFilterGraph;
    831 #ifdef __cplusplus
    832 interface IFilterGraph;
    833 #endif /* __cplusplus */
    834 #endif
    835 
    836 #ifndef __IMediaFilter_FWD_DEFINED__
    837 #define __IMediaFilter_FWD_DEFINED__
    838 typedef interface IMediaFilter IMediaFilter;
    839 #ifdef __cplusplus
    840 interface IMediaFilter;
    841 #endif /* __cplusplus */
    842 #endif
    843 
    844 #ifndef __IMediaSample_FWD_DEFINED__
    845 #define __IMediaSample_FWD_DEFINED__
    846 typedef interface IMediaSample IMediaSample;
    847 #ifdef __cplusplus
    848 interface IMediaSample;
    849 #endif /* __cplusplus */
    850 #endif
    851 
    852 #ifndef __IMemAllocator_FWD_DEFINED__
    853 #define __IMemAllocator_FWD_DEFINED__
    854 typedef interface IMemAllocator IMemAllocator;
    855 #ifdef __cplusplus
    856 interface IMemAllocator;
    857 #endif /* __cplusplus */
    858 #endif
    859 
    860 #ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__
    861 #define __IMemAllocatorCallbackTemp_FWD_DEFINED__
    862 typedef interface IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp;
    863 #ifdef __cplusplus
    864 interface IMemAllocatorCallbackTemp;
    865 #endif /* __cplusplus */
    866 #endif
    867 
    868 #ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
    869 #define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
    870 typedef interface IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp;
    871 #ifdef __cplusplus
    872 interface IMemAllocatorNotifyCallbackTemp;
    873 #endif /* __cplusplus */
    874 #endif
    875 
    876 #ifndef __IMemInputPin_FWD_DEFINED__
    877 #define __IMemInputPin_FWD_DEFINED__
    878 typedef interface IMemInputPin IMemInputPin;
    879 #ifdef __cplusplus
    880 interface IMemInputPin;
    881 #endif /* __cplusplus */
    882 #endif
    883 
    884 #ifndef __IPin_FWD_DEFINED__
    885 #define __IPin_FWD_DEFINED__
    886 typedef interface IPin IPin;
    887 #ifdef __cplusplus
    888 interface IPin;
    889 #endif /* __cplusplus */
    890 #endif
    891 
    892 #ifndef __IReferenceClock_FWD_DEFINED__
    893 #define __IReferenceClock_FWD_DEFINED__
    894 typedef interface IReferenceClock IReferenceClock;
    895 #ifdef __cplusplus
    896 interface IReferenceClock;
    897 #endif /* __cplusplus */
    898 #endif
    899 
    900 
    901 /*****************************************************************************
    902  * IPin interface
    903  */
    904 #ifndef __IPin_INTERFACE_DEFINED__
    905 #define __IPin_INTERFACE_DEFINED__
    906 
    907 typedef struct _PinInfo {
    908     IBaseFilter *pFilter;
    909     PIN_DIRECTION dir;
    910     WCHAR achName[128];
    911 } PIN_INFO;
    912 
    913 DEFINE_GUID(IID_IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
    914 #if defined(__cplusplus) && !defined(CINTERFACE)
    915 MIDL_INTERFACE("56a86891-0ad4-11ce-b03a-0020af0ba770")
    916 IPin : public IUnknown
    917 {
    918     virtual HRESULT STDMETHODCALLTYPE Connect(
    919         IPin *pReceivePin,
    920         const AM_MEDIA_TYPE *pmt) = 0;
    921 
    922     virtual HRESULT STDMETHODCALLTYPE ReceiveConnection(
    923         IPin *pConnector,
    924         const AM_MEDIA_TYPE *pmt) = 0;
    925 
    926     virtual HRESULT STDMETHODCALLTYPE Disconnect(
    927         ) = 0;
    928 
    929     virtual HRESULT STDMETHODCALLTYPE ConnectedTo(
    930         IPin **pPin) = 0;
    931 
    932     virtual HRESULT STDMETHODCALLTYPE ConnectionMediaType(
    933         AM_MEDIA_TYPE *pmt) = 0;
    934 
    935     virtual HRESULT STDMETHODCALLTYPE QueryPinInfo(
    936         PIN_INFO *pInfo) = 0;
    937 
    938     virtual HRESULT STDMETHODCALLTYPE QueryDirection(
    939         PIN_DIRECTION *pPinDir) = 0;
    940 
    941     virtual HRESULT STDMETHODCALLTYPE QueryId(
    942         LPWSTR *Id) = 0;
    943 
    944     virtual HRESULT STDMETHODCALLTYPE QueryAccept(
    945         const AM_MEDIA_TYPE *pmt) = 0;
    946 
    947     virtual HRESULT STDMETHODCALLTYPE EnumMediaTypes(
    948         IEnumMediaTypes **ppEnum) = 0;
    949 
    950     virtual HRESULT STDMETHODCALLTYPE QueryInternalConnections(
    951         IPin **apPin,
    952         ULONG *nPin) = 0;
    953 
    954     virtual HRESULT STDMETHODCALLTYPE EndOfStream(
    955         ) = 0;
    956 
    957     virtual HRESULT STDMETHODCALLTYPE BeginFlush(
    958         ) = 0;
    959 
    960     virtual HRESULT STDMETHODCALLTYPE EndFlush(
    961         ) = 0;
    962 
    963     virtual HRESULT STDMETHODCALLTYPE NewSegment(
    964         REFERENCE_TIME tStart,
    965         REFERENCE_TIME tStop,
    966         double dRate) = 0;
    967 
    968 };
    969 #ifdef __CRT_UUID_DECL
    970 __CRT_UUID_DECL(IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
    971 #endif
    972 #else
    973 typedef struct IPinVtbl {
    974     BEGIN_INTERFACE
    975 
    976     /*** IUnknown methods ***/
    977     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    978         IPin *This,
    979         REFIID riid,
    980         void **ppvObject);
    981 
    982     ULONG (STDMETHODCALLTYPE *AddRef)(
    983         IPin *This);
    984 
    985     ULONG (STDMETHODCALLTYPE *Release)(
    986         IPin *This);
    987 
    988     /*** IPin methods ***/
    989     HRESULT (STDMETHODCALLTYPE *Connect)(
    990         IPin *This,
    991         IPin *pReceivePin,
    992         const AM_MEDIA_TYPE *pmt);
    993 
    994     HRESULT (STDMETHODCALLTYPE *ReceiveConnection)(
    995         IPin *This,
    996         IPin *pConnector,
    997         const AM_MEDIA_TYPE *pmt);
    998 
    999     HRESULT (STDMETHODCALLTYPE *Disconnect)(
   1000         IPin *This);
   1001 
   1002     HRESULT (STDMETHODCALLTYPE *ConnectedTo)(
   1003         IPin *This,
   1004         IPin **pPin);
   1005 
   1006     HRESULT (STDMETHODCALLTYPE *ConnectionMediaType)(
   1007         IPin *This,
   1008         AM_MEDIA_TYPE *pmt);
   1009 
   1010     HRESULT (STDMETHODCALLTYPE *QueryPinInfo)(
   1011         IPin *This,
   1012         PIN_INFO *pInfo);
   1013 
   1014     HRESULT (STDMETHODCALLTYPE *QueryDirection)(
   1015         IPin *This,
   1016         PIN_DIRECTION *pPinDir);
   1017 
   1018     HRESULT (STDMETHODCALLTYPE *QueryId)(
   1019         IPin *This,
   1020         LPWSTR *Id);
   1021 
   1022     HRESULT (STDMETHODCALLTYPE *QueryAccept)(
   1023         IPin *This,
   1024         const AM_MEDIA_TYPE *pmt);
   1025 
   1026     HRESULT (STDMETHODCALLTYPE *EnumMediaTypes)(
   1027         IPin *This,
   1028         IEnumMediaTypes **ppEnum);
   1029 
   1030     HRESULT (STDMETHODCALLTYPE *QueryInternalConnections)(
   1031         IPin *This,
   1032         IPin **apPin,
   1033         ULONG *nPin);
   1034 
   1035     HRESULT (STDMETHODCALLTYPE *EndOfStream)(
   1036         IPin *This);
   1037 
   1038     HRESULT (STDMETHODCALLTYPE *BeginFlush)(
   1039         IPin *This);
   1040 
   1041     HRESULT (STDMETHODCALLTYPE *EndFlush)(
   1042         IPin *This);
   1043 
   1044     HRESULT (STDMETHODCALLTYPE *NewSegment)(
   1045         IPin *This,
   1046         REFERENCE_TIME tStart,
   1047         REFERENCE_TIME tStop,
   1048         double dRate);
   1049 
   1050     END_INTERFACE
   1051 } IPinVtbl;
   1052 
   1053 interface IPin {
   1054     CONST_VTBL IPinVtbl* lpVtbl;
   1055 };
   1056 
   1057 #ifdef COBJMACROS
   1058 #ifndef WIDL_C_INLINE_WRAPPERS
   1059 /*** IUnknown methods ***/
   1060 #define IPin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1061 #define IPin_AddRef(This) (This)->lpVtbl->AddRef(This)
   1062 #define IPin_Release(This) (This)->lpVtbl->Release(This)
   1063 /*** IPin methods ***/
   1064 #define IPin_Connect(This,pReceivePin,pmt) (This)->lpVtbl->Connect(This,pReceivePin,pmt)
   1065 #define IPin_ReceiveConnection(This,pConnector,pmt) (This)->lpVtbl->ReceiveConnection(This,pConnector,pmt)
   1066 #define IPin_Disconnect(This) (This)->lpVtbl->Disconnect(This)
   1067 #define IPin_ConnectedTo(This,pPin) (This)->lpVtbl->ConnectedTo(This,pPin)
   1068 #define IPin_ConnectionMediaType(This,pmt) (This)->lpVtbl->ConnectionMediaType(This,pmt)
   1069 #define IPin_QueryPinInfo(This,pInfo) (This)->lpVtbl->QueryPinInfo(This,pInfo)
   1070 #define IPin_QueryDirection(This,pPinDir) (This)->lpVtbl->QueryDirection(This,pPinDir)
   1071 #define IPin_QueryId(This,Id) (This)->lpVtbl->QueryId(This,Id)
   1072 #define IPin_QueryAccept(This,pmt) (This)->lpVtbl->QueryAccept(This,pmt)
   1073 #define IPin_EnumMediaTypes(This,ppEnum) (This)->lpVtbl->EnumMediaTypes(This,ppEnum)
   1074 #define IPin_QueryInternalConnections(This,apPin,nPin) (This)->lpVtbl->QueryInternalConnections(This,apPin,nPin)
   1075 #define IPin_EndOfStream(This) (This)->lpVtbl->EndOfStream(This)
   1076 #define IPin_BeginFlush(This) (This)->lpVtbl->BeginFlush(This)
   1077 #define IPin_EndFlush(This) (This)->lpVtbl->EndFlush(This)
   1078 #define IPin_NewSegment(This,tStart,tStop,dRate) (This)->lpVtbl->NewSegment(This,tStart,tStop,dRate)
   1079 #else
   1080 /*** IUnknown methods ***/
   1081 static inline HRESULT IPin_QueryInterface(IPin* This,REFIID riid,void **ppvObject) {
   1082     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1083 }
   1084 static inline ULONG IPin_AddRef(IPin* This) {
   1085     return This->lpVtbl->AddRef(This);
   1086 }
   1087 static inline ULONG IPin_Release(IPin* This) {
   1088     return This->lpVtbl->Release(This);
   1089 }
   1090 /*** IPin methods ***/
   1091 static inline HRESULT IPin_Connect(IPin* This,IPin *pReceivePin,const AM_MEDIA_TYPE *pmt) {
   1092     return This->lpVtbl->Connect(This,pReceivePin,pmt);
   1093 }
   1094 static inline HRESULT IPin_ReceiveConnection(IPin* This,IPin *pConnector,const AM_MEDIA_TYPE *pmt) {
   1095     return This->lpVtbl->ReceiveConnection(This,pConnector,pmt);
   1096 }
   1097 static inline HRESULT IPin_Disconnect(IPin* This) {
   1098     return This->lpVtbl->Disconnect(This);
   1099 }
   1100 static inline HRESULT IPin_ConnectedTo(IPin* This,IPin **pPin) {
   1101     return This->lpVtbl->ConnectedTo(This,pPin);
   1102 }
   1103 static inline HRESULT IPin_ConnectionMediaType(IPin* This,AM_MEDIA_TYPE *pmt) {
   1104     return This->lpVtbl->ConnectionMediaType(This,pmt);
   1105 }
   1106 static inline HRESULT IPin_QueryPinInfo(IPin* This,PIN_INFO *pInfo) {
   1107     return This->lpVtbl->QueryPinInfo(This,pInfo);
   1108 }
   1109 static inline HRESULT IPin_QueryDirection(IPin* This,PIN_DIRECTION *pPinDir) {
   1110     return This->lpVtbl->QueryDirection(This,pPinDir);
   1111 }
   1112 static inline HRESULT IPin_QueryId(IPin* This,LPWSTR *Id) {
   1113     return This->lpVtbl->QueryId(This,Id);
   1114 }
   1115 static inline HRESULT IPin_QueryAccept(IPin* This,const AM_MEDIA_TYPE *pmt) {
   1116     return This->lpVtbl->QueryAccept(This,pmt);
   1117 }
   1118 static inline HRESULT IPin_EnumMediaTypes(IPin* This,IEnumMediaTypes **ppEnum) {
   1119     return This->lpVtbl->EnumMediaTypes(This,ppEnum);
   1120 }
   1121 static inline HRESULT IPin_QueryInternalConnections(IPin* This,IPin **apPin,ULONG *nPin) {
   1122     return This->lpVtbl->QueryInternalConnections(This,apPin,nPin);
   1123 }
   1124 static inline HRESULT IPin_EndOfStream(IPin* This) {
   1125     return This->lpVtbl->EndOfStream(This);
   1126 }
   1127 static inline HRESULT IPin_BeginFlush(IPin* This) {
   1128     return This->lpVtbl->BeginFlush(This);
   1129 }
   1130 static inline HRESULT IPin_EndFlush(IPin* This) {
   1131     return This->lpVtbl->EndFlush(This);
   1132 }
   1133 static inline HRESULT IPin_NewSegment(IPin* This,REFERENCE_TIME tStart,REFERENCE_TIME tStop,double dRate) {
   1134     return This->lpVtbl->NewSegment(This,tStart,tStop,dRate);
   1135 }
   1136 #endif
   1137 #endif
   1138 
   1139 #endif
   1140 
   1141 
   1142 #endif  /* __IPin_INTERFACE_DEFINED__ */
   1143 
   1144 typedef IPin *PPIN;
   1145 
   1146 /*****************************************************************************
   1147  * IEnumPins interface
   1148  */
   1149 #ifndef __IEnumPins_INTERFACE_DEFINED__
   1150 #define __IEnumPins_INTERFACE_DEFINED__
   1151 
   1152 DEFINE_GUID(IID_IEnumPins, 0x56a86892, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   1153 #if defined(__cplusplus) && !defined(CINTERFACE)
   1154 MIDL_INTERFACE("56a86892-0ad4-11ce-b03a-0020af0ba770")
   1155 IEnumPins : public IUnknown
   1156 {
   1157     virtual HRESULT STDMETHODCALLTYPE Next(
   1158         ULONG cPins,
   1159         IPin **ppPins,
   1160         ULONG *pcFetched) = 0;
   1161 
   1162     virtual HRESULT STDMETHODCALLTYPE Skip(
   1163         ULONG cPins) = 0;
   1164 
   1165     virtual HRESULT STDMETHODCALLTYPE Reset(
   1166         ) = 0;
   1167 
   1168     virtual HRESULT STDMETHODCALLTYPE Clone(
   1169         IEnumPins **ppEnum) = 0;
   1170 
   1171 };
   1172 #ifdef __CRT_UUID_DECL
   1173 __CRT_UUID_DECL(IEnumPins, 0x56a86892, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   1174 #endif
   1175 #else
   1176 typedef struct IEnumPinsVtbl {
   1177     BEGIN_INTERFACE
   1178 
   1179     /*** IUnknown methods ***/
   1180     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1181         IEnumPins *This,
   1182         REFIID riid,
   1183         void **ppvObject);
   1184 
   1185     ULONG (STDMETHODCALLTYPE *AddRef)(
   1186         IEnumPins *This);
   1187 
   1188     ULONG (STDMETHODCALLTYPE *Release)(
   1189         IEnumPins *This);
   1190 
   1191     /*** IEnumPins methods ***/
   1192     HRESULT (STDMETHODCALLTYPE *Next)(
   1193         IEnumPins *This,
   1194         ULONG cPins,
   1195         IPin **ppPins,
   1196         ULONG *pcFetched);
   1197 
   1198     HRESULT (STDMETHODCALLTYPE *Skip)(
   1199         IEnumPins *This,
   1200         ULONG cPins);
   1201 
   1202     HRESULT (STDMETHODCALLTYPE *Reset)(
   1203         IEnumPins *This);
   1204 
   1205     HRESULT (STDMETHODCALLTYPE *Clone)(
   1206         IEnumPins *This,
   1207         IEnumPins **ppEnum);
   1208 
   1209     END_INTERFACE
   1210 } IEnumPinsVtbl;
   1211 
   1212 interface IEnumPins {
   1213     CONST_VTBL IEnumPinsVtbl* lpVtbl;
   1214 };
   1215 
   1216 #ifdef COBJMACROS
   1217 #ifndef WIDL_C_INLINE_WRAPPERS
   1218 /*** IUnknown methods ***/
   1219 #define IEnumPins_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1220 #define IEnumPins_AddRef(This) (This)->lpVtbl->AddRef(This)
   1221 #define IEnumPins_Release(This) (This)->lpVtbl->Release(This)
   1222 /*** IEnumPins methods ***/
   1223 #define IEnumPins_Next(This,cPins,ppPins,pcFetched) (This)->lpVtbl->Next(This,cPins,ppPins,pcFetched)
   1224 #define IEnumPins_Skip(This,cPins) (This)->lpVtbl->Skip(This,cPins)
   1225 #define IEnumPins_Reset(This) (This)->lpVtbl->Reset(This)
   1226 #define IEnumPins_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
   1227 #else
   1228 /*** IUnknown methods ***/
   1229 static inline HRESULT IEnumPins_QueryInterface(IEnumPins* This,REFIID riid,void **ppvObject) {
   1230     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1231 }
   1232 static inline ULONG IEnumPins_AddRef(IEnumPins* This) {
   1233     return This->lpVtbl->AddRef(This);
   1234 }
   1235 static inline ULONG IEnumPins_Release(IEnumPins* This) {
   1236     return This->lpVtbl->Release(This);
   1237 }
   1238 /*** IEnumPins methods ***/
   1239 static inline HRESULT IEnumPins_Next(IEnumPins* This,ULONG cPins,IPin **ppPins,ULONG *pcFetched) {
   1240     return This->lpVtbl->Next(This,cPins,ppPins,pcFetched);
   1241 }
   1242 static inline HRESULT IEnumPins_Skip(IEnumPins* This,ULONG cPins) {
   1243     return This->lpVtbl->Skip(This,cPins);
   1244 }
   1245 static inline HRESULT IEnumPins_Reset(IEnumPins* This) {
   1246     return This->lpVtbl->Reset(This);
   1247 }
   1248 static inline HRESULT IEnumPins_Clone(IEnumPins* This,IEnumPins **ppEnum) {
   1249     return This->lpVtbl->Clone(This,ppEnum);
   1250 }
   1251 #endif
   1252 #endif
   1253 
   1254 #endif
   1255 
   1256 
   1257 #endif  /* __IEnumPins_INTERFACE_DEFINED__ */
   1258 
   1259 typedef IEnumPins *PENUMPINS;
   1260 
   1261 /*****************************************************************************
   1262  * IEnumMediaTypes interface
   1263  */
   1264 #ifndef __IEnumMediaTypes_INTERFACE_DEFINED__
   1265 #define __IEnumMediaTypes_INTERFACE_DEFINED__
   1266 
   1267 DEFINE_GUID(IID_IEnumMediaTypes, 0x89c31040, 0x846b, 0x11ce, 0x97,0xd3, 0x00,0xaa,0x00,0x55,0x59,0x5a);
   1268 #if defined(__cplusplus) && !defined(CINTERFACE)
   1269 MIDL_INTERFACE("89c31040-846b-11ce-97d3-00aa0055595a")
   1270 IEnumMediaTypes : public IUnknown
   1271 {
   1272     virtual HRESULT STDMETHODCALLTYPE Next(
   1273         ULONG cMediaTypes,
   1274         AM_MEDIA_TYPE **ppMediaTypes,
   1275         ULONG *pcFetched) = 0;
   1276 
   1277     virtual HRESULT STDMETHODCALLTYPE Skip(
   1278         ULONG cMediaTypes) = 0;
   1279 
   1280     virtual HRESULT STDMETHODCALLTYPE Reset(
   1281         ) = 0;
   1282 
   1283     virtual HRESULT STDMETHODCALLTYPE Clone(
   1284         IEnumMediaTypes **ppEnum) = 0;
   1285 
   1286 };
   1287 #ifdef __CRT_UUID_DECL
   1288 __CRT_UUID_DECL(IEnumMediaTypes, 0x89c31040, 0x846b, 0x11ce, 0x97,0xd3, 0x00,0xaa,0x00,0x55,0x59,0x5a)
   1289 #endif
   1290 #else
   1291 typedef struct IEnumMediaTypesVtbl {
   1292     BEGIN_INTERFACE
   1293 
   1294     /*** IUnknown methods ***/
   1295     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1296         IEnumMediaTypes *This,
   1297         REFIID riid,
   1298         void **ppvObject);
   1299 
   1300     ULONG (STDMETHODCALLTYPE *AddRef)(
   1301         IEnumMediaTypes *This);
   1302 
   1303     ULONG (STDMETHODCALLTYPE *Release)(
   1304         IEnumMediaTypes *This);
   1305 
   1306     /*** IEnumMediaTypes methods ***/
   1307     HRESULT (STDMETHODCALLTYPE *Next)(
   1308         IEnumMediaTypes *This,
   1309         ULONG cMediaTypes,
   1310         AM_MEDIA_TYPE **ppMediaTypes,
   1311         ULONG *pcFetched);
   1312 
   1313     HRESULT (STDMETHODCALLTYPE *Skip)(
   1314         IEnumMediaTypes *This,
   1315         ULONG cMediaTypes);
   1316 
   1317     HRESULT (STDMETHODCALLTYPE *Reset)(
   1318         IEnumMediaTypes *This);
   1319 
   1320     HRESULT (STDMETHODCALLTYPE *Clone)(
   1321         IEnumMediaTypes *This,
   1322         IEnumMediaTypes **ppEnum);
   1323 
   1324     END_INTERFACE
   1325 } IEnumMediaTypesVtbl;
   1326 
   1327 interface IEnumMediaTypes {
   1328     CONST_VTBL IEnumMediaTypesVtbl* lpVtbl;
   1329 };
   1330 
   1331 #ifdef COBJMACROS
   1332 #ifndef WIDL_C_INLINE_WRAPPERS
   1333 /*** IUnknown methods ***/
   1334 #define IEnumMediaTypes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1335 #define IEnumMediaTypes_AddRef(This) (This)->lpVtbl->AddRef(This)
   1336 #define IEnumMediaTypes_Release(This) (This)->lpVtbl->Release(This)
   1337 /*** IEnumMediaTypes methods ***/
   1338 #define IEnumMediaTypes_Next(This,cMediaTypes,ppMediaTypes,pcFetched) (This)->lpVtbl->Next(This,cMediaTypes,ppMediaTypes,pcFetched)
   1339 #define IEnumMediaTypes_Skip(This,cMediaTypes) (This)->lpVtbl->Skip(This,cMediaTypes)
   1340 #define IEnumMediaTypes_Reset(This) (This)->lpVtbl->Reset(This)
   1341 #define IEnumMediaTypes_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
   1342 #else
   1343 /*** IUnknown methods ***/
   1344 static inline HRESULT IEnumMediaTypes_QueryInterface(IEnumMediaTypes* This,REFIID riid,void **ppvObject) {
   1345     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1346 }
   1347 static inline ULONG IEnumMediaTypes_AddRef(IEnumMediaTypes* This) {
   1348     return This->lpVtbl->AddRef(This);
   1349 }
   1350 static inline ULONG IEnumMediaTypes_Release(IEnumMediaTypes* This) {
   1351     return This->lpVtbl->Release(This);
   1352 }
   1353 /*** IEnumMediaTypes methods ***/
   1354 static inline HRESULT IEnumMediaTypes_Next(IEnumMediaTypes* This,ULONG cMediaTypes,AM_MEDIA_TYPE **ppMediaTypes,ULONG *pcFetched) {
   1355     return This->lpVtbl->Next(This,cMediaTypes,ppMediaTypes,pcFetched);
   1356 }
   1357 static inline HRESULT IEnumMediaTypes_Skip(IEnumMediaTypes* This,ULONG cMediaTypes) {
   1358     return This->lpVtbl->Skip(This,cMediaTypes);
   1359 }
   1360 static inline HRESULT IEnumMediaTypes_Reset(IEnumMediaTypes* This) {
   1361     return This->lpVtbl->Reset(This);
   1362 }
   1363 static inline HRESULT IEnumMediaTypes_Clone(IEnumMediaTypes* This,IEnumMediaTypes **ppEnum) {
   1364     return This->lpVtbl->Clone(This,ppEnum);
   1365 }
   1366 #endif
   1367 #endif
   1368 
   1369 #endif
   1370 
   1371 
   1372 #endif  /* __IEnumMediaTypes_INTERFACE_DEFINED__ */
   1373 
   1374 typedef IEnumMediaTypes *PENUMMEDIATYPES;
   1375 
   1376 /*****************************************************************************
   1377  * IFilterGraph interface
   1378  */
   1379 #ifndef __IFilterGraph_INTERFACE_DEFINED__
   1380 #define __IFilterGraph_INTERFACE_DEFINED__
   1381 
   1382 DEFINE_GUID(IID_IFilterGraph, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   1383 #if defined(__cplusplus) && !defined(CINTERFACE)
   1384 MIDL_INTERFACE("56a8689f-0ad4-11ce-b03a-0020af0ba770")
   1385 IFilterGraph : public IUnknown
   1386 {
   1387     virtual HRESULT STDMETHODCALLTYPE AddFilter(
   1388         IBaseFilter *pFilter,
   1389         LPCWSTR pName) = 0;
   1390 
   1391     virtual HRESULT STDMETHODCALLTYPE RemoveFilter(
   1392         IBaseFilter *pFilter) = 0;
   1393 
   1394     virtual HRESULT STDMETHODCALLTYPE EnumFilters(
   1395         IEnumFilters **ppEnum) = 0;
   1396 
   1397     virtual HRESULT STDMETHODCALLTYPE FindFilterByName(
   1398         LPCWSTR pName,
   1399         IBaseFilter **ppFilter) = 0;
   1400 
   1401     virtual HRESULT STDMETHODCALLTYPE ConnectDirect(
   1402         IPin *ppinOut,
   1403         IPin *ppinIn,
   1404         const AM_MEDIA_TYPE *pmt) = 0;
   1405 
   1406     virtual HRESULT STDMETHODCALLTYPE Reconnect(
   1407         IPin *ppin) = 0;
   1408 
   1409     virtual HRESULT STDMETHODCALLTYPE Disconnect(
   1410         IPin *ppin) = 0;
   1411 
   1412     virtual HRESULT STDMETHODCALLTYPE SetDefaultSyncSource(
   1413         ) = 0;
   1414 
   1415 };
   1416 #ifdef __CRT_UUID_DECL
   1417 __CRT_UUID_DECL(IFilterGraph, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   1418 #endif
   1419 #else
   1420 typedef struct IFilterGraphVtbl {
   1421     BEGIN_INTERFACE
   1422 
   1423     /*** IUnknown methods ***/
   1424     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1425         IFilterGraph *This,
   1426         REFIID riid,
   1427         void **ppvObject);
   1428 
   1429     ULONG (STDMETHODCALLTYPE *AddRef)(
   1430         IFilterGraph *This);
   1431 
   1432     ULONG (STDMETHODCALLTYPE *Release)(
   1433         IFilterGraph *This);
   1434 
   1435     /*** IFilterGraph methods ***/
   1436     HRESULT (STDMETHODCALLTYPE *AddFilter)(
   1437         IFilterGraph *This,
   1438         IBaseFilter *pFilter,
   1439         LPCWSTR pName);
   1440 
   1441     HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
   1442         IFilterGraph *This,
   1443         IBaseFilter *pFilter);
   1444 
   1445     HRESULT (STDMETHODCALLTYPE *EnumFilters)(
   1446         IFilterGraph *This,
   1447         IEnumFilters **ppEnum);
   1448 
   1449     HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
   1450         IFilterGraph *This,
   1451         LPCWSTR pName,
   1452         IBaseFilter **ppFilter);
   1453 
   1454     HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
   1455         IFilterGraph *This,
   1456         IPin *ppinOut,
   1457         IPin *ppinIn,
   1458         const AM_MEDIA_TYPE *pmt);
   1459 
   1460     HRESULT (STDMETHODCALLTYPE *Reconnect)(
   1461         IFilterGraph *This,
   1462         IPin *ppin);
   1463 
   1464     HRESULT (STDMETHODCALLTYPE *Disconnect)(
   1465         IFilterGraph *This,
   1466         IPin *ppin);
   1467 
   1468     HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
   1469         IFilterGraph *This);
   1470 
   1471     END_INTERFACE
   1472 } IFilterGraphVtbl;
   1473 
   1474 interface IFilterGraph {
   1475     CONST_VTBL IFilterGraphVtbl* lpVtbl;
   1476 };
   1477 
   1478 #ifdef COBJMACROS
   1479 #ifndef WIDL_C_INLINE_WRAPPERS
   1480 /*** IUnknown methods ***/
   1481 #define IFilterGraph_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1482 #define IFilterGraph_AddRef(This) (This)->lpVtbl->AddRef(This)
   1483 #define IFilterGraph_Release(This) (This)->lpVtbl->Release(This)
   1484 /*** IFilterGraph methods ***/
   1485 #define IFilterGraph_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
   1486 #define IFilterGraph_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
   1487 #define IFilterGraph_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
   1488 #define IFilterGraph_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
   1489 #define IFilterGraph_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
   1490 #define IFilterGraph_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
   1491 #define IFilterGraph_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
   1492 #define IFilterGraph_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
   1493 #else
   1494 /*** IUnknown methods ***/
   1495 static inline HRESULT IFilterGraph_QueryInterface(IFilterGraph* This,REFIID riid,void **ppvObject) {
   1496     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1497 }
   1498 static inline ULONG IFilterGraph_AddRef(IFilterGraph* This) {
   1499     return This->lpVtbl->AddRef(This);
   1500 }
   1501 static inline ULONG IFilterGraph_Release(IFilterGraph* This) {
   1502     return This->lpVtbl->Release(This);
   1503 }
   1504 /*** IFilterGraph methods ***/
   1505 static inline HRESULT IFilterGraph_AddFilter(IFilterGraph* This,IBaseFilter *pFilter,LPCWSTR pName) {
   1506     return This->lpVtbl->AddFilter(This,pFilter,pName);
   1507 }
   1508 static inline HRESULT IFilterGraph_RemoveFilter(IFilterGraph* This,IBaseFilter *pFilter) {
   1509     return This->lpVtbl->RemoveFilter(This,pFilter);
   1510 }
   1511 static inline HRESULT IFilterGraph_EnumFilters(IFilterGraph* This,IEnumFilters **ppEnum) {
   1512     return This->lpVtbl->EnumFilters(This,ppEnum);
   1513 }
   1514 static inline HRESULT IFilterGraph_FindFilterByName(IFilterGraph* This,LPCWSTR pName,IBaseFilter **ppFilter) {
   1515     return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
   1516 }
   1517 static inline HRESULT IFilterGraph_ConnectDirect(IFilterGraph* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) {
   1518     return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt);
   1519 }
   1520 static inline HRESULT IFilterGraph_Reconnect(IFilterGraph* This,IPin *ppin) {
   1521     return This->lpVtbl->Reconnect(This,ppin);
   1522 }
   1523 static inline HRESULT IFilterGraph_Disconnect(IFilterGraph* This,IPin *ppin) {
   1524     return This->lpVtbl->Disconnect(This,ppin);
   1525 }
   1526 static inline HRESULT IFilterGraph_SetDefaultSyncSource(IFilterGraph* This) {
   1527     return This->lpVtbl->SetDefaultSyncSource(This);
   1528 }
   1529 #endif
   1530 #endif
   1531 
   1532 #endif
   1533 
   1534 
   1535 #endif  /* __IFilterGraph_INTERFACE_DEFINED__ */
   1536 
   1537 typedef IFilterGraph *PFILTERGRAPH;
   1538 
   1539 /*****************************************************************************
   1540  * IEnumFilters interface
   1541  */
   1542 #ifndef __IEnumFilters_INTERFACE_DEFINED__
   1543 #define __IEnumFilters_INTERFACE_DEFINED__
   1544 
   1545 DEFINE_GUID(IID_IEnumFilters, 0x56a86893, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   1546 #if defined(__cplusplus) && !defined(CINTERFACE)
   1547 MIDL_INTERFACE("56a86893-0ad4-11ce-b03a-0020af0ba770")
   1548 IEnumFilters : public IUnknown
   1549 {
   1550     virtual HRESULT STDMETHODCALLTYPE Next(
   1551         ULONG cFilters,
   1552         IBaseFilter **ppFilter,
   1553         ULONG *pcFetched) = 0;
   1554 
   1555     virtual HRESULT STDMETHODCALLTYPE Skip(
   1556         ULONG cFilters) = 0;
   1557 
   1558     virtual HRESULT STDMETHODCALLTYPE Reset(
   1559         ) = 0;
   1560 
   1561     virtual HRESULT STDMETHODCALLTYPE Clone(
   1562         IEnumFilters **ppEnum) = 0;
   1563 
   1564 };
   1565 #ifdef __CRT_UUID_DECL
   1566 __CRT_UUID_DECL(IEnumFilters, 0x56a86893, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   1567 #endif
   1568 #else
   1569 typedef struct IEnumFiltersVtbl {
   1570     BEGIN_INTERFACE
   1571 
   1572     /*** IUnknown methods ***/
   1573     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1574         IEnumFilters *This,
   1575         REFIID riid,
   1576         void **ppvObject);
   1577 
   1578     ULONG (STDMETHODCALLTYPE *AddRef)(
   1579         IEnumFilters *This);
   1580 
   1581     ULONG (STDMETHODCALLTYPE *Release)(
   1582         IEnumFilters *This);
   1583 
   1584     /*** IEnumFilters methods ***/
   1585     HRESULT (STDMETHODCALLTYPE *Next)(
   1586         IEnumFilters *This,
   1587         ULONG cFilters,
   1588         IBaseFilter **ppFilter,
   1589         ULONG *pcFetched);
   1590 
   1591     HRESULT (STDMETHODCALLTYPE *Skip)(
   1592         IEnumFilters *This,
   1593         ULONG cFilters);
   1594 
   1595     HRESULT (STDMETHODCALLTYPE *Reset)(
   1596         IEnumFilters *This);
   1597 
   1598     HRESULT (STDMETHODCALLTYPE *Clone)(
   1599         IEnumFilters *This,
   1600         IEnumFilters **ppEnum);
   1601 
   1602     END_INTERFACE
   1603 } IEnumFiltersVtbl;
   1604 
   1605 interface IEnumFilters {
   1606     CONST_VTBL IEnumFiltersVtbl* lpVtbl;
   1607 };
   1608 
   1609 #ifdef COBJMACROS
   1610 #ifndef WIDL_C_INLINE_WRAPPERS
   1611 /*** IUnknown methods ***/
   1612 #define IEnumFilters_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1613 #define IEnumFilters_AddRef(This) (This)->lpVtbl->AddRef(This)
   1614 #define IEnumFilters_Release(This) (This)->lpVtbl->Release(This)
   1615 /*** IEnumFilters methods ***/
   1616 #define IEnumFilters_Next(This,cFilters,ppFilter,pcFetched) (This)->lpVtbl->Next(This,cFilters,ppFilter,pcFetched)
   1617 #define IEnumFilters_Skip(This,cFilters) (This)->lpVtbl->Skip(This,cFilters)
   1618 #define IEnumFilters_Reset(This) (This)->lpVtbl->Reset(This)
   1619 #define IEnumFilters_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
   1620 #else
   1621 /*** IUnknown methods ***/
   1622 static inline HRESULT IEnumFilters_QueryInterface(IEnumFilters* This,REFIID riid,void **ppvObject) {
   1623     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1624 }
   1625 static inline ULONG IEnumFilters_AddRef(IEnumFilters* This) {
   1626     return This->lpVtbl->AddRef(This);
   1627 }
   1628 static inline ULONG IEnumFilters_Release(IEnumFilters* This) {
   1629     return This->lpVtbl->Release(This);
   1630 }
   1631 /*** IEnumFilters methods ***/
   1632 static inline HRESULT IEnumFilters_Next(IEnumFilters* This,ULONG cFilters,IBaseFilter **ppFilter,ULONG *pcFetched) {
   1633     return This->lpVtbl->Next(This,cFilters,ppFilter,pcFetched);
   1634 }
   1635 static inline HRESULT IEnumFilters_Skip(IEnumFilters* This,ULONG cFilters) {
   1636     return This->lpVtbl->Skip(This,cFilters);
   1637 }
   1638 static inline HRESULT IEnumFilters_Reset(IEnumFilters* This) {
   1639     return This->lpVtbl->Reset(This);
   1640 }
   1641 static inline HRESULT IEnumFilters_Clone(IEnumFilters* This,IEnumFilters **ppEnum) {
   1642     return This->lpVtbl->Clone(This,ppEnum);
   1643 }
   1644 #endif
   1645 #endif
   1646 
   1647 #endif
   1648 
   1649 
   1650 #endif  /* __IEnumFilters_INTERFACE_DEFINED__ */
   1651 
   1652 typedef IEnumFilters *PENUMFILTERS;
   1653 
   1654 /*****************************************************************************
   1655  * IMediaFilter interface
   1656  */
   1657 #ifndef __IMediaFilter_INTERFACE_DEFINED__
   1658 #define __IMediaFilter_INTERFACE_DEFINED__
   1659 
   1660 typedef enum _FilterState {
   1661     State_Stopped = 0,
   1662     State_Paused = 1,
   1663     State_Running = 2
   1664 } FILTER_STATE;
   1665 
   1666 DEFINE_GUID(IID_IMediaFilter, 0x56a86899, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   1667 #if defined(__cplusplus) && !defined(CINTERFACE)
   1668 MIDL_INTERFACE("56a86899-0ad4-11ce-b03a-0020af0ba770")
   1669 IMediaFilter : public IPersist
   1670 {
   1671     virtual HRESULT STDMETHODCALLTYPE Stop(
   1672         ) = 0;
   1673 
   1674     virtual HRESULT STDMETHODCALLTYPE Pause(
   1675         ) = 0;
   1676 
   1677     virtual HRESULT STDMETHODCALLTYPE Run(
   1678         REFERENCE_TIME tStart) = 0;
   1679 
   1680     virtual HRESULT STDMETHODCALLTYPE GetState(
   1681         DWORD dwMilliSecsTimeout,
   1682         FILTER_STATE *State) = 0;
   1683 
   1684     virtual HRESULT STDMETHODCALLTYPE SetSyncSource(
   1685         IReferenceClock *pClock) = 0;
   1686 
   1687     virtual HRESULT STDMETHODCALLTYPE GetSyncSource(
   1688         IReferenceClock **pClock) = 0;
   1689 
   1690 };
   1691 #ifdef __CRT_UUID_DECL
   1692 __CRT_UUID_DECL(IMediaFilter, 0x56a86899, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   1693 #endif
   1694 #else
   1695 typedef struct IMediaFilterVtbl {
   1696     BEGIN_INTERFACE
   1697 
   1698     /*** IUnknown methods ***/
   1699     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1700         IMediaFilter *This,
   1701         REFIID riid,
   1702         void **ppvObject);
   1703 
   1704     ULONG (STDMETHODCALLTYPE *AddRef)(
   1705         IMediaFilter *This);
   1706 
   1707     ULONG (STDMETHODCALLTYPE *Release)(
   1708         IMediaFilter *This);
   1709 
   1710     /*** IPersist methods ***/
   1711     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   1712         IMediaFilter *This,
   1713         CLSID *pClassID);
   1714 
   1715     /*** IMediaFilter methods ***/
   1716     HRESULT (STDMETHODCALLTYPE *Stop)(
   1717         IMediaFilter *This);
   1718 
   1719     HRESULT (STDMETHODCALLTYPE *Pause)(
   1720         IMediaFilter *This);
   1721 
   1722     HRESULT (STDMETHODCALLTYPE *Run)(
   1723         IMediaFilter *This,
   1724         REFERENCE_TIME tStart);
   1725 
   1726     HRESULT (STDMETHODCALLTYPE *GetState)(
   1727         IMediaFilter *This,
   1728         DWORD dwMilliSecsTimeout,
   1729         FILTER_STATE *State);
   1730 
   1731     HRESULT (STDMETHODCALLTYPE *SetSyncSource)(
   1732         IMediaFilter *This,
   1733         IReferenceClock *pClock);
   1734 
   1735     HRESULT (STDMETHODCALLTYPE *GetSyncSource)(
   1736         IMediaFilter *This,
   1737         IReferenceClock **pClock);
   1738 
   1739     END_INTERFACE
   1740 } IMediaFilterVtbl;
   1741 
   1742 interface IMediaFilter {
   1743     CONST_VTBL IMediaFilterVtbl* lpVtbl;
   1744 };
   1745 
   1746 #ifdef COBJMACROS
   1747 #ifndef WIDL_C_INLINE_WRAPPERS
   1748 /*** IUnknown methods ***/
   1749 #define IMediaFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1750 #define IMediaFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
   1751 #define IMediaFilter_Release(This) (This)->lpVtbl->Release(This)
   1752 /*** IPersist methods ***/
   1753 #define IMediaFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   1754 /*** IMediaFilter methods ***/
   1755 #define IMediaFilter_Stop(This) (This)->lpVtbl->Stop(This)
   1756 #define IMediaFilter_Pause(This) (This)->lpVtbl->Pause(This)
   1757 #define IMediaFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
   1758 #define IMediaFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State)
   1759 #define IMediaFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
   1760 #define IMediaFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock)
   1761 #else
   1762 /*** IUnknown methods ***/
   1763 static inline HRESULT IMediaFilter_QueryInterface(IMediaFilter* This,REFIID riid,void **ppvObject) {
   1764     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1765 }
   1766 static inline ULONG IMediaFilter_AddRef(IMediaFilter* This) {
   1767     return This->lpVtbl->AddRef(This);
   1768 }
   1769 static inline ULONG IMediaFilter_Release(IMediaFilter* This) {
   1770     return This->lpVtbl->Release(This);
   1771 }
   1772 /*** IPersist methods ***/
   1773 static inline HRESULT IMediaFilter_GetClassID(IMediaFilter* This,CLSID *pClassID) {
   1774     return This->lpVtbl->GetClassID(This,pClassID);
   1775 }
   1776 /*** IMediaFilter methods ***/
   1777 static inline HRESULT IMediaFilter_Stop(IMediaFilter* This) {
   1778     return This->lpVtbl->Stop(This);
   1779 }
   1780 static inline HRESULT IMediaFilter_Pause(IMediaFilter* This) {
   1781     return This->lpVtbl->Pause(This);
   1782 }
   1783 static inline HRESULT IMediaFilter_Run(IMediaFilter* This,REFERENCE_TIME tStart) {
   1784     return This->lpVtbl->Run(This,tStart);
   1785 }
   1786 static inline HRESULT IMediaFilter_GetState(IMediaFilter* This,DWORD dwMilliSecsTimeout,FILTER_STATE *State) {
   1787     return This->lpVtbl->GetState(This,dwMilliSecsTimeout,State);
   1788 }
   1789 static inline HRESULT IMediaFilter_SetSyncSource(IMediaFilter* This,IReferenceClock *pClock) {
   1790     return This->lpVtbl->SetSyncSource(This,pClock);
   1791 }
   1792 static inline HRESULT IMediaFilter_GetSyncSource(IMediaFilter* This,IReferenceClock **pClock) {
   1793     return This->lpVtbl->GetSyncSource(This,pClock);
   1794 }
   1795 #endif
   1796 #endif
   1797 
   1798 #endif
   1799 
   1800 
   1801 #endif  /* __IMediaFilter_INTERFACE_DEFINED__ */
   1802 
   1803 typedef IMediaFilter *PMEDIAFILTER;
   1804 
   1805 /*****************************************************************************
   1806  * IBaseFilter interface
   1807  */
   1808 #ifndef __IBaseFilter_INTERFACE_DEFINED__
   1809 #define __IBaseFilter_INTERFACE_DEFINED__
   1810 
   1811 typedef struct _FilterInfo {
   1812     WCHAR achName[128];
   1813     IFilterGraph *pGraph;
   1814 } FILTER_INFO;
   1815 
   1816 DEFINE_GUID(IID_IBaseFilter, 0x56a86895, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   1817 #if defined(__cplusplus) && !defined(CINTERFACE)
   1818 MIDL_INTERFACE("56a86895-0ad4-11ce-b03a-0020af0ba770")
   1819 IBaseFilter : public IMediaFilter
   1820 {
   1821     virtual HRESULT STDMETHODCALLTYPE EnumPins(
   1822         IEnumPins **ppEnum) = 0;
   1823 
   1824     virtual HRESULT STDMETHODCALLTYPE FindPin(
   1825         LPCWSTR Id,
   1826         IPin **ppPin) = 0;
   1827 
   1828     virtual HRESULT STDMETHODCALLTYPE QueryFilterInfo(
   1829         FILTER_INFO *pInfo) = 0;
   1830 
   1831     virtual HRESULT STDMETHODCALLTYPE JoinFilterGraph(
   1832         IFilterGraph *pGraph,
   1833         LPCWSTR pName) = 0;
   1834 
   1835     virtual HRESULT STDMETHODCALLTYPE QueryVendorInfo(
   1836         LPWSTR *pVendorInfo) = 0;
   1837 
   1838 };
   1839 #ifdef __CRT_UUID_DECL
   1840 __CRT_UUID_DECL(IBaseFilter, 0x56a86895, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   1841 #endif
   1842 #else
   1843 typedef struct IBaseFilterVtbl {
   1844     BEGIN_INTERFACE
   1845 
   1846     /*** IUnknown methods ***/
   1847     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1848         IBaseFilter *This,
   1849         REFIID riid,
   1850         void **ppvObject);
   1851 
   1852     ULONG (STDMETHODCALLTYPE *AddRef)(
   1853         IBaseFilter *This);
   1854 
   1855     ULONG (STDMETHODCALLTYPE *Release)(
   1856         IBaseFilter *This);
   1857 
   1858     /*** IPersist methods ***/
   1859     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   1860         IBaseFilter *This,
   1861         CLSID *pClassID);
   1862 
   1863     /*** IMediaFilter methods ***/
   1864     HRESULT (STDMETHODCALLTYPE *Stop)(
   1865         IBaseFilter *This);
   1866 
   1867     HRESULT (STDMETHODCALLTYPE *Pause)(
   1868         IBaseFilter *This);
   1869 
   1870     HRESULT (STDMETHODCALLTYPE *Run)(
   1871         IBaseFilter *This,
   1872         REFERENCE_TIME tStart);
   1873 
   1874     HRESULT (STDMETHODCALLTYPE *GetState)(
   1875         IBaseFilter *This,
   1876         DWORD dwMilliSecsTimeout,
   1877         FILTER_STATE *State);
   1878 
   1879     HRESULT (STDMETHODCALLTYPE *SetSyncSource)(
   1880         IBaseFilter *This,
   1881         IReferenceClock *pClock);
   1882 
   1883     HRESULT (STDMETHODCALLTYPE *GetSyncSource)(
   1884         IBaseFilter *This,
   1885         IReferenceClock **pClock);
   1886 
   1887     /*** IBaseFilter methods ***/
   1888     HRESULT (STDMETHODCALLTYPE *EnumPins)(
   1889         IBaseFilter *This,
   1890         IEnumPins **ppEnum);
   1891 
   1892     HRESULT (STDMETHODCALLTYPE *FindPin)(
   1893         IBaseFilter *This,
   1894         LPCWSTR Id,
   1895         IPin **ppPin);
   1896 
   1897     HRESULT (STDMETHODCALLTYPE *QueryFilterInfo)(
   1898         IBaseFilter *This,
   1899         FILTER_INFO *pInfo);
   1900 
   1901     HRESULT (STDMETHODCALLTYPE *JoinFilterGraph)(
   1902         IBaseFilter *This,
   1903         IFilterGraph *pGraph,
   1904         LPCWSTR pName);
   1905 
   1906     HRESULT (STDMETHODCALLTYPE *QueryVendorInfo)(
   1907         IBaseFilter *This,
   1908         LPWSTR *pVendorInfo);
   1909 
   1910     END_INTERFACE
   1911 } IBaseFilterVtbl;
   1912 
   1913 interface IBaseFilter {
   1914     CONST_VTBL IBaseFilterVtbl* lpVtbl;
   1915 };
   1916 
   1917 #ifdef COBJMACROS
   1918 #ifndef WIDL_C_INLINE_WRAPPERS
   1919 /*** IUnknown methods ***/
   1920 #define IBaseFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1921 #define IBaseFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
   1922 #define IBaseFilter_Release(This) (This)->lpVtbl->Release(This)
   1923 /*** IPersist methods ***/
   1924 #define IBaseFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   1925 /*** IMediaFilter methods ***/
   1926 #define IBaseFilter_Stop(This) (This)->lpVtbl->Stop(This)
   1927 #define IBaseFilter_Pause(This) (This)->lpVtbl->Pause(This)
   1928 #define IBaseFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
   1929 #define IBaseFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State)
   1930 #define IBaseFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
   1931 #define IBaseFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock)
   1932 /*** IBaseFilter methods ***/
   1933 #define IBaseFilter_EnumPins(This,ppEnum) (This)->lpVtbl->EnumPins(This,ppEnum)
   1934 #define IBaseFilter_FindPin(This,Id,ppPin) (This)->lpVtbl->FindPin(This,Id,ppPin)
   1935 #define IBaseFilter_QueryFilterInfo(This,pInfo) (This)->lpVtbl->QueryFilterInfo(This,pInfo)
   1936 #define IBaseFilter_JoinFilterGraph(This,pGraph,pName) (This)->lpVtbl->JoinFilterGraph(This,pGraph,pName)
   1937 #define IBaseFilter_QueryVendorInfo(This,pVendorInfo) (This)->lpVtbl->QueryVendorInfo(This,pVendorInfo)
   1938 #else
   1939 /*** IUnknown methods ***/
   1940 static inline HRESULT IBaseFilter_QueryInterface(IBaseFilter* This,REFIID riid,void **ppvObject) {
   1941     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1942 }
   1943 static inline ULONG IBaseFilter_AddRef(IBaseFilter* This) {
   1944     return This->lpVtbl->AddRef(This);
   1945 }
   1946 static inline ULONG IBaseFilter_Release(IBaseFilter* This) {
   1947     return This->lpVtbl->Release(This);
   1948 }
   1949 /*** IPersist methods ***/
   1950 static inline HRESULT IBaseFilter_GetClassID(IBaseFilter* This,CLSID *pClassID) {
   1951     return This->lpVtbl->GetClassID(This,pClassID);
   1952 }
   1953 /*** IMediaFilter methods ***/
   1954 static inline HRESULT IBaseFilter_Stop(IBaseFilter* This) {
   1955     return This->lpVtbl->Stop(This);
   1956 }
   1957 static inline HRESULT IBaseFilter_Pause(IBaseFilter* This) {
   1958     return This->lpVtbl->Pause(This);
   1959 }
   1960 static inline HRESULT IBaseFilter_Run(IBaseFilter* This,REFERENCE_TIME tStart) {
   1961     return This->lpVtbl->Run(This,tStart);
   1962 }
   1963 static inline HRESULT IBaseFilter_GetState(IBaseFilter* This,DWORD dwMilliSecsTimeout,FILTER_STATE *State) {
   1964     return This->lpVtbl->GetState(This,dwMilliSecsTimeout,State);
   1965 }
   1966 static inline HRESULT IBaseFilter_SetSyncSource(IBaseFilter* This,IReferenceClock *pClock) {
   1967     return This->lpVtbl->SetSyncSource(This,pClock);
   1968 }
   1969 static inline HRESULT IBaseFilter_GetSyncSource(IBaseFilter* This,IReferenceClock **pClock) {
   1970     return This->lpVtbl->GetSyncSource(This,pClock);
   1971 }
   1972 /*** IBaseFilter methods ***/
   1973 static inline HRESULT IBaseFilter_EnumPins(IBaseFilter* This,IEnumPins **ppEnum) {
   1974     return This->lpVtbl->EnumPins(This,ppEnum);
   1975 }
   1976 static inline HRESULT IBaseFilter_FindPin(IBaseFilter* This,LPCWSTR Id,IPin **ppPin) {
   1977     return This->lpVtbl->FindPin(This,Id,ppPin);
   1978 }
   1979 static inline HRESULT IBaseFilter_QueryFilterInfo(IBaseFilter* This,FILTER_INFO *pInfo) {
   1980     return This->lpVtbl->QueryFilterInfo(This,pInfo);
   1981 }
   1982 static inline HRESULT IBaseFilter_JoinFilterGraph(IBaseFilter* This,IFilterGraph *pGraph,LPCWSTR pName) {
   1983     return This->lpVtbl->JoinFilterGraph(This,pGraph,pName);
   1984 }
   1985 static inline HRESULT IBaseFilter_QueryVendorInfo(IBaseFilter* This,LPWSTR *pVendorInfo) {
   1986     return This->lpVtbl->QueryVendorInfo(This,pVendorInfo);
   1987 }
   1988 #endif
   1989 #endif
   1990 
   1991 #endif
   1992 
   1993 
   1994 #endif  /* __IBaseFilter_INTERFACE_DEFINED__ */
   1995 
   1996 typedef IBaseFilter *PFILTER;
   1997 
   1998 /*****************************************************************************
   1999  * IReferenceClock interface
   2000  */
   2001 #ifndef __IReferenceClock_INTERFACE_DEFINED__
   2002 #define __IReferenceClock_INTERFACE_DEFINED__
   2003 
   2004 DEFINE_GUID(IID_IReferenceClock, 0x56a86897, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   2005 #if defined(__cplusplus) && !defined(CINTERFACE)
   2006 MIDL_INTERFACE("56a86897-0ad4-11ce-b03a-0020af0ba770")
   2007 IReferenceClock : public IUnknown
   2008 {
   2009     virtual HRESULT STDMETHODCALLTYPE GetTime(
   2010         REFERENCE_TIME *pTime) = 0;
   2011 
   2012     virtual HRESULT STDMETHODCALLTYPE AdviseTime(
   2013         REFERENCE_TIME baseTime,
   2014         REFERENCE_TIME streamTime,
   2015         HEVENT hEvent,
   2016         DWORD_PTR *pdwAdviseCookie) = 0;
   2017 
   2018     virtual HRESULT STDMETHODCALLTYPE AdvisePeriodic(
   2019         REFERENCE_TIME startTime,
   2020         REFERENCE_TIME periodTime,
   2021         HSEMAPHORE hSemaphore,
   2022         DWORD_PTR *pdwAdviseCookie) = 0;
   2023 
   2024     virtual HRESULT STDMETHODCALLTYPE Unadvise(
   2025         DWORD_PTR dwAdviseCookie) = 0;
   2026 
   2027 };
   2028 #ifdef __CRT_UUID_DECL
   2029 __CRT_UUID_DECL(IReferenceClock, 0x56a86897, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   2030 #endif
   2031 #else
   2032 typedef struct IReferenceClockVtbl {
   2033     BEGIN_INTERFACE
   2034 
   2035     /*** IUnknown methods ***/
   2036     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2037         IReferenceClock *This,
   2038         REFIID riid,
   2039         void **ppvObject);
   2040 
   2041     ULONG (STDMETHODCALLTYPE *AddRef)(
   2042         IReferenceClock *This);
   2043 
   2044     ULONG (STDMETHODCALLTYPE *Release)(
   2045         IReferenceClock *This);
   2046 
   2047     /*** IReferenceClock methods ***/
   2048     HRESULT (STDMETHODCALLTYPE *GetTime)(
   2049         IReferenceClock *This,
   2050         REFERENCE_TIME *pTime);
   2051 
   2052     HRESULT (STDMETHODCALLTYPE *AdviseTime)(
   2053         IReferenceClock *This,
   2054         REFERENCE_TIME baseTime,
   2055         REFERENCE_TIME streamTime,
   2056         HEVENT hEvent,
   2057         DWORD_PTR *pdwAdviseCookie);
   2058 
   2059     HRESULT (STDMETHODCALLTYPE *AdvisePeriodic)(
   2060         IReferenceClock *This,
   2061         REFERENCE_TIME startTime,
   2062         REFERENCE_TIME periodTime,
   2063         HSEMAPHORE hSemaphore,
   2064         DWORD_PTR *pdwAdviseCookie);
   2065 
   2066     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   2067         IReferenceClock *This,
   2068         DWORD_PTR dwAdviseCookie);
   2069 
   2070     END_INTERFACE
   2071 } IReferenceClockVtbl;
   2072 
   2073 interface IReferenceClock {
   2074     CONST_VTBL IReferenceClockVtbl* lpVtbl;
   2075 };
   2076 
   2077 #ifdef COBJMACROS
   2078 #ifndef WIDL_C_INLINE_WRAPPERS
   2079 /*** IUnknown methods ***/
   2080 #define IReferenceClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2081 #define IReferenceClock_AddRef(This) (This)->lpVtbl->AddRef(This)
   2082 #define IReferenceClock_Release(This) (This)->lpVtbl->Release(This)
   2083 /*** IReferenceClock methods ***/
   2084 #define IReferenceClock_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
   2085 #define IReferenceClock_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
   2086 #define IReferenceClock_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
   2087 #define IReferenceClock_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
   2088 #else
   2089 /*** IUnknown methods ***/
   2090 static inline HRESULT IReferenceClock_QueryInterface(IReferenceClock* This,REFIID riid,void **ppvObject) {
   2091     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2092 }
   2093 static inline ULONG IReferenceClock_AddRef(IReferenceClock* This) {
   2094     return This->lpVtbl->AddRef(This);
   2095 }
   2096 static inline ULONG IReferenceClock_Release(IReferenceClock* This) {
   2097     return This->lpVtbl->Release(This);
   2098 }
   2099 /*** IReferenceClock methods ***/
   2100 static inline HRESULT IReferenceClock_GetTime(IReferenceClock* This,REFERENCE_TIME *pTime) {
   2101     return This->lpVtbl->GetTime(This,pTime);
   2102 }
   2103 static inline HRESULT IReferenceClock_AdviseTime(IReferenceClock* This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie) {
   2104     return This->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie);
   2105 }
   2106 static inline HRESULT IReferenceClock_AdvisePeriodic(IReferenceClock* This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie) {
   2107     return This->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie);
   2108 }
   2109 static inline HRESULT IReferenceClock_Unadvise(IReferenceClock* This,DWORD_PTR dwAdviseCookie) {
   2110     return This->lpVtbl->Unadvise(This,dwAdviseCookie);
   2111 }
   2112 #endif
   2113 #endif
   2114 
   2115 #endif
   2116 
   2117 
   2118 #endif  /* __IReferenceClock_INTERFACE_DEFINED__ */
   2119 
   2120 typedef IReferenceClock *PREFERENCECLOCK;
   2121 
   2122 /*****************************************************************************
   2123  * IReferenceClockTimerControl interface
   2124  */
   2125 #ifndef __IReferenceClockTimerControl_INTERFACE_DEFINED__
   2126 #define __IReferenceClockTimerControl_INTERFACE_DEFINED__
   2127 
   2128 DEFINE_GUID(IID_IReferenceClockTimerControl, 0xebec459c, 0x2eca, 0x4d42, 0xa8,0xaf, 0x30,0xdf,0x55,0x76,0x14,0xb8);
   2129 #if defined(__cplusplus) && !defined(CINTERFACE)
   2130 MIDL_INTERFACE("ebec459c-2eca-4d42-a8af-30df557614b8")
   2131 IReferenceClockTimerControl : public IUnknown
   2132 {
   2133     virtual HRESULT STDMETHODCALLTYPE SetDefaultTimerResolution(
   2134         REFERENCE_TIME timerResolution) = 0;
   2135 
   2136     virtual HRESULT STDMETHODCALLTYPE GetDefaultTimerResolution(
   2137         REFERENCE_TIME *pTimerResolution) = 0;
   2138 
   2139 };
   2140 #ifdef __CRT_UUID_DECL
   2141 __CRT_UUID_DECL(IReferenceClockTimerControl, 0xebec459c, 0x2eca, 0x4d42, 0xa8,0xaf, 0x30,0xdf,0x55,0x76,0x14,0xb8)
   2142 #endif
   2143 #else
   2144 typedef struct IReferenceClockTimerControlVtbl {
   2145     BEGIN_INTERFACE
   2146 
   2147     /*** IUnknown methods ***/
   2148     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2149         IReferenceClockTimerControl *This,
   2150         REFIID riid,
   2151         void **ppvObject);
   2152 
   2153     ULONG (STDMETHODCALLTYPE *AddRef)(
   2154         IReferenceClockTimerControl *This);
   2155 
   2156     ULONG (STDMETHODCALLTYPE *Release)(
   2157         IReferenceClockTimerControl *This);
   2158 
   2159     /*** IReferenceClockTimerControl methods ***/
   2160     HRESULT (STDMETHODCALLTYPE *SetDefaultTimerResolution)(
   2161         IReferenceClockTimerControl *This,
   2162         REFERENCE_TIME timerResolution);
   2163 
   2164     HRESULT (STDMETHODCALLTYPE *GetDefaultTimerResolution)(
   2165         IReferenceClockTimerControl *This,
   2166         REFERENCE_TIME *pTimerResolution);
   2167 
   2168     END_INTERFACE
   2169 } IReferenceClockTimerControlVtbl;
   2170 
   2171 interface IReferenceClockTimerControl {
   2172     CONST_VTBL IReferenceClockTimerControlVtbl* lpVtbl;
   2173 };
   2174 
   2175 #ifdef COBJMACROS
   2176 #ifndef WIDL_C_INLINE_WRAPPERS
   2177 /*** IUnknown methods ***/
   2178 #define IReferenceClockTimerControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2179 #define IReferenceClockTimerControl_AddRef(This) (This)->lpVtbl->AddRef(This)
   2180 #define IReferenceClockTimerControl_Release(This) (This)->lpVtbl->Release(This)
   2181 /*** IReferenceClockTimerControl methods ***/
   2182 #define IReferenceClockTimerControl_SetDefaultTimerResolution(This,timerResolution) (This)->lpVtbl->SetDefaultTimerResolution(This,timerResolution)
   2183 #define IReferenceClockTimerControl_GetDefaultTimerResolution(This,pTimerResolution) (This)->lpVtbl->GetDefaultTimerResolution(This,pTimerResolution)
   2184 #else
   2185 /*** IUnknown methods ***/
   2186 static inline HRESULT IReferenceClockTimerControl_QueryInterface(IReferenceClockTimerControl* This,REFIID riid,void **ppvObject) {
   2187     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2188 }
   2189 static inline ULONG IReferenceClockTimerControl_AddRef(IReferenceClockTimerControl* This) {
   2190     return This->lpVtbl->AddRef(This);
   2191 }
   2192 static inline ULONG IReferenceClockTimerControl_Release(IReferenceClockTimerControl* This) {
   2193     return This->lpVtbl->Release(This);
   2194 }
   2195 /*** IReferenceClockTimerControl methods ***/
   2196 static inline HRESULT IReferenceClockTimerControl_SetDefaultTimerResolution(IReferenceClockTimerControl* This,REFERENCE_TIME timerResolution) {
   2197     return This->lpVtbl->SetDefaultTimerResolution(This,timerResolution);
   2198 }
   2199 static inline HRESULT IReferenceClockTimerControl_GetDefaultTimerResolution(IReferenceClockTimerControl* This,REFERENCE_TIME *pTimerResolution) {
   2200     return This->lpVtbl->GetDefaultTimerResolution(This,pTimerResolution);
   2201 }
   2202 #endif
   2203 #endif
   2204 
   2205 #endif
   2206 
   2207 
   2208 #endif  /* __IReferenceClockTimerControl_INTERFACE_DEFINED__ */
   2209 
   2210 
   2211 /*****************************************************************************
   2212  * IReferenceClock2 interface
   2213  */
   2214 #ifndef __IReferenceClock2_INTERFACE_DEFINED__
   2215 #define __IReferenceClock2_INTERFACE_DEFINED__
   2216 
   2217 DEFINE_GUID(IID_IReferenceClock2, 0x36b73885, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
   2218 #if defined(__cplusplus) && !defined(CINTERFACE)
   2219 MIDL_INTERFACE("36b73885-c2c8-11cf-8b46-00805f6cef60")
   2220 IReferenceClock2 : public IReferenceClock
   2221 {
   2222 };
   2223 #ifdef __CRT_UUID_DECL
   2224 __CRT_UUID_DECL(IReferenceClock2, 0x36b73885, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
   2225 #endif
   2226 #else
   2227 typedef struct IReferenceClock2Vtbl {
   2228     BEGIN_INTERFACE
   2229 
   2230     /*** IUnknown methods ***/
   2231     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2232         IReferenceClock2 *This,
   2233         REFIID riid,
   2234         void **ppvObject);
   2235 
   2236     ULONG (STDMETHODCALLTYPE *AddRef)(
   2237         IReferenceClock2 *This);
   2238 
   2239     ULONG (STDMETHODCALLTYPE *Release)(
   2240         IReferenceClock2 *This);
   2241 
   2242     /*** IReferenceClock methods ***/
   2243     HRESULT (STDMETHODCALLTYPE *GetTime)(
   2244         IReferenceClock2 *This,
   2245         REFERENCE_TIME *pTime);
   2246 
   2247     HRESULT (STDMETHODCALLTYPE *AdviseTime)(
   2248         IReferenceClock2 *This,
   2249         REFERENCE_TIME baseTime,
   2250         REFERENCE_TIME streamTime,
   2251         HEVENT hEvent,
   2252         DWORD_PTR *pdwAdviseCookie);
   2253 
   2254     HRESULT (STDMETHODCALLTYPE *AdvisePeriodic)(
   2255         IReferenceClock2 *This,
   2256         REFERENCE_TIME startTime,
   2257         REFERENCE_TIME periodTime,
   2258         HSEMAPHORE hSemaphore,
   2259         DWORD_PTR *pdwAdviseCookie);
   2260 
   2261     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   2262         IReferenceClock2 *This,
   2263         DWORD_PTR dwAdviseCookie);
   2264 
   2265     END_INTERFACE
   2266 } IReferenceClock2Vtbl;
   2267 
   2268 interface IReferenceClock2 {
   2269     CONST_VTBL IReferenceClock2Vtbl* lpVtbl;
   2270 };
   2271 
   2272 #ifdef COBJMACROS
   2273 #ifndef WIDL_C_INLINE_WRAPPERS
   2274 /*** IUnknown methods ***/
   2275 #define IReferenceClock2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2276 #define IReferenceClock2_AddRef(This) (This)->lpVtbl->AddRef(This)
   2277 #define IReferenceClock2_Release(This) (This)->lpVtbl->Release(This)
   2278 /*** IReferenceClock methods ***/
   2279 #define IReferenceClock2_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
   2280 #define IReferenceClock2_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
   2281 #define IReferenceClock2_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
   2282 #define IReferenceClock2_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
   2283 #else
   2284 /*** IUnknown methods ***/
   2285 static inline HRESULT IReferenceClock2_QueryInterface(IReferenceClock2* This,REFIID riid,void **ppvObject) {
   2286     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2287 }
   2288 static inline ULONG IReferenceClock2_AddRef(IReferenceClock2* This) {
   2289     return This->lpVtbl->AddRef(This);
   2290 }
   2291 static inline ULONG IReferenceClock2_Release(IReferenceClock2* This) {
   2292     return This->lpVtbl->Release(This);
   2293 }
   2294 /*** IReferenceClock methods ***/
   2295 static inline HRESULT IReferenceClock2_GetTime(IReferenceClock2* This,REFERENCE_TIME *pTime) {
   2296     return This->lpVtbl->GetTime(This,pTime);
   2297 }
   2298 static inline HRESULT IReferenceClock2_AdviseTime(IReferenceClock2* This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie) {
   2299     return This->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie);
   2300 }
   2301 static inline HRESULT IReferenceClock2_AdvisePeriodic(IReferenceClock2* This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie) {
   2302     return This->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie);
   2303 }
   2304 static inline HRESULT IReferenceClock2_Unadvise(IReferenceClock2* This,DWORD_PTR dwAdviseCookie) {
   2305     return This->lpVtbl->Unadvise(This,dwAdviseCookie);
   2306 }
   2307 #endif
   2308 #endif
   2309 
   2310 #endif
   2311 
   2312 
   2313 #endif  /* __IReferenceClock2_INTERFACE_DEFINED__ */
   2314 
   2315 typedef IReferenceClock2 *PREFERENCECLOCK2;
   2316 
   2317 /*****************************************************************************
   2318  * IMediaSample interface
   2319  */
   2320 #ifndef __IMediaSample_INTERFACE_DEFINED__
   2321 #define __IMediaSample_INTERFACE_DEFINED__
   2322 
   2323 DEFINE_GUID(IID_IMediaSample, 0x56a8689a, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   2324 #if defined(__cplusplus) && !defined(CINTERFACE)
   2325 MIDL_INTERFACE("56a8689a-0ad4-11ce-b03a-0020af0ba770")
   2326 IMediaSample : public IUnknown
   2327 {
   2328     virtual HRESULT STDMETHODCALLTYPE GetPointer(
   2329         BYTE **ppBuffer) = 0;
   2330 
   2331     virtual LONG STDMETHODCALLTYPE GetSize(
   2332         ) = 0;
   2333 
   2334     virtual HRESULT STDMETHODCALLTYPE GetTime(
   2335         REFERENCE_TIME *pTimeStart,
   2336         REFERENCE_TIME *pTimeEnd) = 0;
   2337 
   2338     virtual HRESULT STDMETHODCALLTYPE SetTime(
   2339         REFERENCE_TIME *pTimeStart,
   2340         REFERENCE_TIME *pTimeEnd) = 0;
   2341 
   2342     virtual HRESULT STDMETHODCALLTYPE IsSyncPoint(
   2343         ) = 0;
   2344 
   2345     virtual HRESULT STDMETHODCALLTYPE SetSyncPoint(
   2346         WINBOOL bIsSyncPoint) = 0;
   2347 
   2348     virtual HRESULT STDMETHODCALLTYPE IsPreroll(
   2349         ) = 0;
   2350 
   2351     virtual HRESULT STDMETHODCALLTYPE SetPreroll(
   2352         WINBOOL bIsPreroll) = 0;
   2353 
   2354     virtual LONG STDMETHODCALLTYPE GetActualDataLength(
   2355         ) = 0;
   2356 
   2357     virtual HRESULT STDMETHODCALLTYPE SetActualDataLength(
   2358         LONG a) = 0;
   2359 
   2360     virtual HRESULT STDMETHODCALLTYPE GetMediaType(
   2361         AM_MEDIA_TYPE **ppMediaType) = 0;
   2362 
   2363     virtual HRESULT STDMETHODCALLTYPE SetMediaType(
   2364         AM_MEDIA_TYPE *pMediaType) = 0;
   2365 
   2366     virtual HRESULT STDMETHODCALLTYPE IsDiscontinuity(
   2367         ) = 0;
   2368 
   2369     virtual HRESULT STDMETHODCALLTYPE SetDiscontinuity(
   2370         WINBOOL bDiscontinuity) = 0;
   2371 
   2372     virtual HRESULT STDMETHODCALLTYPE GetMediaTime(
   2373         LONGLONG *pTimeStart,
   2374         LONGLONG *pTimeEnd) = 0;
   2375 
   2376     virtual HRESULT STDMETHODCALLTYPE SetMediaTime(
   2377         LONGLONG *pTimeStart,
   2378         LONGLONG *pTimeEnd) = 0;
   2379 
   2380 };
   2381 #ifdef __CRT_UUID_DECL
   2382 __CRT_UUID_DECL(IMediaSample, 0x56a8689a, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   2383 #endif
   2384 #else
   2385 typedef struct IMediaSampleVtbl {
   2386     BEGIN_INTERFACE
   2387 
   2388     /*** IUnknown methods ***/
   2389     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2390         IMediaSample *This,
   2391         REFIID riid,
   2392         void **ppvObject);
   2393 
   2394     ULONG (STDMETHODCALLTYPE *AddRef)(
   2395         IMediaSample *This);
   2396 
   2397     ULONG (STDMETHODCALLTYPE *Release)(
   2398         IMediaSample *This);
   2399 
   2400     /*** IMediaSample methods ***/
   2401     HRESULT (STDMETHODCALLTYPE *GetPointer)(
   2402         IMediaSample *This,
   2403         BYTE **ppBuffer);
   2404 
   2405     LONG (STDMETHODCALLTYPE *GetSize)(
   2406         IMediaSample *This);
   2407 
   2408     HRESULT (STDMETHODCALLTYPE *GetTime)(
   2409         IMediaSample *This,
   2410         REFERENCE_TIME *pTimeStart,
   2411         REFERENCE_TIME *pTimeEnd);
   2412 
   2413     HRESULT (STDMETHODCALLTYPE *SetTime)(
   2414         IMediaSample *This,
   2415         REFERENCE_TIME *pTimeStart,
   2416         REFERENCE_TIME *pTimeEnd);
   2417 
   2418     HRESULT (STDMETHODCALLTYPE *IsSyncPoint)(
   2419         IMediaSample *This);
   2420 
   2421     HRESULT (STDMETHODCALLTYPE *SetSyncPoint)(
   2422         IMediaSample *This,
   2423         WINBOOL bIsSyncPoint);
   2424 
   2425     HRESULT (STDMETHODCALLTYPE *IsPreroll)(
   2426         IMediaSample *This);
   2427 
   2428     HRESULT (STDMETHODCALLTYPE *SetPreroll)(
   2429         IMediaSample *This,
   2430         WINBOOL bIsPreroll);
   2431 
   2432     LONG (STDMETHODCALLTYPE *GetActualDataLength)(
   2433         IMediaSample *This);
   2434 
   2435     HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
   2436         IMediaSample *This,
   2437         LONG a);
   2438 
   2439     HRESULT (STDMETHODCALLTYPE *GetMediaType)(
   2440         IMediaSample *This,
   2441         AM_MEDIA_TYPE **ppMediaType);
   2442 
   2443     HRESULT (STDMETHODCALLTYPE *SetMediaType)(
   2444         IMediaSample *This,
   2445         AM_MEDIA_TYPE *pMediaType);
   2446 
   2447     HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)(
   2448         IMediaSample *This);
   2449 
   2450     HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)(
   2451         IMediaSample *This,
   2452         WINBOOL bDiscontinuity);
   2453 
   2454     HRESULT (STDMETHODCALLTYPE *GetMediaTime)(
   2455         IMediaSample *This,
   2456         LONGLONG *pTimeStart,
   2457         LONGLONG *pTimeEnd);
   2458 
   2459     HRESULT (STDMETHODCALLTYPE *SetMediaTime)(
   2460         IMediaSample *This,
   2461         LONGLONG *pTimeStart,
   2462         LONGLONG *pTimeEnd);
   2463 
   2464     END_INTERFACE
   2465 } IMediaSampleVtbl;
   2466 
   2467 interface IMediaSample {
   2468     CONST_VTBL IMediaSampleVtbl* lpVtbl;
   2469 };
   2470 
   2471 #ifdef COBJMACROS
   2472 #ifndef WIDL_C_INLINE_WRAPPERS
   2473 /*** IUnknown methods ***/
   2474 #define IMediaSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2475 #define IMediaSample_AddRef(This) (This)->lpVtbl->AddRef(This)
   2476 #define IMediaSample_Release(This) (This)->lpVtbl->Release(This)
   2477 /*** IMediaSample methods ***/
   2478 #define IMediaSample_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer)
   2479 #define IMediaSample_GetSize(This) (This)->lpVtbl->GetSize(This)
   2480 #define IMediaSample_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd)
   2481 #define IMediaSample_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd)
   2482 #define IMediaSample_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This)
   2483 #define IMediaSample_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint)
   2484 #define IMediaSample_IsPreroll(This) (This)->lpVtbl->IsPreroll(This)
   2485 #define IMediaSample_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll)
   2486 #define IMediaSample_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This)
   2487 #define IMediaSample_SetActualDataLength(This,a) (This)->lpVtbl->SetActualDataLength(This,a)
   2488 #define IMediaSample_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType)
   2489 #define IMediaSample_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType)
   2490 #define IMediaSample_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This)
   2491 #define IMediaSample_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity)
   2492 #define IMediaSample_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd)
   2493 #define IMediaSample_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd)
   2494 #else
   2495 /*** IUnknown methods ***/
   2496 static inline HRESULT IMediaSample_QueryInterface(IMediaSample* This,REFIID riid,void **ppvObject) {
   2497     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2498 }
   2499 static inline ULONG IMediaSample_AddRef(IMediaSample* This) {
   2500     return This->lpVtbl->AddRef(This);
   2501 }
   2502 static inline ULONG IMediaSample_Release(IMediaSample* This) {
   2503     return This->lpVtbl->Release(This);
   2504 }
   2505 /*** IMediaSample methods ***/
   2506 static inline HRESULT IMediaSample_GetPointer(IMediaSample* This,BYTE **ppBuffer) {
   2507     return This->lpVtbl->GetPointer(This,ppBuffer);
   2508 }
   2509 static inline LONG IMediaSample_GetSize(IMediaSample* This) {
   2510     return This->lpVtbl->GetSize(This);
   2511 }
   2512 static inline HRESULT IMediaSample_GetTime(IMediaSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
   2513     return This->lpVtbl->GetTime(This,pTimeStart,pTimeEnd);
   2514 }
   2515 static inline HRESULT IMediaSample_SetTime(IMediaSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
   2516     return This->lpVtbl->SetTime(This,pTimeStart,pTimeEnd);
   2517 }
   2518 static inline HRESULT IMediaSample_IsSyncPoint(IMediaSample* This) {
   2519     return This->lpVtbl->IsSyncPoint(This);
   2520 }
   2521 static inline HRESULT IMediaSample_SetSyncPoint(IMediaSample* This,WINBOOL bIsSyncPoint) {
   2522     return This->lpVtbl->SetSyncPoint(This,bIsSyncPoint);
   2523 }
   2524 static inline HRESULT IMediaSample_IsPreroll(IMediaSample* This) {
   2525     return This->lpVtbl->IsPreroll(This);
   2526 }
   2527 static inline HRESULT IMediaSample_SetPreroll(IMediaSample* This,WINBOOL bIsPreroll) {
   2528     return This->lpVtbl->SetPreroll(This,bIsPreroll);
   2529 }
   2530 static inline LONG IMediaSample_GetActualDataLength(IMediaSample* This) {
   2531     return This->lpVtbl->GetActualDataLength(This);
   2532 }
   2533 static inline HRESULT IMediaSample_SetActualDataLength(IMediaSample* This,LONG a) {
   2534     return This->lpVtbl->SetActualDataLength(This,a);
   2535 }
   2536 static inline HRESULT IMediaSample_GetMediaType(IMediaSample* This,AM_MEDIA_TYPE **ppMediaType) {
   2537     return This->lpVtbl->GetMediaType(This,ppMediaType);
   2538 }
   2539 static inline HRESULT IMediaSample_SetMediaType(IMediaSample* This,AM_MEDIA_TYPE *pMediaType) {
   2540     return This->lpVtbl->SetMediaType(This,pMediaType);
   2541 }
   2542 static inline HRESULT IMediaSample_IsDiscontinuity(IMediaSample* This) {
   2543     return This->lpVtbl->IsDiscontinuity(This);
   2544 }
   2545 static inline HRESULT IMediaSample_SetDiscontinuity(IMediaSample* This,WINBOOL bDiscontinuity) {
   2546     return This->lpVtbl->SetDiscontinuity(This,bDiscontinuity);
   2547 }
   2548 static inline HRESULT IMediaSample_GetMediaTime(IMediaSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
   2549     return This->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd);
   2550 }
   2551 static inline HRESULT IMediaSample_SetMediaTime(IMediaSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
   2552     return This->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd);
   2553 }
   2554 #endif
   2555 #endif
   2556 
   2557 #endif
   2558 
   2559 
   2560 #endif  /* __IMediaSample_INTERFACE_DEFINED__ */
   2561 
   2562 typedef IMediaSample *PMEDIASAMPLE;
   2563 
   2564 enum tagAM_SAMPLE_PROPERTY_FLAGS {
   2565     AM_SAMPLE_SPLICEPOINT = 0x1,
   2566     AM_SAMPLE_PREROLL = 0x2,
   2567     AM_SAMPLE_DATADISCONTINUITY = 0x4,
   2568     AM_SAMPLE_TYPECHANGED = 0x8,
   2569     AM_SAMPLE_TIMEVALID = 0x10,
   2570     AM_SAMPLE_TIMEDISCONTINUITY = 0x40,
   2571     AM_SAMPLE_FLUSH_ON_PAUSE = 0x80,
   2572     AM_SAMPLE_STOPVALID = 0x100,
   2573     AM_SAMPLE_ENDOFSTREAM = 0x200,
   2574     AM_STREAM_MEDIA = 0,
   2575     AM_STREAM_CONTROL = 1
   2576 };
   2577 
   2578 typedef struct tagAM_SAMPLE2_PROPERTIES {
   2579     DWORD cbData;
   2580     DWORD dwTypeSpecificFlags;
   2581     DWORD dwSampleFlags;
   2582     LONG lActual;
   2583     REFERENCE_TIME tStart;
   2584     REFERENCE_TIME tStop;
   2585     DWORD dwStreamId;
   2586     AM_MEDIA_TYPE *pMediaType;
   2587     BYTE *pbBuffer;
   2588     LONG cbBuffer;
   2589 } AM_SAMPLE2_PROPERTIES;
   2590 
   2591 /*****************************************************************************
   2592  * IMediaSample2 interface
   2593  */
   2594 #ifndef __IMediaSample2_INTERFACE_DEFINED__
   2595 #define __IMediaSample2_INTERFACE_DEFINED__
   2596 
   2597 DEFINE_GUID(IID_IMediaSample2, 0x36b73884, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
   2598 #if defined(__cplusplus) && !defined(CINTERFACE)
   2599 MIDL_INTERFACE("36b73884-c2c8-11cf-8b46-00805f6cef60")
   2600 IMediaSample2 : public IMediaSample
   2601 {
   2602     virtual HRESULT STDMETHODCALLTYPE GetProperties(
   2603         DWORD cbProperties,
   2604         BYTE *pbProperties) = 0;
   2605 
   2606     virtual HRESULT STDMETHODCALLTYPE SetProperties(
   2607         DWORD cbProperties,
   2608         const BYTE *pbProperties) = 0;
   2609 
   2610 };
   2611 #ifdef __CRT_UUID_DECL
   2612 __CRT_UUID_DECL(IMediaSample2, 0x36b73884, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
   2613 #endif
   2614 #else
   2615 typedef struct IMediaSample2Vtbl {
   2616     BEGIN_INTERFACE
   2617 
   2618     /*** IUnknown methods ***/
   2619     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2620         IMediaSample2 *This,
   2621         REFIID riid,
   2622         void **ppvObject);
   2623 
   2624     ULONG (STDMETHODCALLTYPE *AddRef)(
   2625         IMediaSample2 *This);
   2626 
   2627     ULONG (STDMETHODCALLTYPE *Release)(
   2628         IMediaSample2 *This);
   2629 
   2630     /*** IMediaSample methods ***/
   2631     HRESULT (STDMETHODCALLTYPE *GetPointer)(
   2632         IMediaSample2 *This,
   2633         BYTE **ppBuffer);
   2634 
   2635     LONG (STDMETHODCALLTYPE *GetSize)(
   2636         IMediaSample2 *This);
   2637 
   2638     HRESULT (STDMETHODCALLTYPE *GetTime)(
   2639         IMediaSample2 *This,
   2640         REFERENCE_TIME *pTimeStart,
   2641         REFERENCE_TIME *pTimeEnd);
   2642 
   2643     HRESULT (STDMETHODCALLTYPE *SetTime)(
   2644         IMediaSample2 *This,
   2645         REFERENCE_TIME *pTimeStart,
   2646         REFERENCE_TIME *pTimeEnd);
   2647 
   2648     HRESULT (STDMETHODCALLTYPE *IsSyncPoint)(
   2649         IMediaSample2 *This);
   2650 
   2651     HRESULT (STDMETHODCALLTYPE *SetSyncPoint)(
   2652         IMediaSample2 *This,
   2653         WINBOOL bIsSyncPoint);
   2654 
   2655     HRESULT (STDMETHODCALLTYPE *IsPreroll)(
   2656         IMediaSample2 *This);
   2657 
   2658     HRESULT (STDMETHODCALLTYPE *SetPreroll)(
   2659         IMediaSample2 *This,
   2660         WINBOOL bIsPreroll);
   2661 
   2662     LONG (STDMETHODCALLTYPE *GetActualDataLength)(
   2663         IMediaSample2 *This);
   2664 
   2665     HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
   2666         IMediaSample2 *This,
   2667         LONG a);
   2668 
   2669     HRESULT (STDMETHODCALLTYPE *GetMediaType)(
   2670         IMediaSample2 *This,
   2671         AM_MEDIA_TYPE **ppMediaType);
   2672 
   2673     HRESULT (STDMETHODCALLTYPE *SetMediaType)(
   2674         IMediaSample2 *This,
   2675         AM_MEDIA_TYPE *pMediaType);
   2676 
   2677     HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)(
   2678         IMediaSample2 *This);
   2679 
   2680     HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)(
   2681         IMediaSample2 *This,
   2682         WINBOOL bDiscontinuity);
   2683 
   2684     HRESULT (STDMETHODCALLTYPE *GetMediaTime)(
   2685         IMediaSample2 *This,
   2686         LONGLONG *pTimeStart,
   2687         LONGLONG *pTimeEnd);
   2688 
   2689     HRESULT (STDMETHODCALLTYPE *SetMediaTime)(
   2690         IMediaSample2 *This,
   2691         LONGLONG *pTimeStart,
   2692         LONGLONG *pTimeEnd);
   2693 
   2694     /*** IMediaSample2 methods ***/
   2695     HRESULT (STDMETHODCALLTYPE *GetProperties)(
   2696         IMediaSample2 *This,
   2697         DWORD cbProperties,
   2698         BYTE *pbProperties);
   2699 
   2700     HRESULT (STDMETHODCALLTYPE *SetProperties)(
   2701         IMediaSample2 *This,
   2702         DWORD cbProperties,
   2703         const BYTE *pbProperties);
   2704 
   2705     END_INTERFACE
   2706 } IMediaSample2Vtbl;
   2707 
   2708 interface IMediaSample2 {
   2709     CONST_VTBL IMediaSample2Vtbl* lpVtbl;
   2710 };
   2711 
   2712 #ifdef COBJMACROS
   2713 #ifndef WIDL_C_INLINE_WRAPPERS
   2714 /*** IUnknown methods ***/
   2715 #define IMediaSample2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2716 #define IMediaSample2_AddRef(This) (This)->lpVtbl->AddRef(This)
   2717 #define IMediaSample2_Release(This) (This)->lpVtbl->Release(This)
   2718 /*** IMediaSample methods ***/
   2719 #define IMediaSample2_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer)
   2720 #define IMediaSample2_GetSize(This) (This)->lpVtbl->GetSize(This)
   2721 #define IMediaSample2_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd)
   2722 #define IMediaSample2_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd)
   2723 #define IMediaSample2_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This)
   2724 #define IMediaSample2_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint)
   2725 #define IMediaSample2_IsPreroll(This) (This)->lpVtbl->IsPreroll(This)
   2726 #define IMediaSample2_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll)
   2727 #define IMediaSample2_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This)
   2728 #define IMediaSample2_SetActualDataLength(This,a) (This)->lpVtbl->SetActualDataLength(This,a)
   2729 #define IMediaSample2_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType)
   2730 #define IMediaSample2_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType)
   2731 #define IMediaSample2_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This)
   2732 #define IMediaSample2_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity)
   2733 #define IMediaSample2_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd)
   2734 #define IMediaSample2_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd)
   2735 /*** IMediaSample2 methods ***/
   2736 #define IMediaSample2_GetProperties(This,cbProperties,pbProperties) (This)->lpVtbl->GetProperties(This,cbProperties,pbProperties)
   2737 #define IMediaSample2_SetProperties(This,cbProperties,pbProperties) (This)->lpVtbl->SetProperties(This,cbProperties,pbProperties)
   2738 #else
   2739 /*** IUnknown methods ***/
   2740 static inline HRESULT IMediaSample2_QueryInterface(IMediaSample2* This,REFIID riid,void **ppvObject) {
   2741     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2742 }
   2743 static inline ULONG IMediaSample2_AddRef(IMediaSample2* This) {
   2744     return This->lpVtbl->AddRef(This);
   2745 }
   2746 static inline ULONG IMediaSample2_Release(IMediaSample2* This) {
   2747     return This->lpVtbl->Release(This);
   2748 }
   2749 /*** IMediaSample methods ***/
   2750 static inline HRESULT IMediaSample2_GetPointer(IMediaSample2* This,BYTE **ppBuffer) {
   2751     return This->lpVtbl->GetPointer(This,ppBuffer);
   2752 }
   2753 static inline LONG IMediaSample2_GetSize(IMediaSample2* This) {
   2754     return This->lpVtbl->GetSize(This);
   2755 }
   2756 static inline HRESULT IMediaSample2_GetTime(IMediaSample2* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
   2757     return This->lpVtbl->GetTime(This,pTimeStart,pTimeEnd);
   2758 }
   2759 static inline HRESULT IMediaSample2_SetTime(IMediaSample2* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
   2760     return This->lpVtbl->SetTime(This,pTimeStart,pTimeEnd);
   2761 }
   2762 static inline HRESULT IMediaSample2_IsSyncPoint(IMediaSample2* This) {
   2763     return This->lpVtbl->IsSyncPoint(This);
   2764 }
   2765 static inline HRESULT IMediaSample2_SetSyncPoint(IMediaSample2* This,WINBOOL bIsSyncPoint) {
   2766     return This->lpVtbl->SetSyncPoint(This,bIsSyncPoint);
   2767 }
   2768 static inline HRESULT IMediaSample2_IsPreroll(IMediaSample2* This) {
   2769     return This->lpVtbl->IsPreroll(This);
   2770 }
   2771 static inline HRESULT IMediaSample2_SetPreroll(IMediaSample2* This,WINBOOL bIsPreroll) {
   2772     return This->lpVtbl->SetPreroll(This,bIsPreroll);
   2773 }
   2774 static inline LONG IMediaSample2_GetActualDataLength(IMediaSample2* This) {
   2775     return This->lpVtbl->GetActualDataLength(This);
   2776 }
   2777 static inline HRESULT IMediaSample2_SetActualDataLength(IMediaSample2* This,LONG a) {
   2778     return This->lpVtbl->SetActualDataLength(This,a);
   2779 }
   2780 static inline HRESULT IMediaSample2_GetMediaType(IMediaSample2* This,AM_MEDIA_TYPE **ppMediaType) {
   2781     return This->lpVtbl->GetMediaType(This,ppMediaType);
   2782 }
   2783 static inline HRESULT IMediaSample2_SetMediaType(IMediaSample2* This,AM_MEDIA_TYPE *pMediaType) {
   2784     return This->lpVtbl->SetMediaType(This,pMediaType);
   2785 }
   2786 static inline HRESULT IMediaSample2_IsDiscontinuity(IMediaSample2* This) {
   2787     return This->lpVtbl->IsDiscontinuity(This);
   2788 }
   2789 static inline HRESULT IMediaSample2_SetDiscontinuity(IMediaSample2* This,WINBOOL bDiscontinuity) {
   2790     return This->lpVtbl->SetDiscontinuity(This,bDiscontinuity);
   2791 }
   2792 static inline HRESULT IMediaSample2_GetMediaTime(IMediaSample2* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
   2793     return This->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd);
   2794 }
   2795 static inline HRESULT IMediaSample2_SetMediaTime(IMediaSample2* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
   2796     return This->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd);
   2797 }
   2798 /*** IMediaSample2 methods ***/
   2799 static inline HRESULT IMediaSample2_GetProperties(IMediaSample2* This,DWORD cbProperties,BYTE *pbProperties) {
   2800     return This->lpVtbl->GetProperties(This,cbProperties,pbProperties);
   2801 }
   2802 static inline HRESULT IMediaSample2_SetProperties(IMediaSample2* This,DWORD cbProperties,const BYTE *pbProperties) {
   2803     return This->lpVtbl->SetProperties(This,cbProperties,pbProperties);
   2804 }
   2805 #endif
   2806 #endif
   2807 
   2808 #endif
   2809 
   2810 
   2811 #endif  /* __IMediaSample2_INTERFACE_DEFINED__ */
   2812 
   2813 typedef IMediaSample2 *PMEDIASAMPLE2;
   2814 
   2815 /*****************************************************************************
   2816  * IMediaSample2Config interface
   2817  */
   2818 #ifndef __IMediaSample2Config_INTERFACE_DEFINED__
   2819 #define __IMediaSample2Config_INTERFACE_DEFINED__
   2820 
   2821 DEFINE_GUID(IID_IMediaSample2Config, 0x68961e68, 0x832b, 0x41ea, 0xbc,0x91, 0x63,0x59,0x3f,0x3e,0x70,0xe3);
   2822 #if defined(__cplusplus) && !defined(CINTERFACE)
   2823 MIDL_INTERFACE("68961e68-832b-41ea-bc91-63593f3e70e3")
   2824 IMediaSample2Config : public IUnknown
   2825 {
   2826     virtual HRESULT STDMETHODCALLTYPE GetSurface(
   2827         IUnknown **ppDirect3DSurface9) = 0;
   2828 
   2829 };
   2830 #ifdef __CRT_UUID_DECL
   2831 __CRT_UUID_DECL(IMediaSample2Config, 0x68961e68, 0x832b, 0x41ea, 0xbc,0x91, 0x63,0x59,0x3f,0x3e,0x70,0xe3)
   2832 #endif
   2833 #else
   2834 typedef struct IMediaSample2ConfigVtbl {
   2835     BEGIN_INTERFACE
   2836 
   2837     /*** IUnknown methods ***/
   2838     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2839         IMediaSample2Config *This,
   2840         REFIID riid,
   2841         void **ppvObject);
   2842 
   2843     ULONG (STDMETHODCALLTYPE *AddRef)(
   2844         IMediaSample2Config *This);
   2845 
   2846     ULONG (STDMETHODCALLTYPE *Release)(
   2847         IMediaSample2Config *This);
   2848 
   2849     /*** IMediaSample2Config methods ***/
   2850     HRESULT (STDMETHODCALLTYPE *GetSurface)(
   2851         IMediaSample2Config *This,
   2852         IUnknown **ppDirect3DSurface9);
   2853 
   2854     END_INTERFACE
   2855 } IMediaSample2ConfigVtbl;
   2856 
   2857 interface IMediaSample2Config {
   2858     CONST_VTBL IMediaSample2ConfigVtbl* lpVtbl;
   2859 };
   2860 
   2861 #ifdef COBJMACROS
   2862 #ifndef WIDL_C_INLINE_WRAPPERS
   2863 /*** IUnknown methods ***/
   2864 #define IMediaSample2Config_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2865 #define IMediaSample2Config_AddRef(This) (This)->lpVtbl->AddRef(This)
   2866 #define IMediaSample2Config_Release(This) (This)->lpVtbl->Release(This)
   2867 /*** IMediaSample2Config methods ***/
   2868 #define IMediaSample2Config_GetSurface(This,ppDirect3DSurface9) (This)->lpVtbl->GetSurface(This,ppDirect3DSurface9)
   2869 #else
   2870 /*** IUnknown methods ***/
   2871 static inline HRESULT IMediaSample2Config_QueryInterface(IMediaSample2Config* This,REFIID riid,void **ppvObject) {
   2872     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2873 }
   2874 static inline ULONG IMediaSample2Config_AddRef(IMediaSample2Config* This) {
   2875     return This->lpVtbl->AddRef(This);
   2876 }
   2877 static inline ULONG IMediaSample2Config_Release(IMediaSample2Config* This) {
   2878     return This->lpVtbl->Release(This);
   2879 }
   2880 /*** IMediaSample2Config methods ***/
   2881 static inline HRESULT IMediaSample2Config_GetSurface(IMediaSample2Config* This,IUnknown **ppDirect3DSurface9) {
   2882     return This->lpVtbl->GetSurface(This,ppDirect3DSurface9);
   2883 }
   2884 #endif
   2885 #endif
   2886 
   2887 #endif
   2888 
   2889 
   2890 #endif  /* __IMediaSample2Config_INTERFACE_DEFINED__ */
   2891 
   2892 
   2893 #define AM_GBF_PREVFRAMESKIPPED 1
   2894 #define AM_GBF_NOTASYNCPOINT 2
   2895 #define AM_GBF_NOWAIT 4
   2896 #define AM_GBF_NODDSURFACELOCK 8
   2897 
   2898 /*****************************************************************************
   2899  * IMemAllocator interface
   2900  */
   2901 #ifndef __IMemAllocator_INTERFACE_DEFINED__
   2902 #define __IMemAllocator_INTERFACE_DEFINED__
   2903 
   2904 DEFINE_GUID(IID_IMemAllocator, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   2905 #if defined(__cplusplus) && !defined(CINTERFACE)
   2906 MIDL_INTERFACE("56a8689c-0ad4-11ce-b03a-0020af0ba770")
   2907 IMemAllocator : public IUnknown
   2908 {
   2909     virtual HRESULT STDMETHODCALLTYPE SetProperties(
   2910         ALLOCATOR_PROPERTIES *pRequest,
   2911         ALLOCATOR_PROPERTIES *pActual) = 0;
   2912 
   2913     virtual HRESULT STDMETHODCALLTYPE GetProperties(
   2914         ALLOCATOR_PROPERTIES *pProps) = 0;
   2915 
   2916     virtual HRESULT STDMETHODCALLTYPE Commit(
   2917         ) = 0;
   2918 
   2919     virtual HRESULT STDMETHODCALLTYPE Decommit(
   2920         ) = 0;
   2921 
   2922     virtual HRESULT STDMETHODCALLTYPE GetBuffer(
   2923         IMediaSample **ppBuffer,
   2924         REFERENCE_TIME *pStartTime,
   2925         REFERENCE_TIME *pEndTime,
   2926         DWORD dwFlags) = 0;
   2927 
   2928     virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
   2929         IMediaSample *pBuffer) = 0;
   2930 
   2931 };
   2932 #ifdef __CRT_UUID_DECL
   2933 __CRT_UUID_DECL(IMemAllocator, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   2934 #endif
   2935 #else
   2936 typedef struct IMemAllocatorVtbl {
   2937     BEGIN_INTERFACE
   2938 
   2939     /*** IUnknown methods ***/
   2940     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2941         IMemAllocator *This,
   2942         REFIID riid,
   2943         void **ppvObject);
   2944 
   2945     ULONG (STDMETHODCALLTYPE *AddRef)(
   2946         IMemAllocator *This);
   2947 
   2948     ULONG (STDMETHODCALLTYPE *Release)(
   2949         IMemAllocator *This);
   2950 
   2951     /*** IMemAllocator methods ***/
   2952     HRESULT (STDMETHODCALLTYPE *SetProperties)(
   2953         IMemAllocator *This,
   2954         ALLOCATOR_PROPERTIES *pRequest,
   2955         ALLOCATOR_PROPERTIES *pActual);
   2956 
   2957     HRESULT (STDMETHODCALLTYPE *GetProperties)(
   2958         IMemAllocator *This,
   2959         ALLOCATOR_PROPERTIES *pProps);
   2960 
   2961     HRESULT (STDMETHODCALLTYPE *Commit)(
   2962         IMemAllocator *This);
   2963 
   2964     HRESULT (STDMETHODCALLTYPE *Decommit)(
   2965         IMemAllocator *This);
   2966 
   2967     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
   2968         IMemAllocator *This,
   2969         IMediaSample **ppBuffer,
   2970         REFERENCE_TIME *pStartTime,
   2971         REFERENCE_TIME *pEndTime,
   2972         DWORD dwFlags);
   2973 
   2974     HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)(
   2975         IMemAllocator *This,
   2976         IMediaSample *pBuffer);
   2977 
   2978     END_INTERFACE
   2979 } IMemAllocatorVtbl;
   2980 
   2981 interface IMemAllocator {
   2982     CONST_VTBL IMemAllocatorVtbl* lpVtbl;
   2983 };
   2984 
   2985 #ifdef COBJMACROS
   2986 #ifndef WIDL_C_INLINE_WRAPPERS
   2987 /*** IUnknown methods ***/
   2988 #define IMemAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2989 #define IMemAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
   2990 #define IMemAllocator_Release(This) (This)->lpVtbl->Release(This)
   2991 /*** IMemAllocator methods ***/
   2992 #define IMemAllocator_SetProperties(This,pRequest,pActual) (This)->lpVtbl->SetProperties(This,pRequest,pActual)
   2993 #define IMemAllocator_GetProperties(This,pProps) (This)->lpVtbl->GetProperties(This,pProps)
   2994 #define IMemAllocator_Commit(This) (This)->lpVtbl->Commit(This)
   2995 #define IMemAllocator_Decommit(This) (This)->lpVtbl->Decommit(This)
   2996 #define IMemAllocator_GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags) (This)->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags)
   2997 #define IMemAllocator_ReleaseBuffer(This,pBuffer) (This)->lpVtbl->ReleaseBuffer(This,pBuffer)
   2998 #else
   2999 /*** IUnknown methods ***/
   3000 static inline HRESULT IMemAllocator_QueryInterface(IMemAllocator* This,REFIID riid,void **ppvObject) {
   3001     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3002 }
   3003 static inline ULONG IMemAllocator_AddRef(IMemAllocator* This) {
   3004     return This->lpVtbl->AddRef(This);
   3005 }
   3006 static inline ULONG IMemAllocator_Release(IMemAllocator* This) {
   3007     return This->lpVtbl->Release(This);
   3008 }
   3009 /*** IMemAllocator methods ***/
   3010 static inline HRESULT IMemAllocator_SetProperties(IMemAllocator* This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual) {
   3011     return This->lpVtbl->SetProperties(This,pRequest,pActual);
   3012 }
   3013 static inline HRESULT IMemAllocator_GetProperties(IMemAllocator* This,ALLOCATOR_PROPERTIES *pProps) {
   3014     return This->lpVtbl->GetProperties(This,pProps);
   3015 }
   3016 static inline HRESULT IMemAllocator_Commit(IMemAllocator* This) {
   3017     return This->lpVtbl->Commit(This);
   3018 }
   3019 static inline HRESULT IMemAllocator_Decommit(IMemAllocator* This) {
   3020     return This->lpVtbl->Decommit(This);
   3021 }
   3022 static inline HRESULT IMemAllocator_GetBuffer(IMemAllocator* This,IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags) {
   3023     return This->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags);
   3024 }
   3025 static inline HRESULT IMemAllocator_ReleaseBuffer(IMemAllocator* This,IMediaSample *pBuffer) {
   3026     return This->lpVtbl->ReleaseBuffer(This,pBuffer);
   3027 }
   3028 #endif
   3029 #endif
   3030 
   3031 #endif
   3032 
   3033 
   3034 #endif  /* __IMemAllocator_INTERFACE_DEFINED__ */
   3035 
   3036 typedef IMemAllocator *PMEMALLOCATOR;
   3037 
   3038 /*****************************************************************************
   3039  * IMemAllocatorCallbackTemp interface
   3040  */
   3041 #ifndef __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
   3042 #define __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
   3043 
   3044 DEFINE_GUID(IID_IMemAllocatorCallbackTemp, 0x379a0cf0, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
   3045 #if defined(__cplusplus) && !defined(CINTERFACE)
   3046 MIDL_INTERFACE("379a0cf0-c1de-11d2-abf5-00a0c905f375")
   3047 IMemAllocatorCallbackTemp : public IMemAllocator
   3048 {
   3049     virtual HRESULT STDMETHODCALLTYPE SetNotify(
   3050         IMemAllocatorNotifyCallbackTemp *pNotify) = 0;
   3051 
   3052     virtual HRESULT STDMETHODCALLTYPE GetFreeCount(
   3053         LONG *plBuffersFree) = 0;
   3054 
   3055 };
   3056 #ifdef __CRT_UUID_DECL
   3057 __CRT_UUID_DECL(IMemAllocatorCallbackTemp, 0x379a0cf0, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
   3058 #endif
   3059 #else
   3060 typedef struct IMemAllocatorCallbackTempVtbl {
   3061     BEGIN_INTERFACE
   3062 
   3063     /*** IUnknown methods ***/
   3064     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3065         IMemAllocatorCallbackTemp *This,
   3066         REFIID riid,
   3067         void **ppvObject);
   3068 
   3069     ULONG (STDMETHODCALLTYPE *AddRef)(
   3070         IMemAllocatorCallbackTemp *This);
   3071 
   3072     ULONG (STDMETHODCALLTYPE *Release)(
   3073         IMemAllocatorCallbackTemp *This);
   3074 
   3075     /*** IMemAllocator methods ***/
   3076     HRESULT (STDMETHODCALLTYPE *SetProperties)(
   3077         IMemAllocatorCallbackTemp *This,
   3078         ALLOCATOR_PROPERTIES *pRequest,
   3079         ALLOCATOR_PROPERTIES *pActual);
   3080 
   3081     HRESULT (STDMETHODCALLTYPE *GetProperties)(
   3082         IMemAllocatorCallbackTemp *This,
   3083         ALLOCATOR_PROPERTIES *pProps);
   3084 
   3085     HRESULT (STDMETHODCALLTYPE *Commit)(
   3086         IMemAllocatorCallbackTemp *This);
   3087 
   3088     HRESULT (STDMETHODCALLTYPE *Decommit)(
   3089         IMemAllocatorCallbackTemp *This);
   3090 
   3091     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
   3092         IMemAllocatorCallbackTemp *This,
   3093         IMediaSample **ppBuffer,
   3094         REFERENCE_TIME *pStartTime,
   3095         REFERENCE_TIME *pEndTime,
   3096         DWORD dwFlags);
   3097 
   3098     HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)(
   3099         IMemAllocatorCallbackTemp *This,
   3100         IMediaSample *pBuffer);
   3101 
   3102     /*** IMemAllocatorCallbackTemp methods ***/
   3103     HRESULT (STDMETHODCALLTYPE *SetNotify)(
   3104         IMemAllocatorCallbackTemp *This,
   3105         IMemAllocatorNotifyCallbackTemp *pNotify);
   3106 
   3107     HRESULT (STDMETHODCALLTYPE *GetFreeCount)(
   3108         IMemAllocatorCallbackTemp *This,
   3109         LONG *plBuffersFree);
   3110 
   3111     END_INTERFACE
   3112 } IMemAllocatorCallbackTempVtbl;
   3113 
   3114 interface IMemAllocatorCallbackTemp {
   3115     CONST_VTBL IMemAllocatorCallbackTempVtbl* lpVtbl;
   3116 };
   3117 
   3118 #ifdef COBJMACROS
   3119 #ifndef WIDL_C_INLINE_WRAPPERS
   3120 /*** IUnknown methods ***/
   3121 #define IMemAllocatorCallbackTemp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3122 #define IMemAllocatorCallbackTemp_AddRef(This) (This)->lpVtbl->AddRef(This)
   3123 #define IMemAllocatorCallbackTemp_Release(This) (This)->lpVtbl->Release(This)
   3124 /*** IMemAllocator methods ***/
   3125 #define IMemAllocatorCallbackTemp_SetProperties(This,pRequest,pActual) (This)->lpVtbl->SetProperties(This,pRequest,pActual)
   3126 #define IMemAllocatorCallbackTemp_GetProperties(This,pProps) (This)->lpVtbl->GetProperties(This,pProps)
   3127 #define IMemAllocatorCallbackTemp_Commit(This) (This)->lpVtbl->Commit(This)
   3128 #define IMemAllocatorCallbackTemp_Decommit(This) (This)->lpVtbl->Decommit(This)
   3129 #define IMemAllocatorCallbackTemp_GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags) (This)->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags)
   3130 #define IMemAllocatorCallbackTemp_ReleaseBuffer(This,pBuffer) (This)->lpVtbl->ReleaseBuffer(This,pBuffer)
   3131 /*** IMemAllocatorCallbackTemp methods ***/
   3132 #define IMemAllocatorCallbackTemp_SetNotify(This,pNotify) (This)->lpVtbl->SetNotify(This,pNotify)
   3133 #define IMemAllocatorCallbackTemp_GetFreeCount(This,plBuffersFree) (This)->lpVtbl->GetFreeCount(This,plBuffersFree)
   3134 #else
   3135 /*** IUnknown methods ***/
   3136 static inline HRESULT IMemAllocatorCallbackTemp_QueryInterface(IMemAllocatorCallbackTemp* This,REFIID riid,void **ppvObject) {
   3137     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3138 }
   3139 static inline ULONG IMemAllocatorCallbackTemp_AddRef(IMemAllocatorCallbackTemp* This) {
   3140     return This->lpVtbl->AddRef(This);
   3141 }
   3142 static inline ULONG IMemAllocatorCallbackTemp_Release(IMemAllocatorCallbackTemp* This) {
   3143     return This->lpVtbl->Release(This);
   3144 }
   3145 /*** IMemAllocator methods ***/
   3146 static inline HRESULT IMemAllocatorCallbackTemp_SetProperties(IMemAllocatorCallbackTemp* This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual) {
   3147     return This->lpVtbl->SetProperties(This,pRequest,pActual);
   3148 }
   3149 static inline HRESULT IMemAllocatorCallbackTemp_GetProperties(IMemAllocatorCallbackTemp* This,ALLOCATOR_PROPERTIES *pProps) {
   3150     return This->lpVtbl->GetProperties(This,pProps);
   3151 }
   3152 static inline HRESULT IMemAllocatorCallbackTemp_Commit(IMemAllocatorCallbackTemp* This) {
   3153     return This->lpVtbl->Commit(This);
   3154 }
   3155 static inline HRESULT IMemAllocatorCallbackTemp_Decommit(IMemAllocatorCallbackTemp* This) {
   3156     return This->lpVtbl->Decommit(This);
   3157 }
   3158 static inline HRESULT IMemAllocatorCallbackTemp_GetBuffer(IMemAllocatorCallbackTemp* This,IMediaSample **ppBuffer,REFERENCE_TIME *pStartTime,REFERENCE_TIME *pEndTime,DWORD dwFlags) {
   3159     return This->lpVtbl->GetBuffer(This,ppBuffer,pStartTime,pEndTime,dwFlags);
   3160 }
   3161 static inline HRESULT IMemAllocatorCallbackTemp_ReleaseBuffer(IMemAllocatorCallbackTemp* This,IMediaSample *pBuffer) {
   3162     return This->lpVtbl->ReleaseBuffer(This,pBuffer);
   3163 }
   3164 /*** IMemAllocatorCallbackTemp methods ***/
   3165 static inline HRESULT IMemAllocatorCallbackTemp_SetNotify(IMemAllocatorCallbackTemp* This,IMemAllocatorNotifyCallbackTemp *pNotify) {
   3166     return This->lpVtbl->SetNotify(This,pNotify);
   3167 }
   3168 static inline HRESULT IMemAllocatorCallbackTemp_GetFreeCount(IMemAllocatorCallbackTemp* This,LONG *plBuffersFree) {
   3169     return This->lpVtbl->GetFreeCount(This,plBuffersFree);
   3170 }
   3171 #endif
   3172 #endif
   3173 
   3174 #endif
   3175 
   3176 
   3177 #endif  /* __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__ */
   3178 
   3179 
   3180 /*****************************************************************************
   3181  * IMemAllocatorNotifyCallbackTemp interface
   3182  */
   3183 #ifndef __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
   3184 #define __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__
   3185 
   3186 DEFINE_GUID(IID_IMemAllocatorNotifyCallbackTemp, 0x92980b30, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
   3187 #if defined(__cplusplus) && !defined(CINTERFACE)
   3188 MIDL_INTERFACE("92980b30-c1de-11d2-abf5-00a0c905f375")
   3189 IMemAllocatorNotifyCallbackTemp : public IUnknown
   3190 {
   3191     virtual HRESULT STDMETHODCALLTYPE NotifyRelease(
   3192         ) = 0;
   3193 
   3194 };
   3195 #ifdef __CRT_UUID_DECL
   3196 __CRT_UUID_DECL(IMemAllocatorNotifyCallbackTemp, 0x92980b30, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
   3197 #endif
   3198 #else
   3199 typedef struct IMemAllocatorNotifyCallbackTempVtbl {
   3200     BEGIN_INTERFACE
   3201 
   3202     /*** IUnknown methods ***/
   3203     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3204         IMemAllocatorNotifyCallbackTemp *This,
   3205         REFIID riid,
   3206         void **ppvObject);
   3207 
   3208     ULONG (STDMETHODCALLTYPE *AddRef)(
   3209         IMemAllocatorNotifyCallbackTemp *This);
   3210 
   3211     ULONG (STDMETHODCALLTYPE *Release)(
   3212         IMemAllocatorNotifyCallbackTemp *This);
   3213 
   3214     /*** IMemAllocatorNotifyCallbackTemp methods ***/
   3215     HRESULT (STDMETHODCALLTYPE *NotifyRelease)(
   3216         IMemAllocatorNotifyCallbackTemp *This);
   3217 
   3218     END_INTERFACE
   3219 } IMemAllocatorNotifyCallbackTempVtbl;
   3220 
   3221 interface IMemAllocatorNotifyCallbackTemp {
   3222     CONST_VTBL IMemAllocatorNotifyCallbackTempVtbl* lpVtbl;
   3223 };
   3224 
   3225 #ifdef COBJMACROS
   3226 #ifndef WIDL_C_INLINE_WRAPPERS
   3227 /*** IUnknown methods ***/
   3228 #define IMemAllocatorNotifyCallbackTemp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3229 #define IMemAllocatorNotifyCallbackTemp_AddRef(This) (This)->lpVtbl->AddRef(This)
   3230 #define IMemAllocatorNotifyCallbackTemp_Release(This) (This)->lpVtbl->Release(This)
   3231 /*** IMemAllocatorNotifyCallbackTemp methods ***/
   3232 #define IMemAllocatorNotifyCallbackTemp_NotifyRelease(This) (This)->lpVtbl->NotifyRelease(This)
   3233 #else
   3234 /*** IUnknown methods ***/
   3235 static inline HRESULT IMemAllocatorNotifyCallbackTemp_QueryInterface(IMemAllocatorNotifyCallbackTemp* This,REFIID riid,void **ppvObject) {
   3236     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3237 }
   3238 static inline ULONG IMemAllocatorNotifyCallbackTemp_AddRef(IMemAllocatorNotifyCallbackTemp* This) {
   3239     return This->lpVtbl->AddRef(This);
   3240 }
   3241 static inline ULONG IMemAllocatorNotifyCallbackTemp_Release(IMemAllocatorNotifyCallbackTemp* This) {
   3242     return This->lpVtbl->Release(This);
   3243 }
   3244 /*** IMemAllocatorNotifyCallbackTemp methods ***/
   3245 static inline HRESULT IMemAllocatorNotifyCallbackTemp_NotifyRelease(IMemAllocatorNotifyCallbackTemp* This) {
   3246     return This->lpVtbl->NotifyRelease(This);
   3247 }
   3248 #endif
   3249 #endif
   3250 
   3251 #endif
   3252 
   3253 
   3254 #endif  /* __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__ */
   3255 
   3256 
   3257 /*****************************************************************************
   3258  * IMemInputPin interface
   3259  */
   3260 #ifndef __IMemInputPin_INTERFACE_DEFINED__
   3261 #define __IMemInputPin_INTERFACE_DEFINED__
   3262 
   3263 DEFINE_GUID(IID_IMemInputPin, 0x56a8689d, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   3264 #if defined(__cplusplus) && !defined(CINTERFACE)
   3265 MIDL_INTERFACE("56a8689d-0ad4-11ce-b03a-0020af0ba770")
   3266 IMemInputPin : public IUnknown
   3267 {
   3268     virtual HRESULT STDMETHODCALLTYPE GetAllocator(
   3269         IMemAllocator **ppAllocator) = 0;
   3270 
   3271     virtual HRESULT STDMETHODCALLTYPE NotifyAllocator(
   3272         IMemAllocator *pAllocator,
   3273         WINBOOL bReadOnly) = 0;
   3274 
   3275     virtual HRESULT STDMETHODCALLTYPE GetAllocatorRequirements(
   3276         ALLOCATOR_PROPERTIES *pProps) = 0;
   3277 
   3278     virtual HRESULT STDMETHODCALLTYPE Receive(
   3279         IMediaSample *pSample) = 0;
   3280 
   3281     virtual HRESULT STDMETHODCALLTYPE ReceiveMultiple(
   3282         IMediaSample **pSamples,
   3283         LONG nSamples,
   3284         LONG *nSamplesProcessed) = 0;
   3285 
   3286     virtual HRESULT STDMETHODCALLTYPE ReceiveCanBlock(
   3287         ) = 0;
   3288 
   3289 };
   3290 #ifdef __CRT_UUID_DECL
   3291 __CRT_UUID_DECL(IMemInputPin, 0x56a8689d, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   3292 #endif
   3293 #else
   3294 typedef struct IMemInputPinVtbl {
   3295     BEGIN_INTERFACE
   3296 
   3297     /*** IUnknown methods ***/
   3298     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3299         IMemInputPin *This,
   3300         REFIID riid,
   3301         void **ppvObject);
   3302 
   3303     ULONG (STDMETHODCALLTYPE *AddRef)(
   3304         IMemInputPin *This);
   3305 
   3306     ULONG (STDMETHODCALLTYPE *Release)(
   3307         IMemInputPin *This);
   3308 
   3309     /*** IMemInputPin methods ***/
   3310     HRESULT (STDMETHODCALLTYPE *GetAllocator)(
   3311         IMemInputPin *This,
   3312         IMemAllocator **ppAllocator);
   3313 
   3314     HRESULT (STDMETHODCALLTYPE *NotifyAllocator)(
   3315         IMemInputPin *This,
   3316         IMemAllocator *pAllocator,
   3317         WINBOOL bReadOnly);
   3318 
   3319     HRESULT (STDMETHODCALLTYPE *GetAllocatorRequirements)(
   3320         IMemInputPin *This,
   3321         ALLOCATOR_PROPERTIES *pProps);
   3322 
   3323     HRESULT (STDMETHODCALLTYPE *Receive)(
   3324         IMemInputPin *This,
   3325         IMediaSample *pSample);
   3326 
   3327     HRESULT (STDMETHODCALLTYPE *ReceiveMultiple)(
   3328         IMemInputPin *This,
   3329         IMediaSample **pSamples,
   3330         LONG nSamples,
   3331         LONG *nSamplesProcessed);
   3332 
   3333     HRESULT (STDMETHODCALLTYPE *ReceiveCanBlock)(
   3334         IMemInputPin *This);
   3335 
   3336     END_INTERFACE
   3337 } IMemInputPinVtbl;
   3338 
   3339 interface IMemInputPin {
   3340     CONST_VTBL IMemInputPinVtbl* lpVtbl;
   3341 };
   3342 
   3343 #ifdef COBJMACROS
   3344 #ifndef WIDL_C_INLINE_WRAPPERS
   3345 /*** IUnknown methods ***/
   3346 #define IMemInputPin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3347 #define IMemInputPin_AddRef(This) (This)->lpVtbl->AddRef(This)
   3348 #define IMemInputPin_Release(This) (This)->lpVtbl->Release(This)
   3349 /*** IMemInputPin methods ***/
   3350 #define IMemInputPin_GetAllocator(This,ppAllocator) (This)->lpVtbl->GetAllocator(This,ppAllocator)
   3351 #define IMemInputPin_NotifyAllocator(This,pAllocator,bReadOnly) (This)->lpVtbl->NotifyAllocator(This,pAllocator,bReadOnly)
   3352 #define IMemInputPin_GetAllocatorRequirements(This,pProps) (This)->lpVtbl->GetAllocatorRequirements(This,pProps)
   3353 #define IMemInputPin_Receive(This,pSample) (This)->lpVtbl->Receive(This,pSample)
   3354 #define IMemInputPin_ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed) (This)->lpVtbl->ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed)
   3355 #define IMemInputPin_ReceiveCanBlock(This) (This)->lpVtbl->ReceiveCanBlock(This)
   3356 #else
   3357 /*** IUnknown methods ***/
   3358 static inline HRESULT IMemInputPin_QueryInterface(IMemInputPin* This,REFIID riid,void **ppvObject) {
   3359     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3360 }
   3361 static inline ULONG IMemInputPin_AddRef(IMemInputPin* This) {
   3362     return This->lpVtbl->AddRef(This);
   3363 }
   3364 static inline ULONG IMemInputPin_Release(IMemInputPin* This) {
   3365     return This->lpVtbl->Release(This);
   3366 }
   3367 /*** IMemInputPin methods ***/
   3368 static inline HRESULT IMemInputPin_GetAllocator(IMemInputPin* This,IMemAllocator **ppAllocator) {
   3369     return This->lpVtbl->GetAllocator(This,ppAllocator);
   3370 }
   3371 static inline HRESULT IMemInputPin_NotifyAllocator(IMemInputPin* This,IMemAllocator *pAllocator,WINBOOL bReadOnly) {
   3372     return This->lpVtbl->NotifyAllocator(This,pAllocator,bReadOnly);
   3373 }
   3374 static inline HRESULT IMemInputPin_GetAllocatorRequirements(IMemInputPin* This,ALLOCATOR_PROPERTIES *pProps) {
   3375     return This->lpVtbl->GetAllocatorRequirements(This,pProps);
   3376 }
   3377 static inline HRESULT IMemInputPin_Receive(IMemInputPin* This,IMediaSample *pSample) {
   3378     return This->lpVtbl->Receive(This,pSample);
   3379 }
   3380 static inline HRESULT IMemInputPin_ReceiveMultiple(IMemInputPin* This,IMediaSample **pSamples,LONG nSamples,LONG *nSamplesProcessed) {
   3381     return This->lpVtbl->ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed);
   3382 }
   3383 static inline HRESULT IMemInputPin_ReceiveCanBlock(IMemInputPin* This) {
   3384     return This->lpVtbl->ReceiveCanBlock(This);
   3385 }
   3386 #endif
   3387 #endif
   3388 
   3389 #endif
   3390 
   3391 
   3392 #endif  /* __IMemInputPin_INTERFACE_DEFINED__ */
   3393 
   3394 typedef IMemInputPin *PMEMINPUTPIN;
   3395 
   3396 /*****************************************************************************
   3397  * IAMovieSetup interface
   3398  */
   3399 #ifndef __IAMovieSetup_INTERFACE_DEFINED__
   3400 #define __IAMovieSetup_INTERFACE_DEFINED__
   3401 
   3402 DEFINE_GUID(IID_IAMovieSetup, 0xa3d8cec0, 0x7e5a, 0x11cf, 0xbb,0xc5, 0x00,0x80,0x5f,0x6c,0xef,0x20);
   3403 #if defined(__cplusplus) && !defined(CINTERFACE)
   3404 MIDL_INTERFACE("a3d8cec0-7e5a-11cf-bbc5-00805f6cef20")
   3405 IAMovieSetup : public IUnknown
   3406 {
   3407     virtual HRESULT STDMETHODCALLTYPE Register(
   3408         ) = 0;
   3409 
   3410     virtual HRESULT STDMETHODCALLTYPE Unregister(
   3411         ) = 0;
   3412 
   3413 };
   3414 #ifdef __CRT_UUID_DECL
   3415 __CRT_UUID_DECL(IAMovieSetup, 0xa3d8cec0, 0x7e5a, 0x11cf, 0xbb,0xc5, 0x00,0x80,0x5f,0x6c,0xef,0x20)
   3416 #endif
   3417 #else
   3418 typedef struct IAMovieSetupVtbl {
   3419     BEGIN_INTERFACE
   3420 
   3421     /*** IUnknown methods ***/
   3422     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3423         IAMovieSetup *This,
   3424         REFIID riid,
   3425         void **ppvObject);
   3426 
   3427     ULONG (STDMETHODCALLTYPE *AddRef)(
   3428         IAMovieSetup *This);
   3429 
   3430     ULONG (STDMETHODCALLTYPE *Release)(
   3431         IAMovieSetup *This);
   3432 
   3433     /*** IAMovieSetup methods ***/
   3434     HRESULT (STDMETHODCALLTYPE *Register)(
   3435         IAMovieSetup *This);
   3436 
   3437     HRESULT (STDMETHODCALLTYPE *Unregister)(
   3438         IAMovieSetup *This);
   3439 
   3440     END_INTERFACE
   3441 } IAMovieSetupVtbl;
   3442 
   3443 interface IAMovieSetup {
   3444     CONST_VTBL IAMovieSetupVtbl* lpVtbl;
   3445 };
   3446 
   3447 #ifdef COBJMACROS
   3448 #ifndef WIDL_C_INLINE_WRAPPERS
   3449 /*** IUnknown methods ***/
   3450 #define IAMovieSetup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3451 #define IAMovieSetup_AddRef(This) (This)->lpVtbl->AddRef(This)
   3452 #define IAMovieSetup_Release(This) (This)->lpVtbl->Release(This)
   3453 /*** IAMovieSetup methods ***/
   3454 #define IAMovieSetup_Register(This) (This)->lpVtbl->Register(This)
   3455 #define IAMovieSetup_Unregister(This) (This)->lpVtbl->Unregister(This)
   3456 #else
   3457 /*** IUnknown methods ***/
   3458 static inline HRESULT IAMovieSetup_QueryInterface(IAMovieSetup* This,REFIID riid,void **ppvObject) {
   3459     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3460 }
   3461 static inline ULONG IAMovieSetup_AddRef(IAMovieSetup* This) {
   3462     return This->lpVtbl->AddRef(This);
   3463 }
   3464 static inline ULONG IAMovieSetup_Release(IAMovieSetup* This) {
   3465     return This->lpVtbl->Release(This);
   3466 }
   3467 /*** IAMovieSetup methods ***/
   3468 static inline HRESULT IAMovieSetup_Register(IAMovieSetup* This) {
   3469     return This->lpVtbl->Register(This);
   3470 }
   3471 static inline HRESULT IAMovieSetup_Unregister(IAMovieSetup* This) {
   3472     return This->lpVtbl->Unregister(This);
   3473 }
   3474 #endif
   3475 #endif
   3476 
   3477 #endif
   3478 
   3479 
   3480 #endif  /* __IAMovieSetup_INTERFACE_DEFINED__ */
   3481 
   3482 typedef IAMovieSetup *PAMOVIESETUP;
   3483 
   3484 typedef enum AM_SEEKING_SeekingFlags {
   3485     AM_SEEKING_NoPositioning = 0x0,
   3486     AM_SEEKING_AbsolutePositioning = 0x1,
   3487     AM_SEEKING_RelativePositioning = 0x2,
   3488     AM_SEEKING_IncrementalPositioning = 0x3,
   3489     AM_SEEKING_PositioningBitsMask = 0x3,
   3490     AM_SEEKING_SeekToKeyFrame = 0x4,
   3491     AM_SEEKING_ReturnTime = 0x8,
   3492     AM_SEEKING_Segment = 0x10,
   3493     AM_SEEKING_NoFlush = 0x20
   3494 } AM_SEEKING_SEEKING_FLAGS;
   3495 
   3496 typedef enum AM_SEEKING_SeekingCapabilities {
   3497     AM_SEEKING_CanSeekAbsolute = 0x1,
   3498     AM_SEEKING_CanSeekForwards = 0x2,
   3499     AM_SEEKING_CanSeekBackwards = 0x4,
   3500     AM_SEEKING_CanGetCurrentPos = 0x8,
   3501     AM_SEEKING_CanGetStopPos = 0x10,
   3502     AM_SEEKING_CanGetDuration = 0x20,
   3503     AM_SEEKING_CanPlayBackwards = 0x40,
   3504     AM_SEEKING_CanDoSegments = 0x80,
   3505     AM_SEEKING_Source = 0x100
   3506 } AM_SEEKING_SEEKING_CAPABILITIES;
   3507 
   3508 /*****************************************************************************
   3509  * IMediaSeeking interface
   3510  */
   3511 #ifndef __IMediaSeeking_INTERFACE_DEFINED__
   3512 #define __IMediaSeeking_INTERFACE_DEFINED__
   3513 
   3514 DEFINE_GUID(IID_IMediaSeeking, 0x36b73880, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
   3515 #if defined(__cplusplus) && !defined(CINTERFACE)
   3516 MIDL_INTERFACE("36b73880-c2c8-11cf-8b46-00805f6cef60")
   3517 IMediaSeeking : public IUnknown
   3518 {
   3519     virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
   3520         DWORD *pCapabilities) = 0;
   3521 
   3522     virtual HRESULT STDMETHODCALLTYPE CheckCapabilities(
   3523         DWORD *pCapabilities) = 0;
   3524 
   3525     virtual HRESULT STDMETHODCALLTYPE IsFormatSupported(
   3526         const GUID *pFormat) = 0;
   3527 
   3528     virtual HRESULT STDMETHODCALLTYPE QueryPreferredFormat(
   3529         GUID *pFormat) = 0;
   3530 
   3531     virtual HRESULT STDMETHODCALLTYPE GetTimeFormat(
   3532         GUID *pFormat) = 0;
   3533 
   3534     virtual HRESULT STDMETHODCALLTYPE IsUsingTimeFormat(
   3535         const GUID *pFormat) = 0;
   3536 
   3537     virtual HRESULT STDMETHODCALLTYPE SetTimeFormat(
   3538         const GUID *pFormat) = 0;
   3539 
   3540     virtual HRESULT STDMETHODCALLTYPE GetDuration(
   3541         LONGLONG *pDuration) = 0;
   3542 
   3543     virtual HRESULT STDMETHODCALLTYPE GetStopPosition(
   3544         LONGLONG *pStop) = 0;
   3545 
   3546     virtual HRESULT STDMETHODCALLTYPE GetCurrentPosition(
   3547         LONGLONG *pCurrent) = 0;
   3548 
   3549     virtual HRESULT STDMETHODCALLTYPE ConvertTimeFormat(
   3550         LONGLONG *pTarget,
   3551         const GUID *pTargetFormat,
   3552         LONGLONG Source,
   3553         const GUID *pSourceFormat) = 0;
   3554 
   3555     virtual HRESULT STDMETHODCALLTYPE SetPositions(
   3556         LONGLONG *pCurrent,
   3557         DWORD dwCurrentFlags,
   3558         LONGLONG *pStop,
   3559         DWORD dwStopFlags) = 0;
   3560 
   3561     virtual HRESULT STDMETHODCALLTYPE GetPositions(
   3562         LONGLONG *pCurrent,
   3563         LONGLONG *pStop) = 0;
   3564 
   3565     virtual HRESULT STDMETHODCALLTYPE GetAvailable(
   3566         LONGLONG *pEarliest,
   3567         LONGLONG *pLatest) = 0;
   3568 
   3569     virtual HRESULT STDMETHODCALLTYPE SetRate(
   3570         double dRate) = 0;
   3571 
   3572     virtual HRESULT STDMETHODCALLTYPE GetRate(
   3573         double *pdRate) = 0;
   3574 
   3575     virtual HRESULT STDMETHODCALLTYPE GetPreroll(
   3576         LONGLONG *pllPreroll) = 0;
   3577 
   3578 };
   3579 #ifdef __CRT_UUID_DECL
   3580 __CRT_UUID_DECL(IMediaSeeking, 0x36b73880, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
   3581 #endif
   3582 #else
   3583 typedef struct IMediaSeekingVtbl {
   3584     BEGIN_INTERFACE
   3585 
   3586     /*** IUnknown methods ***/
   3587     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3588         IMediaSeeking *This,
   3589         REFIID riid,
   3590         void **ppvObject);
   3591 
   3592     ULONG (STDMETHODCALLTYPE *AddRef)(
   3593         IMediaSeeking *This);
   3594 
   3595     ULONG (STDMETHODCALLTYPE *Release)(
   3596         IMediaSeeking *This);
   3597 
   3598     /*** IMediaSeeking methods ***/
   3599     HRESULT (STDMETHODCALLTYPE *GetCapabilities)(
   3600         IMediaSeeking *This,
   3601         DWORD *pCapabilities);
   3602 
   3603     HRESULT (STDMETHODCALLTYPE *CheckCapabilities)(
   3604         IMediaSeeking *This,
   3605         DWORD *pCapabilities);
   3606 
   3607     HRESULT (STDMETHODCALLTYPE *IsFormatSupported)(
   3608         IMediaSeeking *This,
   3609         const GUID *pFormat);
   3610 
   3611     HRESULT (STDMETHODCALLTYPE *QueryPreferredFormat)(
   3612         IMediaSeeking *This,
   3613         GUID *pFormat);
   3614 
   3615     HRESULT (STDMETHODCALLTYPE *GetTimeFormat)(
   3616         IMediaSeeking *This,
   3617         GUID *pFormat);
   3618 
   3619     HRESULT (STDMETHODCALLTYPE *IsUsingTimeFormat)(
   3620         IMediaSeeking *This,
   3621         const GUID *pFormat);
   3622 
   3623     HRESULT (STDMETHODCALLTYPE *SetTimeFormat)(
   3624         IMediaSeeking *This,
   3625         const GUID *pFormat);
   3626 
   3627     HRESULT (STDMETHODCALLTYPE *GetDuration)(
   3628         IMediaSeeking *This,
   3629         LONGLONG *pDuration);
   3630 
   3631     HRESULT (STDMETHODCALLTYPE *GetStopPosition)(
   3632         IMediaSeeking *This,
   3633         LONGLONG *pStop);
   3634 
   3635     HRESULT (STDMETHODCALLTYPE *GetCurrentPosition)(
   3636         IMediaSeeking *This,
   3637         LONGLONG *pCurrent);
   3638 
   3639     HRESULT (STDMETHODCALLTYPE *ConvertTimeFormat)(
   3640         IMediaSeeking *This,
   3641         LONGLONG *pTarget,
   3642         const GUID *pTargetFormat,
   3643         LONGLONG Source,
   3644         const GUID *pSourceFormat);
   3645 
   3646     HRESULT (STDMETHODCALLTYPE *SetPositions)(
   3647         IMediaSeeking *This,
   3648         LONGLONG *pCurrent,
   3649         DWORD dwCurrentFlags,
   3650         LONGLONG *pStop,
   3651         DWORD dwStopFlags);
   3652 
   3653     HRESULT (STDMETHODCALLTYPE *GetPositions)(
   3654         IMediaSeeking *This,
   3655         LONGLONG *pCurrent,
   3656         LONGLONG *pStop);
   3657 
   3658     HRESULT (STDMETHODCALLTYPE *GetAvailable)(
   3659         IMediaSeeking *This,
   3660         LONGLONG *pEarliest,
   3661         LONGLONG *pLatest);
   3662 
   3663     HRESULT (STDMETHODCALLTYPE *SetRate)(
   3664         IMediaSeeking *This,
   3665         double dRate);
   3666 
   3667     HRESULT (STDMETHODCALLTYPE *GetRate)(
   3668         IMediaSeeking *This,
   3669         double *pdRate);
   3670 
   3671     HRESULT (STDMETHODCALLTYPE *GetPreroll)(
   3672         IMediaSeeking *This,
   3673         LONGLONG *pllPreroll);
   3674 
   3675     END_INTERFACE
   3676 } IMediaSeekingVtbl;
   3677 
   3678 interface IMediaSeeking {
   3679     CONST_VTBL IMediaSeekingVtbl* lpVtbl;
   3680 };
   3681 
   3682 #ifdef COBJMACROS
   3683 #ifndef WIDL_C_INLINE_WRAPPERS
   3684 /*** IUnknown methods ***/
   3685 #define IMediaSeeking_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3686 #define IMediaSeeking_AddRef(This) (This)->lpVtbl->AddRef(This)
   3687 #define IMediaSeeking_Release(This) (This)->lpVtbl->Release(This)
   3688 /*** IMediaSeeking methods ***/
   3689 #define IMediaSeeking_GetCapabilities(This,pCapabilities) (This)->lpVtbl->GetCapabilities(This,pCapabilities)
   3690 #define IMediaSeeking_CheckCapabilities(This,pCapabilities) (This)->lpVtbl->CheckCapabilities(This,pCapabilities)
   3691 #define IMediaSeeking_IsFormatSupported(This,pFormat) (This)->lpVtbl->IsFormatSupported(This,pFormat)
   3692 #define IMediaSeeking_QueryPreferredFormat(This,pFormat) (This)->lpVtbl->QueryPreferredFormat(This,pFormat)
   3693 #define IMediaSeeking_GetTimeFormat(This,pFormat) (This)->lpVtbl->GetTimeFormat(This,pFormat)
   3694 #define IMediaSeeking_IsUsingTimeFormat(This,pFormat) (This)->lpVtbl->IsUsingTimeFormat(This,pFormat)
   3695 #define IMediaSeeking_SetTimeFormat(This,pFormat) (This)->lpVtbl->SetTimeFormat(This,pFormat)
   3696 #define IMediaSeeking_GetDuration(This,pDuration) (This)->lpVtbl->GetDuration(This,pDuration)
   3697 #define IMediaSeeking_GetStopPosition(This,pStop) (This)->lpVtbl->GetStopPosition(This,pStop)
   3698 #define IMediaSeeking_GetCurrentPosition(This,pCurrent) (This)->lpVtbl->GetCurrentPosition(This,pCurrent)
   3699 #define IMediaSeeking_ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat) (This)->lpVtbl->ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat)
   3700 #define IMediaSeeking_SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags) (This)->lpVtbl->SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags)
   3701 #define IMediaSeeking_GetPositions(This,pCurrent,pStop) (This)->lpVtbl->GetPositions(This,pCurrent,pStop)
   3702 #define IMediaSeeking_GetAvailable(This,pEarliest,pLatest) (This)->lpVtbl->GetAvailable(This,pEarliest,pLatest)
   3703 #define IMediaSeeking_SetRate(This,dRate) (This)->lpVtbl->SetRate(This,dRate)
   3704 #define IMediaSeeking_GetRate(This,pdRate) (This)->lpVtbl->GetRate(This,pdRate)
   3705 #define IMediaSeeking_GetPreroll(This,pllPreroll) (This)->lpVtbl->GetPreroll(This,pllPreroll)
   3706 #else
   3707 /*** IUnknown methods ***/
   3708 static inline HRESULT IMediaSeeking_QueryInterface(IMediaSeeking* This,REFIID riid,void **ppvObject) {
   3709     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3710 }
   3711 static inline ULONG IMediaSeeking_AddRef(IMediaSeeking* This) {
   3712     return This->lpVtbl->AddRef(This);
   3713 }
   3714 static inline ULONG IMediaSeeking_Release(IMediaSeeking* This) {
   3715     return This->lpVtbl->Release(This);
   3716 }
   3717 /*** IMediaSeeking methods ***/
   3718 static inline HRESULT IMediaSeeking_GetCapabilities(IMediaSeeking* This,DWORD *pCapabilities) {
   3719     return This->lpVtbl->GetCapabilities(This,pCapabilities);
   3720 }
   3721 static inline HRESULT IMediaSeeking_CheckCapabilities(IMediaSeeking* This,DWORD *pCapabilities) {
   3722     return This->lpVtbl->CheckCapabilities(This,pCapabilities);
   3723 }
   3724 static inline HRESULT IMediaSeeking_IsFormatSupported(IMediaSeeking* This,const GUID *pFormat) {
   3725     return This->lpVtbl->IsFormatSupported(This,pFormat);
   3726 }
   3727 static inline HRESULT IMediaSeeking_QueryPreferredFormat(IMediaSeeking* This,GUID *pFormat) {
   3728     return This->lpVtbl->QueryPreferredFormat(This,pFormat);
   3729 }
   3730 static inline HRESULT IMediaSeeking_GetTimeFormat(IMediaSeeking* This,GUID *pFormat) {
   3731     return This->lpVtbl->GetTimeFormat(This,pFormat);
   3732 }
   3733 static inline HRESULT IMediaSeeking_IsUsingTimeFormat(IMediaSeeking* This,const GUID *pFormat) {
   3734     return This->lpVtbl->IsUsingTimeFormat(This,pFormat);
   3735 }
   3736 static inline HRESULT IMediaSeeking_SetTimeFormat(IMediaSeeking* This,const GUID *pFormat) {
   3737     return This->lpVtbl->SetTimeFormat(This,pFormat);
   3738 }
   3739 static inline HRESULT IMediaSeeking_GetDuration(IMediaSeeking* This,LONGLONG *pDuration) {
   3740     return This->lpVtbl->GetDuration(This,pDuration);
   3741 }
   3742 static inline HRESULT IMediaSeeking_GetStopPosition(IMediaSeeking* This,LONGLONG *pStop) {
   3743     return This->lpVtbl->GetStopPosition(This,pStop);
   3744 }
   3745 static inline HRESULT IMediaSeeking_GetCurrentPosition(IMediaSeeking* This,LONGLONG *pCurrent) {
   3746     return This->lpVtbl->GetCurrentPosition(This,pCurrent);
   3747 }
   3748 static inline HRESULT IMediaSeeking_ConvertTimeFormat(IMediaSeeking* This,LONGLONG *pTarget,const GUID *pTargetFormat,LONGLONG Source,const GUID *pSourceFormat) {
   3749     return This->lpVtbl->ConvertTimeFormat(This,pTarget,pTargetFormat,Source,pSourceFormat);
   3750 }
   3751 static inline HRESULT IMediaSeeking_SetPositions(IMediaSeeking* This,LONGLONG *pCurrent,DWORD dwCurrentFlags,LONGLONG *pStop,DWORD dwStopFlags) {
   3752     return This->lpVtbl->SetPositions(This,pCurrent,dwCurrentFlags,pStop,dwStopFlags);
   3753 }
   3754 static inline HRESULT IMediaSeeking_GetPositions(IMediaSeeking* This,LONGLONG *pCurrent,LONGLONG *pStop) {
   3755     return This->lpVtbl->GetPositions(This,pCurrent,pStop);
   3756 }
   3757 static inline HRESULT IMediaSeeking_GetAvailable(IMediaSeeking* This,LONGLONG *pEarliest,LONGLONG *pLatest) {
   3758     return This->lpVtbl->GetAvailable(This,pEarliest,pLatest);
   3759 }
   3760 static inline HRESULT IMediaSeeking_SetRate(IMediaSeeking* This,double dRate) {
   3761     return This->lpVtbl->SetRate(This,dRate);
   3762 }
   3763 static inline HRESULT IMediaSeeking_GetRate(IMediaSeeking* This,double *pdRate) {
   3764     return This->lpVtbl->GetRate(This,pdRate);
   3765 }
   3766 static inline HRESULT IMediaSeeking_GetPreroll(IMediaSeeking* This,LONGLONG *pllPreroll) {
   3767     return This->lpVtbl->GetPreroll(This,pllPreroll);
   3768 }
   3769 #endif
   3770 #endif
   3771 
   3772 #endif
   3773 
   3774 
   3775 #endif  /* __IMediaSeeking_INTERFACE_DEFINED__ */
   3776 
   3777 typedef IMediaSeeking *PMEDIASEEKING;
   3778 
   3779 enum tagAM_MEDIAEVENT_FLAGS {
   3780   AM_MEDIAEVENT_NONOTIFY = 0x1
   3781 };
   3782 
   3783 #endif
   3784 #ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
   3785 #define __IAMAnalogVideoDecoder_FWD_DEFINED__
   3786 typedef interface IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
   3787 #ifdef __cplusplus
   3788 interface IAMAnalogVideoDecoder;
   3789 #endif /* __cplusplus */
   3790 #endif
   3791 
   3792 #ifndef __IAMAnalogVideoEncoder_FWD_DEFINED__
   3793 #define __IAMAnalogVideoEncoder_FWD_DEFINED__
   3794 typedef interface IAMAnalogVideoEncoder IAMAnalogVideoEncoder;
   3795 #ifdef __cplusplus
   3796 interface IAMAnalogVideoEncoder;
   3797 #endif /* __cplusplus */
   3798 #endif
   3799 
   3800 #ifndef __IAMAudioInputMixer_FWD_DEFINED__
   3801 #define __IAMAudioInputMixer_FWD_DEFINED__
   3802 typedef interface IAMAudioInputMixer IAMAudioInputMixer;
   3803 #ifdef __cplusplus
   3804 interface IAMAudioInputMixer;
   3805 #endif /* __cplusplus */
   3806 #endif
   3807 
   3808 #ifndef __IAMAudioRendererStats_FWD_DEFINED__
   3809 #define __IAMAudioRendererStats_FWD_DEFINED__
   3810 typedef interface IAMAudioRendererStats IAMAudioRendererStats;
   3811 #ifdef __cplusplus
   3812 interface IAMAudioRendererStats;
   3813 #endif /* __cplusplus */
   3814 #endif
   3815 
   3816 #ifndef __IAMBufferNegotiation_FWD_DEFINED__
   3817 #define __IAMBufferNegotiation_FWD_DEFINED__
   3818 typedef interface IAMBufferNegotiation IAMBufferNegotiation;
   3819 #ifdef __cplusplus
   3820 interface IAMBufferNegotiation;
   3821 #endif /* __cplusplus */
   3822 #endif
   3823 
   3824 #ifndef __IAMCameraControl_FWD_DEFINED__
   3825 #define __IAMCameraControl_FWD_DEFINED__
   3826 typedef interface IAMCameraControl IAMCameraControl;
   3827 #ifdef __cplusplus
   3828 interface IAMCameraControl;
   3829 #endif /* __cplusplus */
   3830 #endif
   3831 
   3832 #ifndef __IAMCertifiedOutputProtection_FWD_DEFINED__
   3833 #define __IAMCertifiedOutputProtection_FWD_DEFINED__
   3834 typedef interface IAMCertifiedOutputProtection IAMCertifiedOutputProtection;
   3835 #ifdef __cplusplus
   3836 interface IAMCertifiedOutputProtection;
   3837 #endif /* __cplusplus */
   3838 #endif
   3839 
   3840 #ifndef __IAMClockSlave_FWD_DEFINED__
   3841 #define __IAMClockSlave_FWD_DEFINED__
   3842 typedef interface IAMClockSlave IAMClockSlave;
   3843 #ifdef __cplusplus
   3844 interface IAMClockSlave;
   3845 #endif /* __cplusplus */
   3846 #endif
   3847 
   3848 #ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__
   3849 #define __IAMCopyCaptureFileProgress_FWD_DEFINED__
   3850 typedef interface IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
   3851 #ifdef __cplusplus
   3852 interface IAMCopyCaptureFileProgress;
   3853 #endif /* __cplusplus */
   3854 #endif
   3855 
   3856 #ifndef __IAMCrossbar_FWD_DEFINED__
   3857 #define __IAMCrossbar_FWD_DEFINED__
   3858 typedef interface IAMCrossbar IAMCrossbar;
   3859 #ifdef __cplusplus
   3860 interface IAMCrossbar;
   3861 #endif /* __cplusplus */
   3862 #endif
   3863 
   3864 #ifndef __IAMDevMemoryAllocator_FWD_DEFINED__
   3865 #define __IAMDevMemoryAllocator_FWD_DEFINED__
   3866 typedef interface IAMDevMemoryAllocator IAMDevMemoryAllocator;
   3867 #ifdef __cplusplus
   3868 interface IAMDevMemoryAllocator;
   3869 #endif /* __cplusplus */
   3870 #endif
   3871 
   3872 #ifndef __IAMDevMemoryControl_FWD_DEFINED__
   3873 #define __IAMDevMemoryControl_FWD_DEFINED__
   3874 typedef interface IAMDevMemoryControl IAMDevMemoryControl;
   3875 #ifdef __cplusplus
   3876 interface IAMDevMemoryControl;
   3877 #endif /* __cplusplus */
   3878 #endif
   3879 
   3880 #ifndef __IAMDroppedFrames_FWD_DEFINED__
   3881 #define __IAMDroppedFrames_FWD_DEFINED__
   3882 typedef interface IAMDroppedFrames IAMDroppedFrames;
   3883 #ifdef __cplusplus
   3884 interface IAMDroppedFrames;
   3885 #endif /* __cplusplus */
   3886 #endif
   3887 
   3888 #ifndef __IAMExtDevice_FWD_DEFINED__
   3889 #define __IAMExtDevice_FWD_DEFINED__
   3890 typedef interface IAMExtDevice IAMExtDevice;
   3891 #ifdef __cplusplus
   3892 interface IAMExtDevice;
   3893 #endif /* __cplusplus */
   3894 #endif
   3895 
   3896 #ifndef __IAMExtTransport_FWD_DEFINED__
   3897 #define __IAMExtTransport_FWD_DEFINED__
   3898 typedef interface IAMExtTransport IAMExtTransport;
   3899 #ifdef __cplusplus
   3900 interface IAMExtTransport;
   3901 #endif /* __cplusplus */
   3902 #endif
   3903 
   3904 #ifndef __IAMGraphStreams_FWD_DEFINED__
   3905 #define __IAMGraphStreams_FWD_DEFINED__
   3906 typedef interface IAMGraphStreams IAMGraphStreams;
   3907 #ifdef __cplusplus
   3908 interface IAMGraphStreams;
   3909 #endif /* __cplusplus */
   3910 #endif
   3911 
   3912 #ifndef __IAMLatency_FWD_DEFINED__
   3913 #define __IAMLatency_FWD_DEFINED__
   3914 typedef interface IAMLatency IAMLatency;
   3915 #ifdef __cplusplus
   3916 interface IAMLatency;
   3917 #endif /* __cplusplus */
   3918 #endif
   3919 
   3920 #ifndef __IAMOpenProgress_FWD_DEFINED__
   3921 #define __IAMOpenProgress_FWD_DEFINED__
   3922 typedef interface IAMOpenProgress IAMOpenProgress;
   3923 #ifdef __cplusplus
   3924 interface IAMOpenProgress;
   3925 #endif /* __cplusplus */
   3926 #endif
   3927 
   3928 #ifndef __IAMOverlayFX_FWD_DEFINED__
   3929 #define __IAMOverlayFX_FWD_DEFINED__
   3930 typedef interface IAMOverlayFX IAMOverlayFX;
   3931 #ifdef __cplusplus
   3932 interface IAMOverlayFX;
   3933 #endif /* __cplusplus */
   3934 #endif
   3935 
   3936 #ifndef __IAMPhysicalPinInfo_FWD_DEFINED__
   3937 #define __IAMPhysicalPinInfo_FWD_DEFINED__
   3938 typedef interface IAMPhysicalPinInfo IAMPhysicalPinInfo;
   3939 #ifdef __cplusplus
   3940 interface IAMPhysicalPinInfo;
   3941 #endif /* __cplusplus */
   3942 #endif
   3943 
   3944 #ifndef __IAMPushSource_FWD_DEFINED__
   3945 #define __IAMPushSource_FWD_DEFINED__
   3946 typedef interface IAMPushSource IAMPushSource;
   3947 #ifdef __cplusplus
   3948 interface IAMPushSource;
   3949 #endif /* __cplusplus */
   3950 #endif
   3951 
   3952 #ifndef __IAMStreamConfig_FWD_DEFINED__
   3953 #define __IAMStreamConfig_FWD_DEFINED__
   3954 typedef interface IAMStreamConfig IAMStreamConfig;
   3955 #ifdef __cplusplus
   3956 interface IAMStreamConfig;
   3957 #endif /* __cplusplus */
   3958 #endif
   3959 
   3960 #ifndef __IAMTimecodeDisplay_FWD_DEFINED__
   3961 #define __IAMTimecodeDisplay_FWD_DEFINED__
   3962 typedef interface IAMTimecodeDisplay IAMTimecodeDisplay;
   3963 #ifdef __cplusplus
   3964 interface IAMTimecodeDisplay;
   3965 #endif /* __cplusplus */
   3966 #endif
   3967 
   3968 #ifndef __IAMTimecodeGenerator_FWD_DEFINED__
   3969 #define __IAMTimecodeGenerator_FWD_DEFINED__
   3970 typedef interface IAMTimecodeGenerator IAMTimecodeGenerator;
   3971 #ifdef __cplusplus
   3972 interface IAMTimecodeGenerator;
   3973 #endif /* __cplusplus */
   3974 #endif
   3975 
   3976 #ifndef __IAMTimecodeReader_FWD_DEFINED__
   3977 #define __IAMTimecodeReader_FWD_DEFINED__
   3978 typedef interface IAMTimecodeReader IAMTimecodeReader;
   3979 #ifdef __cplusplus
   3980 interface IAMTimecodeReader;
   3981 #endif /* __cplusplus */
   3982 #endif
   3983 
   3984 #ifndef __IAMTVTuner_FWD_DEFINED__
   3985 #define __IAMTVTuner_FWD_DEFINED__
   3986 typedef interface IAMTVTuner IAMTVTuner;
   3987 #ifdef __cplusplus
   3988 interface IAMTVTuner;
   3989 #endif /* __cplusplus */
   3990 #endif
   3991 
   3992 #ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__
   3993 #define __IAMVfwCaptureDialogs_FWD_DEFINED__
   3994 typedef interface IAMVfwCaptureDialogs IAMVfwCaptureDialogs;
   3995 #ifdef __cplusplus
   3996 interface IAMVfwCaptureDialogs;
   3997 #endif /* __cplusplus */
   3998 #endif
   3999 
   4000 #ifndef __IAMVfwCompressDialogs_FWD_DEFINED__
   4001 #define __IAMVfwCompressDialogs_FWD_DEFINED__
   4002 typedef interface IAMVfwCompressDialogs IAMVfwCompressDialogs;
   4003 #ifdef __cplusplus
   4004 interface IAMVfwCompressDialogs;
   4005 #endif /* __cplusplus */
   4006 #endif
   4007 
   4008 #ifndef __IAMVideoCompression_FWD_DEFINED__
   4009 #define __IAMVideoCompression_FWD_DEFINED__
   4010 typedef interface IAMVideoCompression IAMVideoCompression;
   4011 #ifdef __cplusplus
   4012 interface IAMVideoCompression;
   4013 #endif /* __cplusplus */
   4014 #endif
   4015 
   4016 #ifndef __IAMVideoDecimationProperties_FWD_DEFINED__
   4017 #define __IAMVideoDecimationProperties_FWD_DEFINED__
   4018 typedef interface IAMVideoDecimationProperties IAMVideoDecimationProperties;
   4019 #ifdef __cplusplus
   4020 interface IAMVideoDecimationProperties;
   4021 #endif /* __cplusplus */
   4022 #endif
   4023 
   4024 #ifndef __IAMVideoProcAmp_FWD_DEFINED__
   4025 #define __IAMVideoProcAmp_FWD_DEFINED__
   4026 typedef interface IAMVideoProcAmp IAMVideoProcAmp;
   4027 #ifdef __cplusplus
   4028 interface IAMVideoProcAmp;
   4029 #endif /* __cplusplus */
   4030 #endif
   4031 
   4032 #ifndef __IAMGraphBuilderCallback_FWD_DEFINED__
   4033 #define __IAMGraphBuilderCallback_FWD_DEFINED__
   4034 typedef interface IAMGraphBuilderCallback IAMGraphBuilderCallback;
   4035 #ifdef __cplusplus
   4036 interface IAMGraphBuilderCallback;
   4037 #endif /* __cplusplus */
   4038 #endif
   4039 
   4040 #ifndef __ICaptureGraphBuilder_FWD_DEFINED__
   4041 #define __ICaptureGraphBuilder_FWD_DEFINED__
   4042 typedef interface ICaptureGraphBuilder ICaptureGraphBuilder;
   4043 #ifdef __cplusplus
   4044 interface ICaptureGraphBuilder;
   4045 #endif /* __cplusplus */
   4046 #endif
   4047 
   4048 #ifndef __ICaptureGraphBuilder2_FWD_DEFINED__
   4049 #define __ICaptureGraphBuilder2_FWD_DEFINED__
   4050 typedef interface ICaptureGraphBuilder2 ICaptureGraphBuilder2;
   4051 #ifdef __cplusplus
   4052 interface ICaptureGraphBuilder2;
   4053 #endif /* __cplusplus */
   4054 #endif
   4055 
   4056 #ifndef __IConfigAviMux_FWD_DEFINED__
   4057 #define __IConfigAviMux_FWD_DEFINED__
   4058 typedef interface IConfigAviMux IConfigAviMux;
   4059 #ifdef __cplusplus
   4060 interface IConfigAviMux;
   4061 #endif /* __cplusplus */
   4062 #endif
   4063 
   4064 #ifndef __IConfigInterleaving_FWD_DEFINED__
   4065 #define __IConfigInterleaving_FWD_DEFINED__
   4066 typedef interface IConfigInterleaving IConfigInterleaving;
   4067 #ifdef __cplusplus
   4068 interface IConfigInterleaving;
   4069 #endif /* __cplusplus */
   4070 #endif
   4071 
   4072 #ifndef __IDecimateVideoImage_FWD_DEFINED__
   4073 #define __IDecimateVideoImage_FWD_DEFINED__
   4074 typedef interface IDecimateVideoImage IDecimateVideoImage;
   4075 #ifdef __cplusplus
   4076 interface IDecimateVideoImage;
   4077 #endif /* __cplusplus */
   4078 #endif
   4079 
   4080 #ifndef __IDrawVideoImage_FWD_DEFINED__
   4081 #define __IDrawVideoImage_FWD_DEFINED__
   4082 typedef interface IDrawVideoImage IDrawVideoImage;
   4083 #ifdef __cplusplus
   4084 interface IDrawVideoImage;
   4085 #endif /* __cplusplus */
   4086 #endif
   4087 
   4088 #ifndef __IEnumRegFilters_FWD_DEFINED__
   4089 #define __IEnumRegFilters_FWD_DEFINED__
   4090 typedef interface IEnumRegFilters IEnumRegFilters;
   4091 #ifdef __cplusplus
   4092 interface IEnumRegFilters;
   4093 #endif /* __cplusplus */
   4094 #endif
   4095 
   4096 #ifndef __IEnumStreamIdMap_FWD_DEFINED__
   4097 #define __IEnumStreamIdMap_FWD_DEFINED__
   4098 typedef interface IEnumStreamIdMap IEnumStreamIdMap;
   4099 #ifdef __cplusplus
   4100 interface IEnumStreamIdMap;
   4101 #endif /* __cplusplus */
   4102 #endif
   4103 
   4104 #ifndef __IFileSourceFilter_FWD_DEFINED__
   4105 #define __IFileSourceFilter_FWD_DEFINED__
   4106 typedef interface IFileSourceFilter IFileSourceFilter;
   4107 #ifdef __cplusplus
   4108 interface IFileSourceFilter;
   4109 #endif /* __cplusplus */
   4110 #endif
   4111 
   4112 #ifndef __IFileSinkFilter_FWD_DEFINED__
   4113 #define __IFileSinkFilter_FWD_DEFINED__
   4114 typedef interface IFileSinkFilter IFileSinkFilter;
   4115 #ifdef __cplusplus
   4116 interface IFileSinkFilter;
   4117 #endif /* __cplusplus */
   4118 #endif
   4119 
   4120 #ifndef __IFileSinkFilter2_FWD_DEFINED__
   4121 #define __IFileSinkFilter2_FWD_DEFINED__
   4122 typedef interface IFileSinkFilter2 IFileSinkFilter2;
   4123 #ifdef __cplusplus
   4124 interface IFileSinkFilter2;
   4125 #endif /* __cplusplus */
   4126 #endif
   4127 
   4128 #ifndef __IFilterMapper_FWD_DEFINED__
   4129 #define __IFilterMapper_FWD_DEFINED__
   4130 typedef interface IFilterMapper IFilterMapper;
   4131 #ifdef __cplusplus
   4132 interface IFilterMapper;
   4133 #endif /* __cplusplus */
   4134 #endif
   4135 
   4136 #ifndef __IFilterMapper2_FWD_DEFINED__
   4137 #define __IFilterMapper2_FWD_DEFINED__
   4138 typedef interface IFilterMapper2 IFilterMapper2;
   4139 #ifdef __cplusplus
   4140 interface IFilterMapper2;
   4141 #endif /* __cplusplus */
   4142 #endif
   4143 
   4144 #ifndef __IGraphBuilder_FWD_DEFINED__
   4145 #define __IGraphBuilder_FWD_DEFINED__
   4146 typedef interface IGraphBuilder IGraphBuilder;
   4147 #ifdef __cplusplus
   4148 interface IGraphBuilder;
   4149 #endif /* __cplusplus */
   4150 #endif
   4151 
   4152 #ifndef __IKsPropertySet_FWD_DEFINED__
   4153 #define __IKsPropertySet_FWD_DEFINED__
   4154 typedef interface IKsPropertySet IKsPropertySet;
   4155 #ifdef __cplusplus
   4156 interface IKsPropertySet;
   4157 #endif /* __cplusplus */
   4158 #endif
   4159 
   4160 #ifndef __IMediaEventSink_FWD_DEFINED__
   4161 #define __IMediaEventSink_FWD_DEFINED__
   4162 typedef interface IMediaEventSink IMediaEventSink;
   4163 #ifdef __cplusplus
   4164 interface IMediaEventSink;
   4165 #endif /* __cplusplus */
   4166 #endif
   4167 
   4168 #ifndef __IMpeg2Demultiplexer_FWD_DEFINED__
   4169 #define __IMpeg2Demultiplexer_FWD_DEFINED__
   4170 typedef interface IMpeg2Demultiplexer IMpeg2Demultiplexer;
   4171 #ifdef __cplusplus
   4172 interface IMpeg2Demultiplexer;
   4173 #endif /* __cplusplus */
   4174 #endif
   4175 
   4176 #ifndef __IMPEG2StreamIdMap_FWD_DEFINED__
   4177 #define __IMPEG2StreamIdMap_FWD_DEFINED__
   4178 typedef interface IMPEG2StreamIdMap IMPEG2StreamIdMap;
   4179 #ifdef __cplusplus
   4180 interface IMPEG2StreamIdMap;
   4181 #endif /* __cplusplus */
   4182 #endif
   4183 
   4184 #ifndef __IOverlay_FWD_DEFINED__
   4185 #define __IOverlay_FWD_DEFINED__
   4186 typedef interface IOverlay IOverlay;
   4187 #ifdef __cplusplus
   4188 interface IOverlay;
   4189 #endif /* __cplusplus */
   4190 #endif
   4191 
   4192 #ifndef __IOverlayNotify_FWD_DEFINED__
   4193 #define __IOverlayNotify_FWD_DEFINED__
   4194 typedef interface IOverlayNotify IOverlayNotify;
   4195 #ifdef __cplusplus
   4196 interface IOverlayNotify;
   4197 #endif /* __cplusplus */
   4198 #endif
   4199 
   4200 #ifndef __IOverlayNotify2_FWD_DEFINED__
   4201 #define __IOverlayNotify2_FWD_DEFINED__
   4202 typedef interface IOverlayNotify2 IOverlayNotify2;
   4203 #ifdef __cplusplus
   4204 interface IOverlayNotify2;
   4205 #endif /* __cplusplus */
   4206 #endif
   4207 
   4208 #ifndef __IQualityControl_FWD_DEFINED__
   4209 #define __IQualityControl_FWD_DEFINED__
   4210 typedef interface IQualityControl IQualityControl;
   4211 #ifdef __cplusplus
   4212 interface IQualityControl;
   4213 #endif /* __cplusplus */
   4214 #endif
   4215 
   4216 #ifndef __ISeekingPassThru_FWD_DEFINED__
   4217 #define __ISeekingPassThru_FWD_DEFINED__
   4218 typedef interface ISeekingPassThru ISeekingPassThru;
   4219 #ifdef __cplusplus
   4220 interface ISeekingPassThru;
   4221 #endif /* __cplusplus */
   4222 #endif
   4223 
   4224 typedef enum tagAnalogVideoStandard {
   4225     AnalogVideo_None = 0x0,
   4226     AnalogVideo_NTSC_M = 0x1,
   4227     AnalogVideo_NTSC_M_J = 0x2,
   4228     AnalogVideo_NTSC_433 = 0x4,
   4229     AnalogVideo_PAL_B = 0x10,
   4230     AnalogVideo_PAL_D = 0x20,
   4231     AnalogVideo_PAL_G = 0x40,
   4232     AnalogVideo_PAL_H = 0x80,
   4233     AnalogVideo_PAL_I = 0x100,
   4234     AnalogVideo_PAL_M = 0x200,
   4235     AnalogVideo_PAL_N = 0x400,
   4236     AnalogVideo_PAL_60 = 0x800,
   4237     AnalogVideo_SECAM_B = 0x1000,
   4238     AnalogVideo_SECAM_D = 0x2000,
   4239     AnalogVideo_SECAM_G = 0x4000,
   4240     AnalogVideo_SECAM_H = 0x8000,
   4241     AnalogVideo_SECAM_K = 0x10000,
   4242     AnalogVideo_SECAM_K1 = 0x20000,
   4243     AnalogVideo_SECAM_L = 0x40000,
   4244     AnalogVideo_SECAM_L1 = 0x80000,
   4245     AnalogVideo_PAL_N_COMBO = 0x100000,
   4246     AnalogVideoMask_MCE_NTSC = (((((AnalogVideo_NTSC_M | AnalogVideo_NTSC_M_J) | AnalogVideo_NTSC_433) | AnalogVideo_PAL_M) | AnalogVideo_PAL_N) | AnalogVideo_PAL_60) | AnalogVideo_PAL_N_COMBO,
   4247     AnalogVideoMask_MCE_PAL = (((AnalogVideo_PAL_B | AnalogVideo_PAL_D) | AnalogVideo_PAL_G) | AnalogVideo_PAL_H) | AnalogVideo_PAL_I,
   4248     AnalogVideoMask_MCE_SECAM = ((((((AnalogVideo_SECAM_B | AnalogVideo_SECAM_D) | AnalogVideo_SECAM_G) | AnalogVideo_SECAM_H) | AnalogVideo_SECAM_K) | AnalogVideo_SECAM_K1) | AnalogVideo_SECAM_L) | AnalogVideo_SECAM_L1
   4249 } AnalogVideoStandard;
   4250 typedef enum tagTunerInputType {
   4251     TunerInputCable = 0,
   4252     TunerInputAntenna = 1
   4253 } TunerInputType;
   4254 typedef struct __WIDL_strmif_generated_name_0000000F {
   4255     CLSID Clsid;
   4256     LPWSTR Name;
   4257 } REGFILTER;
   4258 typedef enum tagTVAudioMode {
   4259     AMTVAUDIO_MODE_MONO = 0x1,
   4260     AMTVAUDIO_MODE_STEREO = 0x2,
   4261     AMTVAUDIO_MODE_LANG_A = 0x10,
   4262     AMTVAUDIO_MODE_LANG_B = 0x20,
   4263     AMTVAUDIO_MODE_LANG_C = 0x40,
   4264     AMTVAUDIO_PRESET_STEREO = 0x200,
   4265     AMTVAUDIO_PRESET_LANG_A = 0x1000,
   4266     AMTVAUDIO_PRESET_LANG_B = 0x2000,
   4267     AMTVAUDIO_PRESET_LANG_C = 0x4000
   4268 } TVAudioMode;
   4269 /*****************************************************************************
   4270  * IEnumRegFilters interface
   4271  */
   4272 #ifndef __IEnumRegFilters_INTERFACE_DEFINED__
   4273 #define __IEnumRegFilters_INTERFACE_DEFINED__
   4274 
   4275 DEFINE_GUID(IID_IEnumRegFilters, 0x56a868a4, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   4276 #if defined(__cplusplus) && !defined(CINTERFACE)
   4277 MIDL_INTERFACE("56a868a4-0ad4-11ce-b03a-0020af0ba770")
   4278 IEnumRegFilters : public IUnknown
   4279 {
   4280     virtual HRESULT STDMETHODCALLTYPE Next(
   4281         ULONG cFilters,
   4282         REGFILTER **apRegFilter,
   4283         ULONG *pcFetched) = 0;
   4284 
   4285     virtual HRESULT STDMETHODCALLTYPE Skip(
   4286         ULONG cFilters) = 0;
   4287 
   4288     virtual HRESULT STDMETHODCALLTYPE Reset(
   4289         ) = 0;
   4290 
   4291     virtual HRESULT STDMETHODCALLTYPE Clone(
   4292         IEnumRegFilters **ppEnum) = 0;
   4293 
   4294 };
   4295 #ifdef __CRT_UUID_DECL
   4296 __CRT_UUID_DECL(IEnumRegFilters, 0x56a868a4, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   4297 #endif
   4298 #else
   4299 typedef struct IEnumRegFiltersVtbl {
   4300     BEGIN_INTERFACE
   4301 
   4302     /*** IUnknown methods ***/
   4303     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4304         IEnumRegFilters *This,
   4305         REFIID riid,
   4306         void **ppvObject);
   4307 
   4308     ULONG (STDMETHODCALLTYPE *AddRef)(
   4309         IEnumRegFilters *This);
   4310 
   4311     ULONG (STDMETHODCALLTYPE *Release)(
   4312         IEnumRegFilters *This);
   4313 
   4314     /*** IEnumRegFilters methods ***/
   4315     HRESULT (STDMETHODCALLTYPE *Next)(
   4316         IEnumRegFilters *This,
   4317         ULONG cFilters,
   4318         REGFILTER **apRegFilter,
   4319         ULONG *pcFetched);
   4320 
   4321     HRESULT (STDMETHODCALLTYPE *Skip)(
   4322         IEnumRegFilters *This,
   4323         ULONG cFilters);
   4324 
   4325     HRESULT (STDMETHODCALLTYPE *Reset)(
   4326         IEnumRegFilters *This);
   4327 
   4328     HRESULT (STDMETHODCALLTYPE *Clone)(
   4329         IEnumRegFilters *This,
   4330         IEnumRegFilters **ppEnum);
   4331 
   4332     END_INTERFACE
   4333 } IEnumRegFiltersVtbl;
   4334 
   4335 interface IEnumRegFilters {
   4336     CONST_VTBL IEnumRegFiltersVtbl* lpVtbl;
   4337 };
   4338 
   4339 #ifdef COBJMACROS
   4340 #ifndef WIDL_C_INLINE_WRAPPERS
   4341 /*** IUnknown methods ***/
   4342 #define IEnumRegFilters_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4343 #define IEnumRegFilters_AddRef(This) (This)->lpVtbl->AddRef(This)
   4344 #define IEnumRegFilters_Release(This) (This)->lpVtbl->Release(This)
   4345 /*** IEnumRegFilters methods ***/
   4346 #define IEnumRegFilters_Next(This,cFilters,apRegFilter,pcFetched) (This)->lpVtbl->Next(This,cFilters,apRegFilter,pcFetched)
   4347 #define IEnumRegFilters_Skip(This,cFilters) (This)->lpVtbl->Skip(This,cFilters)
   4348 #define IEnumRegFilters_Reset(This) (This)->lpVtbl->Reset(This)
   4349 #define IEnumRegFilters_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
   4350 #else
   4351 /*** IUnknown methods ***/
   4352 static inline HRESULT IEnumRegFilters_QueryInterface(IEnumRegFilters* This,REFIID riid,void **ppvObject) {
   4353     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4354 }
   4355 static inline ULONG IEnumRegFilters_AddRef(IEnumRegFilters* This) {
   4356     return This->lpVtbl->AddRef(This);
   4357 }
   4358 static inline ULONG IEnumRegFilters_Release(IEnumRegFilters* This) {
   4359     return This->lpVtbl->Release(This);
   4360 }
   4361 /*** IEnumRegFilters methods ***/
   4362 static inline HRESULT IEnumRegFilters_Next(IEnumRegFilters* This,ULONG cFilters,REGFILTER **apRegFilter,ULONG *pcFetched) {
   4363     return This->lpVtbl->Next(This,cFilters,apRegFilter,pcFetched);
   4364 }
   4365 static inline HRESULT IEnumRegFilters_Skip(IEnumRegFilters* This,ULONG cFilters) {
   4366     return This->lpVtbl->Skip(This,cFilters);
   4367 }
   4368 static inline HRESULT IEnumRegFilters_Reset(IEnumRegFilters* This) {
   4369     return This->lpVtbl->Reset(This);
   4370 }
   4371 static inline HRESULT IEnumRegFilters_Clone(IEnumRegFilters* This,IEnumRegFilters **ppEnum) {
   4372     return This->lpVtbl->Clone(This,ppEnum);
   4373 }
   4374 #endif
   4375 #endif
   4376 
   4377 #endif
   4378 
   4379 
   4380 #endif  /* __IEnumRegFilters_INTERFACE_DEFINED__ */
   4381 
   4382 typedef IEnumRegFilters *PENUMREGFILTERS;
   4383 /*****************************************************************************
   4384  * IFilterMapper interface
   4385  */
   4386 #ifndef __IFilterMapper_INTERFACE_DEFINED__
   4387 #define __IFilterMapper_INTERFACE_DEFINED__
   4388 
   4389 enum {
   4390     MERIT_PREFERRED = 0x800000,
   4391     MERIT_NORMAL = 0x600000,
   4392     MERIT_UNLIKELY = 0x400000,
   4393     MERIT_DO_NOT_USE = 0x200000,
   4394     MERIT_SW_COMPRESSOR = 0x100000,
   4395     MERIT_HW_COMPRESSOR = 0x100050
   4396 };
   4397 DEFINE_GUID(IID_IFilterMapper, 0x56a868a3, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   4398 #if defined(__cplusplus) && !defined(CINTERFACE)
   4399 MIDL_INTERFACE("56a868a3-0ad4-11ce-b03a-0020af0ba770")
   4400 IFilterMapper : public IUnknown
   4401 {
   4402     virtual HRESULT STDMETHODCALLTYPE RegisterFilter(
   4403         CLSID clsid,
   4404         LPCWSTR Name,
   4405         DWORD dwMerit) = 0;
   4406 
   4407     virtual HRESULT STDMETHODCALLTYPE RegisterFilterInstance(
   4408         CLSID clsid,
   4409         LPCWSTR Name,
   4410         CLSID *MRId) = 0;
   4411 
   4412     virtual HRESULT STDMETHODCALLTYPE RegisterPin(
   4413         CLSID Filter,
   4414         LPCWSTR Name,
   4415         WINBOOL bRendered,
   4416         WINBOOL bOutput,
   4417         WINBOOL bZero,
   4418         WINBOOL bMany,
   4419         CLSID ConnectsToFilter,
   4420         LPCWSTR ConnectsToPin) = 0;
   4421 
   4422     virtual HRESULT STDMETHODCALLTYPE RegisterPinType(
   4423         CLSID clsFilter,
   4424         LPCWSTR strName,
   4425         CLSID clsMajorType,
   4426         CLSID clsSubType) = 0;
   4427 
   4428     virtual HRESULT STDMETHODCALLTYPE UnregisterFilter(
   4429         CLSID Filter) = 0;
   4430 
   4431     virtual HRESULT STDMETHODCALLTYPE UnregisterFilterInstance(
   4432         CLSID MRId) = 0;
   4433 
   4434     virtual HRESULT STDMETHODCALLTYPE UnregisterPin(
   4435         CLSID Filter,
   4436         LPCWSTR Name) = 0;
   4437 
   4438     virtual HRESULT STDMETHODCALLTYPE EnumMatchingFilters(
   4439         IEnumRegFilters **ppEnum,
   4440         DWORD dwMerit,
   4441         WINBOOL bInputNeeded,
   4442         CLSID clsInMaj,
   4443         CLSID clsInSub,
   4444         WINBOOL bRender,
   4445         WINBOOL bOutputNeeded,
   4446         CLSID clsOutMaj,
   4447         CLSID clsOutSub) = 0;
   4448 
   4449 };
   4450 #ifdef __CRT_UUID_DECL
   4451 __CRT_UUID_DECL(IFilterMapper, 0x56a868a3, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   4452 #endif
   4453 #else
   4454 typedef struct IFilterMapperVtbl {
   4455     BEGIN_INTERFACE
   4456 
   4457     /*** IUnknown methods ***/
   4458     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4459         IFilterMapper *This,
   4460         REFIID riid,
   4461         void **ppvObject);
   4462 
   4463     ULONG (STDMETHODCALLTYPE *AddRef)(
   4464         IFilterMapper *This);
   4465 
   4466     ULONG (STDMETHODCALLTYPE *Release)(
   4467         IFilterMapper *This);
   4468 
   4469     /*** IFilterMapper methods ***/
   4470     HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
   4471         IFilterMapper *This,
   4472         CLSID clsid,
   4473         LPCWSTR Name,
   4474         DWORD dwMerit);
   4475 
   4476     HRESULT (STDMETHODCALLTYPE *RegisterFilterInstance)(
   4477         IFilterMapper *This,
   4478         CLSID clsid,
   4479         LPCWSTR Name,
   4480         CLSID *MRId);
   4481 
   4482     HRESULT (STDMETHODCALLTYPE *RegisterPin)(
   4483         IFilterMapper *This,
   4484         CLSID Filter,
   4485         LPCWSTR Name,
   4486         WINBOOL bRendered,
   4487         WINBOOL bOutput,
   4488         WINBOOL bZero,
   4489         WINBOOL bMany,
   4490         CLSID ConnectsToFilter,
   4491         LPCWSTR ConnectsToPin);
   4492 
   4493     HRESULT (STDMETHODCALLTYPE *RegisterPinType)(
   4494         IFilterMapper *This,
   4495         CLSID clsFilter,
   4496         LPCWSTR strName,
   4497         CLSID clsMajorType,
   4498         CLSID clsSubType);
   4499 
   4500     HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
   4501         IFilterMapper *This,
   4502         CLSID Filter);
   4503 
   4504     HRESULT (STDMETHODCALLTYPE *UnregisterFilterInstance)(
   4505         IFilterMapper *This,
   4506         CLSID MRId);
   4507 
   4508     HRESULT (STDMETHODCALLTYPE *UnregisterPin)(
   4509         IFilterMapper *This,
   4510         CLSID Filter,
   4511         LPCWSTR Name);
   4512 
   4513     HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
   4514         IFilterMapper *This,
   4515         IEnumRegFilters **ppEnum,
   4516         DWORD dwMerit,
   4517         WINBOOL bInputNeeded,
   4518         CLSID clsInMaj,
   4519         CLSID clsInSub,
   4520         WINBOOL bRender,
   4521         WINBOOL bOutputNeeded,
   4522         CLSID clsOutMaj,
   4523         CLSID clsOutSub);
   4524 
   4525     END_INTERFACE
   4526 } IFilterMapperVtbl;
   4527 
   4528 interface IFilterMapper {
   4529     CONST_VTBL IFilterMapperVtbl* lpVtbl;
   4530 };
   4531 
   4532 #ifdef COBJMACROS
   4533 #ifndef WIDL_C_INLINE_WRAPPERS
   4534 /*** IUnknown methods ***/
   4535 #define IFilterMapper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4536 #define IFilterMapper_AddRef(This) (This)->lpVtbl->AddRef(This)
   4537 #define IFilterMapper_Release(This) (This)->lpVtbl->Release(This)
   4538 /*** IFilterMapper methods ***/
   4539 #define IFilterMapper_RegisterFilter(This,clsid,Name,dwMerit) (This)->lpVtbl->RegisterFilter(This,clsid,Name,dwMerit)
   4540 #define IFilterMapper_RegisterFilterInstance(This,clsid,Name,MRId) (This)->lpVtbl->RegisterFilterInstance(This,clsid,Name,MRId)
   4541 #define IFilterMapper_RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin) (This)->lpVtbl->RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin)
   4542 #define IFilterMapper_RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType) (This)->lpVtbl->RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType)
   4543 #define IFilterMapper_UnregisterFilter(This,Filter) (This)->lpVtbl->UnregisterFilter(This,Filter)
   4544 #define IFilterMapper_UnregisterFilterInstance(This,MRId) (This)->lpVtbl->UnregisterFilterInstance(This,MRId)
   4545 #define IFilterMapper_UnregisterPin(This,Filter,Name) (This)->lpVtbl->UnregisterPin(This,Filter,Name)
   4546 #define IFilterMapper_EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOutputNeeded,clsOutMaj,clsOutSub) (This)->lpVtbl->EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOutputNeeded,clsOutMaj,clsOutSub)
   4547 #else
   4548 /*** IUnknown methods ***/
   4549 static inline HRESULT IFilterMapper_QueryInterface(IFilterMapper* This,REFIID riid,void **ppvObject) {
   4550     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4551 }
   4552 static inline ULONG IFilterMapper_AddRef(IFilterMapper* This) {
   4553     return This->lpVtbl->AddRef(This);
   4554 }
   4555 static inline ULONG IFilterMapper_Release(IFilterMapper* This) {
   4556     return This->lpVtbl->Release(This);
   4557 }
   4558 /*** IFilterMapper methods ***/
   4559 static inline HRESULT IFilterMapper_RegisterFilter(IFilterMapper* This,CLSID clsid,LPCWSTR Name,DWORD dwMerit) {
   4560     return This->lpVtbl->RegisterFilter(This,clsid,Name,dwMerit);
   4561 }
   4562 static inline HRESULT IFilterMapper_RegisterFilterInstance(IFilterMapper* This,CLSID clsid,LPCWSTR Name,CLSID *MRId) {
   4563     return This->lpVtbl->RegisterFilterInstance(This,clsid,Name,MRId);
   4564 }
   4565 static inline HRESULT IFilterMapper_RegisterPin(IFilterMapper* This,CLSID Filter,LPCWSTR Name,WINBOOL bRendered,WINBOOL bOutput,WINBOOL bZero,WINBOOL bMany,CLSID ConnectsToFilter,LPCWSTR ConnectsToPin) {
   4566     return This->lpVtbl->RegisterPin(This,Filter,Name,bRendered,bOutput,bZero,bMany,ConnectsToFilter,ConnectsToPin);
   4567 }
   4568 static inline HRESULT IFilterMapper_RegisterPinType(IFilterMapper* This,CLSID clsFilter,LPCWSTR strName,CLSID clsMajorType,CLSID clsSubType) {
   4569     return This->lpVtbl->RegisterPinType(This,clsFilter,strName,clsMajorType,clsSubType);
   4570 }
   4571 static inline HRESULT IFilterMapper_UnregisterFilter(IFilterMapper* This,CLSID Filter) {
   4572     return This->lpVtbl->UnregisterFilter(This,Filter);
   4573 }
   4574 static inline HRESULT IFilterMapper_UnregisterFilterInstance(IFilterMapper* This,CLSID MRId) {
   4575     return This->lpVtbl->UnregisterFilterInstance(This,MRId);
   4576 }
   4577 static inline HRESULT IFilterMapper_UnregisterPin(IFilterMapper* This,CLSID Filter,LPCWSTR Name) {
   4578     return This->lpVtbl->UnregisterPin(This,Filter,Name);
   4579 }
   4580 static inline HRESULT IFilterMapper_EnumMatchingFilters(IFilterMapper* This,IEnumRegFilters **ppEnum,DWORD dwMerit,WINBOOL bInputNeeded,CLSID clsInMaj,CLSID clsInSub,WINBOOL bRender,WINBOOL bOutputNeeded,CLSID clsOutMaj,CLSID clsOutSub) {
   4581     return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOutputNeeded,clsOutMaj,clsOutSub);
   4582 }
   4583 #endif
   4584 #endif
   4585 
   4586 #endif
   4587 
   4588 
   4589 #endif  /* __IFilterMapper_INTERFACE_DEFINED__ */
   4590 
   4591 typedef struct __WIDL_strmif_generated_name_00000010 {
   4592     const CLSID *clsMajorType;
   4593     const CLSID *clsMinorType;
   4594 } REGPINTYPES;
   4595 typedef struct __WIDL_strmif_generated_name_00000011 {
   4596     LPWSTR strName;
   4597     WINBOOL bRendered;
   4598     WINBOOL bOutput;
   4599     WINBOOL bZero;
   4600     WINBOOL bMany;
   4601     const CLSID *clsConnectsToFilter;
   4602     const WCHAR *strConnectsToPin;
   4603     UINT nMediaTypes;
   4604     const REGPINTYPES *lpMediaType;
   4605 } REGFILTERPINS;
   4606 typedef struct __WIDL_strmif_generated_name_00000012 {
   4607     CLSID clsMedium;
   4608     DWORD dw1;
   4609     DWORD dw2;
   4610 } REGPINMEDIUM;
   4611 enum {
   4612     REG_PINFLAG_B_ZERO = 0x1,
   4613     REG_PINFLAG_B_RENDERER = 0x2,
   4614     REG_PINFLAG_B_MANY = 0x4,
   4615     REG_PINFLAG_B_OUTPUT = 0x8
   4616 };
   4617 typedef struct __WIDL_strmif_generated_name_00000013 {
   4618     DWORD dwFlags;
   4619     UINT cInstances;
   4620     UINT nMediaTypes;
   4621     const REGPINTYPES *lpMediaType;
   4622     UINT nMediums;
   4623     const REGPINMEDIUM *lpMedium;
   4624     const CLSID *clsPinCategory;
   4625 } REGFILTERPINS2;
   4626 typedef struct __WIDL_strmif_generated_name_00000014 {
   4627     DWORD dwVersion;
   4628     DWORD dwMerit;
   4629     __C89_NAMELESS union {
   4630         __C89_NAMELESS struct {
   4631             ULONG cPins;
   4632             const REGFILTERPINS *rgPins;
   4633         } __C89_NAMELESSSTRUCTNAME1;
   4634         __C89_NAMELESS struct {
   4635             ULONG cPins2;
   4636             const REGFILTERPINS2 *rgPins2;
   4637         } __C89_NAMELESSSTRUCTNAME2;
   4638     } __C89_NAMELESSUNIONNAME;
   4639 } REGFILTER2;
   4640 /*****************************************************************************
   4641  * IFilterMapper2 interface
   4642  */
   4643 #ifndef __IFilterMapper2_INTERFACE_DEFINED__
   4644 #define __IFilterMapper2_INTERFACE_DEFINED__
   4645 
   4646 DEFINE_GUID(IID_IFilterMapper2, 0xb79bb0b0, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
   4647 #if defined(__cplusplus) && !defined(CINTERFACE)
   4648 MIDL_INTERFACE("b79bb0b0-33c1-11d1-abe1-00a0c905f375")
   4649 IFilterMapper2 : public IUnknown
   4650 {
   4651     virtual HRESULT STDMETHODCALLTYPE CreateCategory(
   4652         REFCLSID clsidCategory,
   4653         DWORD dwCategoryMerit,
   4654         LPCWSTR Description) = 0;
   4655 
   4656     virtual HRESULT STDMETHODCALLTYPE UnregisterFilter(
   4657         const CLSID *pclsidCategory,
   4658         LPCOLESTR szInstance,
   4659         REFCLSID Filter) = 0;
   4660 
   4661     virtual HRESULT STDMETHODCALLTYPE RegisterFilter(
   4662         REFCLSID clsidFilter,
   4663         LPCWSTR Name,
   4664         IMoniker **ppMoniker,
   4665         const CLSID *pclsidCategory,
   4666         LPCOLESTR szInstance,
   4667         const REGFILTER2 *prf2) = 0;
   4668 
   4669     virtual HRESULT STDMETHODCALLTYPE EnumMatchingFilters(
   4670         IEnumMoniker **ppEnum,
   4671         DWORD dwFlags,
   4672         WINBOOL bExactMatch,
   4673         DWORD dwMerit,
   4674         WINBOOL bInputNeeded,
   4675         DWORD cInputTypes,
   4676         const GUID *pInputTypes,
   4677         const REGPINMEDIUM *pMedIn,
   4678         const CLSID *pPinCategoryIn,
   4679         WINBOOL bRender,
   4680         WINBOOL bOutputNeeded,
   4681         DWORD cOutputTypes,
   4682         const GUID *pOutputTypes,
   4683         const REGPINMEDIUM *pMedOut,
   4684         const CLSID *pPinCategoryOut) = 0;
   4685 
   4686 };
   4687 #ifdef __CRT_UUID_DECL
   4688 __CRT_UUID_DECL(IFilterMapper2, 0xb79bb0b0, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
   4689 #endif
   4690 #else
   4691 typedef struct IFilterMapper2Vtbl {
   4692     BEGIN_INTERFACE
   4693 
   4694     /*** IUnknown methods ***/
   4695     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4696         IFilterMapper2 *This,
   4697         REFIID riid,
   4698         void **ppvObject);
   4699 
   4700     ULONG (STDMETHODCALLTYPE *AddRef)(
   4701         IFilterMapper2 *This);
   4702 
   4703     ULONG (STDMETHODCALLTYPE *Release)(
   4704         IFilterMapper2 *This);
   4705 
   4706     /*** IFilterMapper2 methods ***/
   4707     HRESULT (STDMETHODCALLTYPE *CreateCategory)(
   4708         IFilterMapper2 *This,
   4709         REFCLSID clsidCategory,
   4710         DWORD dwCategoryMerit,
   4711         LPCWSTR Description);
   4712 
   4713     HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
   4714         IFilterMapper2 *This,
   4715         const CLSID *pclsidCategory,
   4716         LPCOLESTR szInstance,
   4717         REFCLSID Filter);
   4718 
   4719     HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
   4720         IFilterMapper2 *This,
   4721         REFCLSID clsidFilter,
   4722         LPCWSTR Name,
   4723         IMoniker **ppMoniker,
   4724         const CLSID *pclsidCategory,
   4725         LPCOLESTR szInstance,
   4726         const REGFILTER2 *prf2);
   4727 
   4728     HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
   4729         IFilterMapper2 *This,
   4730         IEnumMoniker **ppEnum,
   4731         DWORD dwFlags,
   4732         WINBOOL bExactMatch,
   4733         DWORD dwMerit,
   4734         WINBOOL bInputNeeded,
   4735         DWORD cInputTypes,
   4736         const GUID *pInputTypes,
   4737         const REGPINMEDIUM *pMedIn,
   4738         const CLSID *pPinCategoryIn,
   4739         WINBOOL bRender,
   4740         WINBOOL bOutputNeeded,
   4741         DWORD cOutputTypes,
   4742         const GUID *pOutputTypes,
   4743         const REGPINMEDIUM *pMedOut,
   4744         const CLSID *pPinCategoryOut);
   4745 
   4746     END_INTERFACE
   4747 } IFilterMapper2Vtbl;
   4748 
   4749 interface IFilterMapper2 {
   4750     CONST_VTBL IFilterMapper2Vtbl* lpVtbl;
   4751 };
   4752 
   4753 #ifdef COBJMACROS
   4754 #ifndef WIDL_C_INLINE_WRAPPERS
   4755 /*** IUnknown methods ***/
   4756 #define IFilterMapper2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4757 #define IFilterMapper2_AddRef(This) (This)->lpVtbl->AddRef(This)
   4758 #define IFilterMapper2_Release(This) (This)->lpVtbl->Release(This)
   4759 /*** IFilterMapper2 methods ***/
   4760 #define IFilterMapper2_CreateCategory(This,clsidCategory,dwCategoryMerit,Description) (This)->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description)
   4761 #define IFilterMapper2_UnregisterFilter(This,pclsidCategory,szInstance,Filter) (This)->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter)
   4762 #define IFilterMapper2_RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2) (This)->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2)
   4763 #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)
   4764 #else
   4765 /*** IUnknown methods ***/
   4766 static inline HRESULT IFilterMapper2_QueryInterface(IFilterMapper2* This,REFIID riid,void **ppvObject) {
   4767     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4768 }
   4769 static inline ULONG IFilterMapper2_AddRef(IFilterMapper2* This) {
   4770     return This->lpVtbl->AddRef(This);
   4771 }
   4772 static inline ULONG IFilterMapper2_Release(IFilterMapper2* This) {
   4773     return This->lpVtbl->Release(This);
   4774 }
   4775 /*** IFilterMapper2 methods ***/
   4776 static inline HRESULT IFilterMapper2_CreateCategory(IFilterMapper2* This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description) {
   4777     return This->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description);
   4778 }
   4779 static inline HRESULT IFilterMapper2_UnregisterFilter(IFilterMapper2* This,const CLSID *pclsidCategory,LPCOLESTR szInstance,REFCLSID Filter) {
   4780     return This->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter);
   4781 }
   4782 static inline HRESULT IFilterMapper2_RegisterFilter(IFilterMapper2* This,REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,LPCOLESTR szInstance,const REGFILTER2 *prf2) {
   4783     return This->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2);
   4784 }
   4785 static inline 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) {
   4786     return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut);
   4787 }
   4788 #endif
   4789 #endif
   4790 
   4791 #endif
   4792 
   4793 
   4794 #endif  /* __IFilterMapper2_INTERFACE_DEFINED__ */
   4795 
   4796 /*****************************************************************************
   4797  * IFilterMapper3 interface
   4798  */
   4799 #ifndef __IFilterMapper3_INTERFACE_DEFINED__
   4800 #define __IFilterMapper3_INTERFACE_DEFINED__
   4801 
   4802 DEFINE_GUID(IID_IFilterMapper3, 0xb79bb0b1, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
   4803 #if defined(__cplusplus) && !defined(CINTERFACE)
   4804 MIDL_INTERFACE("b79bb0b1-33c1-11d1-abe1-00a0c905f375")
   4805 IFilterMapper3 : public IFilterMapper2
   4806 {
   4807     virtual HRESULT STDMETHODCALLTYPE GetICreateDevEnum(
   4808         ICreateDevEnum **ppEnum) = 0;
   4809 
   4810 };
   4811 #ifdef __CRT_UUID_DECL
   4812 __CRT_UUID_DECL(IFilterMapper3, 0xb79bb0b1, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
   4813 #endif
   4814 #else
   4815 typedef struct IFilterMapper3Vtbl {
   4816     BEGIN_INTERFACE
   4817 
   4818     /*** IUnknown methods ***/
   4819     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4820         IFilterMapper3 *This,
   4821         REFIID riid,
   4822         void **ppvObject);
   4823 
   4824     ULONG (STDMETHODCALLTYPE *AddRef)(
   4825         IFilterMapper3 *This);
   4826 
   4827     ULONG (STDMETHODCALLTYPE *Release)(
   4828         IFilterMapper3 *This);
   4829 
   4830     /*** IFilterMapper2 methods ***/
   4831     HRESULT (STDMETHODCALLTYPE *CreateCategory)(
   4832         IFilterMapper3 *This,
   4833         REFCLSID clsidCategory,
   4834         DWORD dwCategoryMerit,
   4835         LPCWSTR Description);
   4836 
   4837     HRESULT (STDMETHODCALLTYPE *UnregisterFilter)(
   4838         IFilterMapper3 *This,
   4839         const CLSID *pclsidCategory,
   4840         LPCOLESTR szInstance,
   4841         REFCLSID Filter);
   4842 
   4843     HRESULT (STDMETHODCALLTYPE *RegisterFilter)(
   4844         IFilterMapper3 *This,
   4845         REFCLSID clsidFilter,
   4846         LPCWSTR Name,
   4847         IMoniker **ppMoniker,
   4848         const CLSID *pclsidCategory,
   4849         LPCOLESTR szInstance,
   4850         const REGFILTER2 *prf2);
   4851 
   4852     HRESULT (STDMETHODCALLTYPE *EnumMatchingFilters)(
   4853         IFilterMapper3 *This,
   4854         IEnumMoniker **ppEnum,
   4855         DWORD dwFlags,
   4856         WINBOOL bExactMatch,
   4857         DWORD dwMerit,
   4858         WINBOOL bInputNeeded,
   4859         DWORD cInputTypes,
   4860         const GUID *pInputTypes,
   4861         const REGPINMEDIUM *pMedIn,
   4862         const CLSID *pPinCategoryIn,
   4863         WINBOOL bRender,
   4864         WINBOOL bOutputNeeded,
   4865         DWORD cOutputTypes,
   4866         const GUID *pOutputTypes,
   4867         const REGPINMEDIUM *pMedOut,
   4868         const CLSID *pPinCategoryOut);
   4869 
   4870     /*** IFilterMapper3 methods ***/
   4871     HRESULT (STDMETHODCALLTYPE *GetICreateDevEnum)(
   4872         IFilterMapper3 *This,
   4873         ICreateDevEnum **ppEnum);
   4874 
   4875     END_INTERFACE
   4876 } IFilterMapper3Vtbl;
   4877 
   4878 interface IFilterMapper3 {
   4879     CONST_VTBL IFilterMapper3Vtbl* lpVtbl;
   4880 };
   4881 
   4882 #ifdef COBJMACROS
   4883 #ifndef WIDL_C_INLINE_WRAPPERS
   4884 /*** IUnknown methods ***/
   4885 #define IFilterMapper3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4886 #define IFilterMapper3_AddRef(This) (This)->lpVtbl->AddRef(This)
   4887 #define IFilterMapper3_Release(This) (This)->lpVtbl->Release(This)
   4888 /*** IFilterMapper2 methods ***/
   4889 #define IFilterMapper3_CreateCategory(This,clsidCategory,dwCategoryMerit,Description) (This)->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description)
   4890 #define IFilterMapper3_UnregisterFilter(This,pclsidCategory,szInstance,Filter) (This)->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter)
   4891 #define IFilterMapper3_RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2) (This)->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2)
   4892 #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)
   4893 /*** IFilterMapper3 methods ***/
   4894 #define IFilterMapper3_GetICreateDevEnum(This,ppEnum) (This)->lpVtbl->GetICreateDevEnum(This,ppEnum)
   4895 #else
   4896 /*** IUnknown methods ***/
   4897 static inline HRESULT IFilterMapper3_QueryInterface(IFilterMapper3* This,REFIID riid,void **ppvObject) {
   4898     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4899 }
   4900 static inline ULONG IFilterMapper3_AddRef(IFilterMapper3* This) {
   4901     return This->lpVtbl->AddRef(This);
   4902 }
   4903 static inline ULONG IFilterMapper3_Release(IFilterMapper3* This) {
   4904     return This->lpVtbl->Release(This);
   4905 }
   4906 /*** IFilterMapper2 methods ***/
   4907 static inline HRESULT IFilterMapper3_CreateCategory(IFilterMapper3* This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description) {
   4908     return This->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description);
   4909 }
   4910 static inline HRESULT IFilterMapper3_UnregisterFilter(IFilterMapper3* This,const CLSID *pclsidCategory,LPCOLESTR szInstance,REFCLSID Filter) {
   4911     return This->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter);
   4912 }
   4913 static inline HRESULT IFilterMapper3_RegisterFilter(IFilterMapper3* This,REFCLSID clsidFilter,LPCWSTR Name,IMoniker **ppMoniker,const CLSID *pclsidCategory,LPCOLESTR szInstance,const REGFILTER2 *prf2) {
   4914     return This->lpVtbl->RegisterFilter(This,clsidFilter,Name,ppMoniker,pclsidCategory,szInstance,prf2);
   4915 }
   4916 static inline 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) {
   4917     return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwFlags,bExactMatch,dwMerit,bInputNeeded,cInputTypes,pInputTypes,pMedIn,pPinCategoryIn,bRender,bOutputNeeded,cOutputTypes,pOutputTypes,pMedOut,pPinCategoryOut);
   4918 }
   4919 /*** IFilterMapper3 methods ***/
   4920 static inline HRESULT IFilterMapper3_GetICreateDevEnum(IFilterMapper3* This,ICreateDevEnum **ppEnum) {
   4921     return This->lpVtbl->GetICreateDevEnum(This,ppEnum);
   4922 }
   4923 #endif
   4924 #endif
   4925 
   4926 #endif
   4927 
   4928 
   4929 #endif  /* __IFilterMapper3_INTERFACE_DEFINED__ */
   4930 
   4931 typedef enum tagQualityMessageType {
   4932     Famine = 0,
   4933     Flood = 1
   4934 } QualityMessageType;
   4935 typedef struct tagQuality {
   4936     QualityMessageType Type;
   4937     LONG Proportion;
   4938     REFERENCE_TIME Late;
   4939     REFERENCE_TIME TimeStamp;
   4940 } Quality;
   4941 typedef IQualityControl *PQUALITYCONTROL;
   4942 /*****************************************************************************
   4943  * IQualityControl interface
   4944  */
   4945 #ifndef __IQualityControl_INTERFACE_DEFINED__
   4946 #define __IQualityControl_INTERFACE_DEFINED__
   4947 
   4948 DEFINE_GUID(IID_IQualityControl, 0x56a868a5, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   4949 #if defined(__cplusplus) && !defined(CINTERFACE)
   4950 MIDL_INTERFACE("56a868a5-0ad4-11ce-b03a-0020af0ba770")
   4951 IQualityControl : public IUnknown
   4952 {
   4953     virtual HRESULT STDMETHODCALLTYPE Notify(
   4954         IBaseFilter *pSelf,
   4955         Quality q) = 0;
   4956 
   4957     virtual HRESULT STDMETHODCALLTYPE SetSink(
   4958         IQualityControl *piqc) = 0;
   4959 
   4960 };
   4961 #ifdef __CRT_UUID_DECL
   4962 __CRT_UUID_DECL(IQualityControl, 0x56a868a5, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   4963 #endif
   4964 #else
   4965 typedef struct IQualityControlVtbl {
   4966     BEGIN_INTERFACE
   4967 
   4968     /*** IUnknown methods ***/
   4969     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4970         IQualityControl *This,
   4971         REFIID riid,
   4972         void **ppvObject);
   4973 
   4974     ULONG (STDMETHODCALLTYPE *AddRef)(
   4975         IQualityControl *This);
   4976 
   4977     ULONG (STDMETHODCALLTYPE *Release)(
   4978         IQualityControl *This);
   4979 
   4980     /*** IQualityControl methods ***/
   4981     HRESULT (STDMETHODCALLTYPE *Notify)(
   4982         IQualityControl *This,
   4983         IBaseFilter *pSelf,
   4984         Quality q);
   4985 
   4986     HRESULT (STDMETHODCALLTYPE *SetSink)(
   4987         IQualityControl *This,
   4988         IQualityControl *piqc);
   4989 
   4990     END_INTERFACE
   4991 } IQualityControlVtbl;
   4992 
   4993 interface IQualityControl {
   4994     CONST_VTBL IQualityControlVtbl* lpVtbl;
   4995 };
   4996 
   4997 #ifdef COBJMACROS
   4998 #ifndef WIDL_C_INLINE_WRAPPERS
   4999 /*** IUnknown methods ***/
   5000 #define IQualityControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5001 #define IQualityControl_AddRef(This) (This)->lpVtbl->AddRef(This)
   5002 #define IQualityControl_Release(This) (This)->lpVtbl->Release(This)
   5003 /*** IQualityControl methods ***/
   5004 #define IQualityControl_Notify(This,pSelf,q) (This)->lpVtbl->Notify(This,pSelf,q)
   5005 #define IQualityControl_SetSink(This,piqc) (This)->lpVtbl->SetSink(This,piqc)
   5006 #else
   5007 /*** IUnknown methods ***/
   5008 static inline HRESULT IQualityControl_QueryInterface(IQualityControl* This,REFIID riid,void **ppvObject) {
   5009     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5010 }
   5011 static inline ULONG IQualityControl_AddRef(IQualityControl* This) {
   5012     return This->lpVtbl->AddRef(This);
   5013 }
   5014 static inline ULONG IQualityControl_Release(IQualityControl* This) {
   5015     return This->lpVtbl->Release(This);
   5016 }
   5017 /*** IQualityControl methods ***/
   5018 static inline HRESULT IQualityControl_Notify(IQualityControl* This,IBaseFilter *pSelf,Quality q) {
   5019     return This->lpVtbl->Notify(This,pSelf,q);
   5020 }
   5021 static inline HRESULT IQualityControl_SetSink(IQualityControl* This,IQualityControl *piqc) {
   5022     return This->lpVtbl->SetSink(This,piqc);
   5023 }
   5024 #endif
   5025 #endif
   5026 
   5027 #endif
   5028 
   5029 
   5030 #endif  /* __IQualityControl_INTERFACE_DEFINED__ */
   5031 
   5032 enum {
   5033     CK_NOCOLORKEY = 0x0,
   5034     CK_INDEX = 0x1,
   5035     CK_RGB = 0x2
   5036 };
   5037 typedef struct tagCOLORKEY {
   5038     DWORD KeyType;
   5039     DWORD PaletteIndex;
   5040     COLORREF LowColorValue;
   5041     COLORREF HighColorValue;
   5042 } COLORKEY;
   5043 enum {
   5044     ADVISE_NONE = 0x0,
   5045     ADVISE_CLIPPING = 0x1,
   5046     ADVISE_PALETTE = 0x2,
   5047     ADVISE_COLORKEY = 0x4,
   5048     ADVISE_POSITION = 0x8,
   5049     ADVISE_DISPLAY_CHANGE = 0x10
   5050 };
   5051 #define ADVISE_ALL (((ADVISE_CLIPPING | ADVISE_PALETTE) | ADVISE_COLORKEY) | ADVISE_POSITION)
   5052 
   5053 #define ADVISE_ALL2 (ADVISE_ALL | ADVISE_DISPLAY_CHANGE)
   5054 
   5055 #ifndef _WINGDI_
   5056 typedef struct _RGNDATAHEADER {
   5057     DWORD dwSize;
   5058     DWORD iType;
   5059     DWORD nCount;
   5060     DWORD nRgnSize;
   5061     RECT rcBound;
   5062 } RGNDATAHEADER;
   5063 typedef struct _RGNDATA {
   5064     RGNDATAHEADER rdh;
   5065     char Buffer[1];
   5066 } RGNDATA;
   5067 #endif /* _WINGDI_ */
   5068 /*****************************************************************************
   5069  * IOverlayNotify interface
   5070  */
   5071 #ifndef __IOverlayNotify_INTERFACE_DEFINED__
   5072 #define __IOverlayNotify_INTERFACE_DEFINED__
   5073 
   5074 DEFINE_GUID(IID_IOverlayNotify, 0x56a868a0, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   5075 #if defined(__cplusplus) && !defined(CINTERFACE)
   5076 MIDL_INTERFACE("56a868a0-0ad4-11ce-b03a-0020af0ba770")
   5077 IOverlayNotify : public IUnknown
   5078 {
   5079     virtual HRESULT STDMETHODCALLTYPE OnPaletteChange(
   5080         DWORD dwColors,
   5081         const PALETTEENTRY *pPalette) = 0;
   5082 
   5083     virtual HRESULT STDMETHODCALLTYPE OnClipChange(
   5084         const RECT *pSourceRect,
   5085         const RECT *pDestinationRect,
   5086         const RGNDATA *pRgnData) = 0;
   5087 
   5088     virtual HRESULT STDMETHODCALLTYPE OnColorKeyChange(
   5089         const COLORKEY *pColorKey) = 0;
   5090 
   5091     virtual HRESULT STDMETHODCALLTYPE OnPositionChange(
   5092         const RECT *pSourceRect,
   5093         const RECT *pDestinationRect) = 0;
   5094 
   5095 };
   5096 #ifdef __CRT_UUID_DECL
   5097 __CRT_UUID_DECL(IOverlayNotify, 0x56a868a0, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   5098 #endif
   5099 #else
   5100 typedef struct IOverlayNotifyVtbl {
   5101     BEGIN_INTERFACE
   5102 
   5103     /*** IUnknown methods ***/
   5104     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5105         IOverlayNotify *This,
   5106         REFIID riid,
   5107         void **ppvObject);
   5108 
   5109     ULONG (STDMETHODCALLTYPE *AddRef)(
   5110         IOverlayNotify *This);
   5111 
   5112     ULONG (STDMETHODCALLTYPE *Release)(
   5113         IOverlayNotify *This);
   5114 
   5115     /*** IOverlayNotify methods ***/
   5116     HRESULT (STDMETHODCALLTYPE *OnPaletteChange)(
   5117         IOverlayNotify *This,
   5118         DWORD dwColors,
   5119         const PALETTEENTRY *pPalette);
   5120 
   5121     HRESULT (STDMETHODCALLTYPE *OnClipChange)(
   5122         IOverlayNotify *This,
   5123         const RECT *pSourceRect,
   5124         const RECT *pDestinationRect,
   5125         const RGNDATA *pRgnData);
   5126 
   5127     HRESULT (STDMETHODCALLTYPE *OnColorKeyChange)(
   5128         IOverlayNotify *This,
   5129         const COLORKEY *pColorKey);
   5130 
   5131     HRESULT (STDMETHODCALLTYPE *OnPositionChange)(
   5132         IOverlayNotify *This,
   5133         const RECT *pSourceRect,
   5134         const RECT *pDestinationRect);
   5135 
   5136     END_INTERFACE
   5137 } IOverlayNotifyVtbl;
   5138 
   5139 interface IOverlayNotify {
   5140     CONST_VTBL IOverlayNotifyVtbl* lpVtbl;
   5141 };
   5142 
   5143 #ifdef COBJMACROS
   5144 #ifndef WIDL_C_INLINE_WRAPPERS
   5145 /*** IUnknown methods ***/
   5146 #define IOverlayNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5147 #define IOverlayNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
   5148 #define IOverlayNotify_Release(This) (This)->lpVtbl->Release(This)
   5149 /*** IOverlayNotify methods ***/
   5150 #define IOverlayNotify_OnPaletteChange(This,dwColors,pPalette) (This)->lpVtbl->OnPaletteChange(This,dwColors,pPalette)
   5151 #define IOverlayNotify_OnClipChange(This,pSourceRect,pDestinationRect,pRgnData) (This)->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData)
   5152 #define IOverlayNotify_OnColorKeyChange(This,pColorKey) (This)->lpVtbl->OnColorKeyChange(This,pColorKey)
   5153 #define IOverlayNotify_OnPositionChange(This,pSourceRect,pDestinationRect) (This)->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect)
   5154 #else
   5155 /*** IUnknown methods ***/
   5156 static inline HRESULT IOverlayNotify_QueryInterface(IOverlayNotify* This,REFIID riid,void **ppvObject) {
   5157     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5158 }
   5159 static inline ULONG IOverlayNotify_AddRef(IOverlayNotify* This) {
   5160     return This->lpVtbl->AddRef(This);
   5161 }
   5162 static inline ULONG IOverlayNotify_Release(IOverlayNotify* This) {
   5163     return This->lpVtbl->Release(This);
   5164 }
   5165 /*** IOverlayNotify methods ***/
   5166 static inline HRESULT IOverlayNotify_OnPaletteChange(IOverlayNotify* This,DWORD dwColors,const PALETTEENTRY *pPalette) {
   5167     return This->lpVtbl->OnPaletteChange(This,dwColors,pPalette);
   5168 }
   5169 static inline HRESULT IOverlayNotify_OnClipChange(IOverlayNotify* This,const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData) {
   5170     return This->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData);
   5171 }
   5172 static inline HRESULT IOverlayNotify_OnColorKeyChange(IOverlayNotify* This,const COLORKEY *pColorKey) {
   5173     return This->lpVtbl->OnColorKeyChange(This,pColorKey);
   5174 }
   5175 static inline HRESULT IOverlayNotify_OnPositionChange(IOverlayNotify* This,const RECT *pSourceRect,const RECT *pDestinationRect) {
   5176     return This->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect);
   5177 }
   5178 #endif
   5179 #endif
   5180 
   5181 #endif
   5182 
   5183 
   5184 #endif  /* __IOverlayNotify_INTERFACE_DEFINED__ */
   5185 
   5186 typedef IOverlayNotify *POVERLAYNOTIFY;
   5187 #if 0
   5188 typedef HANDLE HMONITOR;
   5189 #endif /* 0 */
   5190 /*****************************************************************************
   5191  * IOverlayNotify2 interface
   5192  */
   5193 #ifndef __IOverlayNotify2_INTERFACE_DEFINED__
   5194 #define __IOverlayNotify2_INTERFACE_DEFINED__
   5195 
   5196 DEFINE_GUID(IID_IOverlayNotify2, 0x680efa10, 0xd535, 0x11d1, 0x87,0xc8, 0x00,0xa0,0xc9,0x22,0x31,0x96);
   5197 #if defined(__cplusplus) && !defined(CINTERFACE)
   5198 MIDL_INTERFACE("680efa10-d535-11d1-87c8-00a0c9223196")
   5199 IOverlayNotify2 : public IOverlayNotify
   5200 {
   5201     virtual HRESULT STDMETHODCALLTYPE OnDisplayChange(
   5202         HMONITOR hMonitor) = 0;
   5203 
   5204 };
   5205 #ifdef __CRT_UUID_DECL
   5206 __CRT_UUID_DECL(IOverlayNotify2, 0x680efa10, 0xd535, 0x11d1, 0x87,0xc8, 0x00,0xa0,0xc9,0x22,0x31,0x96)
   5207 #endif
   5208 #else
   5209 typedef struct IOverlayNotify2Vtbl {
   5210     BEGIN_INTERFACE
   5211 
   5212     /*** IUnknown methods ***/
   5213     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5214         IOverlayNotify2 *This,
   5215         REFIID riid,
   5216         void **ppvObject);
   5217 
   5218     ULONG (STDMETHODCALLTYPE *AddRef)(
   5219         IOverlayNotify2 *This);
   5220 
   5221     ULONG (STDMETHODCALLTYPE *Release)(
   5222         IOverlayNotify2 *This);
   5223 
   5224     /*** IOverlayNotify methods ***/
   5225     HRESULT (STDMETHODCALLTYPE *OnPaletteChange)(
   5226         IOverlayNotify2 *This,
   5227         DWORD dwColors,
   5228         const PALETTEENTRY *pPalette);
   5229 
   5230     HRESULT (STDMETHODCALLTYPE *OnClipChange)(
   5231         IOverlayNotify2 *This,
   5232         const RECT *pSourceRect,
   5233         const RECT *pDestinationRect,
   5234         const RGNDATA *pRgnData);
   5235 
   5236     HRESULT (STDMETHODCALLTYPE *OnColorKeyChange)(
   5237         IOverlayNotify2 *This,
   5238         const COLORKEY *pColorKey);
   5239 
   5240     HRESULT (STDMETHODCALLTYPE *OnPositionChange)(
   5241         IOverlayNotify2 *This,
   5242         const RECT *pSourceRect,
   5243         const RECT *pDestinationRect);
   5244 
   5245     /*** IOverlayNotify2 methods ***/
   5246     HRESULT (STDMETHODCALLTYPE *OnDisplayChange)(
   5247         IOverlayNotify2 *This,
   5248         HMONITOR hMonitor);
   5249 
   5250     END_INTERFACE
   5251 } IOverlayNotify2Vtbl;
   5252 
   5253 interface IOverlayNotify2 {
   5254     CONST_VTBL IOverlayNotify2Vtbl* lpVtbl;
   5255 };
   5256 
   5257 #ifdef COBJMACROS
   5258 #ifndef WIDL_C_INLINE_WRAPPERS
   5259 /*** IUnknown methods ***/
   5260 #define IOverlayNotify2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5261 #define IOverlayNotify2_AddRef(This) (This)->lpVtbl->AddRef(This)
   5262 #define IOverlayNotify2_Release(This) (This)->lpVtbl->Release(This)
   5263 /*** IOverlayNotify methods ***/
   5264 #define IOverlayNotify2_OnPaletteChange(This,dwColors,pPalette) (This)->lpVtbl->OnPaletteChange(This,dwColors,pPalette)
   5265 #define IOverlayNotify2_OnClipChange(This,pSourceRect,pDestinationRect,pRgnData) (This)->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData)
   5266 #define IOverlayNotify2_OnColorKeyChange(This,pColorKey) (This)->lpVtbl->OnColorKeyChange(This,pColorKey)
   5267 #define IOverlayNotify2_OnPositionChange(This,pSourceRect,pDestinationRect) (This)->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect)
   5268 /*** IOverlayNotify2 methods ***/
   5269 #define IOverlayNotify2_OnDisplayChange(This,hMonitor) (This)->lpVtbl->OnDisplayChange(This,hMonitor)
   5270 #else
   5271 /*** IUnknown methods ***/
   5272 static inline HRESULT IOverlayNotify2_QueryInterface(IOverlayNotify2* This,REFIID riid,void **ppvObject) {
   5273     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5274 }
   5275 static inline ULONG IOverlayNotify2_AddRef(IOverlayNotify2* This) {
   5276     return This->lpVtbl->AddRef(This);
   5277 }
   5278 static inline ULONG IOverlayNotify2_Release(IOverlayNotify2* This) {
   5279     return This->lpVtbl->Release(This);
   5280 }
   5281 /*** IOverlayNotify methods ***/
   5282 static inline HRESULT IOverlayNotify2_OnPaletteChange(IOverlayNotify2* This,DWORD dwColors,const PALETTEENTRY *pPalette) {
   5283     return This->lpVtbl->OnPaletteChange(This,dwColors,pPalette);
   5284 }
   5285 static inline HRESULT IOverlayNotify2_OnClipChange(IOverlayNotify2* This,const RECT *pSourceRect,const RECT *pDestinationRect,const RGNDATA *pRgnData) {
   5286     return This->lpVtbl->OnClipChange(This,pSourceRect,pDestinationRect,pRgnData);
   5287 }
   5288 static inline HRESULT IOverlayNotify2_OnColorKeyChange(IOverlayNotify2* This,const COLORKEY *pColorKey) {
   5289     return This->lpVtbl->OnColorKeyChange(This,pColorKey);
   5290 }
   5291 static inline HRESULT IOverlayNotify2_OnPositionChange(IOverlayNotify2* This,const RECT *pSourceRect,const RECT *pDestinationRect) {
   5292     return This->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect);
   5293 }
   5294 /*** IOverlayNotify2 methods ***/
   5295 static inline HRESULT IOverlayNotify2_OnDisplayChange(IOverlayNotify2* This,HMONITOR hMonitor) {
   5296     return This->lpVtbl->OnDisplayChange(This,hMonitor);
   5297 }
   5298 #endif
   5299 #endif
   5300 
   5301 #endif
   5302 
   5303 
   5304 #endif  /* __IOverlayNotify2_INTERFACE_DEFINED__ */
   5305 
   5306 typedef IOverlayNotify2 *POVERLAYNOTIFY2;
   5307 /*****************************************************************************
   5308  * IOverlay interface
   5309  */
   5310 #ifndef __IOverlay_INTERFACE_DEFINED__
   5311 #define __IOverlay_INTERFACE_DEFINED__
   5312 
   5313 DEFINE_GUID(IID_IOverlay, 0x56a868a1, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   5314 #if defined(__cplusplus) && !defined(CINTERFACE)
   5315 MIDL_INTERFACE("56a868a1-0ad4-11ce-b03a-0020af0ba770")
   5316 IOverlay : public IUnknown
   5317 {
   5318     virtual HRESULT STDMETHODCALLTYPE GetPalette(
   5319         DWORD *pdwColors,
   5320         PALETTEENTRY **ppPalette) = 0;
   5321 
   5322     virtual HRESULT STDMETHODCALLTYPE SetPalette(
   5323         DWORD dwColors,
   5324         PALETTEENTRY *pPalette) = 0;
   5325 
   5326     virtual HRESULT STDMETHODCALLTYPE GetDefaultColorKey(
   5327         COLORKEY *pColorKey) = 0;
   5328 
   5329     virtual HRESULT STDMETHODCALLTYPE GetColorKey(
   5330         COLORKEY *pColorKey) = 0;
   5331 
   5332     virtual HRESULT STDMETHODCALLTYPE SetColorKey(
   5333         COLORKEY *pColorKey) = 0;
   5334 
   5335     virtual HRESULT STDMETHODCALLTYPE GetWindowHandle(
   5336         HWND *pHwnd) = 0;
   5337 
   5338     virtual HRESULT STDMETHODCALLTYPE GetClipList(
   5339         RECT *pSourceRect,
   5340         RECT *pDestinationRect,
   5341         RGNDATA **ppRgnData) = 0;
   5342 
   5343     virtual HRESULT STDMETHODCALLTYPE GetVideoPosition(
   5344         RECT *pSourceRect,
   5345         RECT *pDestinationRect) = 0;
   5346 
   5347     virtual HRESULT STDMETHODCALLTYPE Advise(
   5348         IOverlayNotify *pOverlayNotify,
   5349         DWORD dwInterests) = 0;
   5350 
   5351     virtual HRESULT STDMETHODCALLTYPE Unadvise(
   5352         ) = 0;
   5353 
   5354 };
   5355 #ifdef __CRT_UUID_DECL
   5356 __CRT_UUID_DECL(IOverlay, 0x56a868a1, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   5357 #endif
   5358 #else
   5359 typedef struct IOverlayVtbl {
   5360     BEGIN_INTERFACE
   5361 
   5362     /*** IUnknown methods ***/
   5363     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5364         IOverlay *This,
   5365         REFIID riid,
   5366         void **ppvObject);
   5367 
   5368     ULONG (STDMETHODCALLTYPE *AddRef)(
   5369         IOverlay *This);
   5370 
   5371     ULONG (STDMETHODCALLTYPE *Release)(
   5372         IOverlay *This);
   5373 
   5374     /*** IOverlay methods ***/
   5375     HRESULT (STDMETHODCALLTYPE *GetPalette)(
   5376         IOverlay *This,
   5377         DWORD *pdwColors,
   5378         PALETTEENTRY **ppPalette);
   5379 
   5380     HRESULT (STDMETHODCALLTYPE *SetPalette)(
   5381         IOverlay *This,
   5382         DWORD dwColors,
   5383         PALETTEENTRY *pPalette);
   5384 
   5385     HRESULT (STDMETHODCALLTYPE *GetDefaultColorKey)(
   5386         IOverlay *This,
   5387         COLORKEY *pColorKey);
   5388 
   5389     HRESULT (STDMETHODCALLTYPE *GetColorKey)(
   5390         IOverlay *This,
   5391         COLORKEY *pColorKey);
   5392 
   5393     HRESULT (STDMETHODCALLTYPE *SetColorKey)(
   5394         IOverlay *This,
   5395         COLORKEY *pColorKey);
   5396 
   5397     HRESULT (STDMETHODCALLTYPE *GetWindowHandle)(
   5398         IOverlay *This,
   5399         HWND *pHwnd);
   5400 
   5401     HRESULT (STDMETHODCALLTYPE *GetClipList)(
   5402         IOverlay *This,
   5403         RECT *pSourceRect,
   5404         RECT *pDestinationRect,
   5405         RGNDATA **ppRgnData);
   5406 
   5407     HRESULT (STDMETHODCALLTYPE *GetVideoPosition)(
   5408         IOverlay *This,
   5409         RECT *pSourceRect,
   5410         RECT *pDestinationRect);
   5411 
   5412     HRESULT (STDMETHODCALLTYPE *Advise)(
   5413         IOverlay *This,
   5414         IOverlayNotify *pOverlayNotify,
   5415         DWORD dwInterests);
   5416 
   5417     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   5418         IOverlay *This);
   5419 
   5420     END_INTERFACE
   5421 } IOverlayVtbl;
   5422 
   5423 interface IOverlay {
   5424     CONST_VTBL IOverlayVtbl* lpVtbl;
   5425 };
   5426 
   5427 #ifdef COBJMACROS
   5428 #ifndef WIDL_C_INLINE_WRAPPERS
   5429 /*** IUnknown methods ***/
   5430 #define IOverlay_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5431 #define IOverlay_AddRef(This) (This)->lpVtbl->AddRef(This)
   5432 #define IOverlay_Release(This) (This)->lpVtbl->Release(This)
   5433 /*** IOverlay methods ***/
   5434 #define IOverlay_GetPalette(This,pdwColors,ppPalette) (This)->lpVtbl->GetPalette(This,pdwColors,ppPalette)
   5435 #define IOverlay_SetPalette(This,dwColors,pPalette) (This)->lpVtbl->SetPalette(This,dwColors,pPalette)
   5436 #define IOverlay_GetDefaultColorKey(This,pColorKey) (This)->lpVtbl->GetDefaultColorKey(This,pColorKey)
   5437 #define IOverlay_GetColorKey(This,pColorKey) (This)->lpVtbl->GetColorKey(This,pColorKey)
   5438 #define IOverlay_SetColorKey(This,pColorKey) (This)->lpVtbl->SetColorKey(This,pColorKey)
   5439 #define IOverlay_GetWindowHandle(This,pHwnd) (This)->lpVtbl->GetWindowHandle(This,pHwnd)
   5440 #define IOverlay_GetClipList(This,pSourceRect,pDestinationRect,ppRgnData) (This)->lpVtbl->GetClipList(This,pSourceRect,pDestinationRect,ppRgnData)
   5441 #define IOverlay_GetVideoPosition(This,pSourceRect,pDestinationRect) (This)->lpVtbl->GetVideoPosition(This,pSourceRect,pDestinationRect)
   5442 #define IOverlay_Advise(This,pOverlayNotify,dwInterests) (This)->lpVtbl->Advise(This,pOverlayNotify,dwInterests)
   5443 #define IOverlay_Unadvise(This) (This)->lpVtbl->Unadvise(This)
   5444 #else
   5445 /*** IUnknown methods ***/
   5446 static inline HRESULT IOverlay_QueryInterface(IOverlay* This,REFIID riid,void **ppvObject) {
   5447     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5448 }
   5449 static inline ULONG IOverlay_AddRef(IOverlay* This) {
   5450     return This->lpVtbl->AddRef(This);
   5451 }
   5452 static inline ULONG IOverlay_Release(IOverlay* This) {
   5453     return This->lpVtbl->Release(This);
   5454 }
   5455 /*** IOverlay methods ***/
   5456 static inline HRESULT IOverlay_GetPalette(IOverlay* This,DWORD *pdwColors,PALETTEENTRY **ppPalette) {
   5457     return This->lpVtbl->GetPalette(This,pdwColors,ppPalette);
   5458 }
   5459 static inline HRESULT IOverlay_SetPalette(IOverlay* This,DWORD dwColors,PALETTEENTRY *pPalette) {
   5460     return This->lpVtbl->SetPalette(This,dwColors,pPalette);
   5461 }
   5462 static inline HRESULT IOverlay_GetDefaultColorKey(IOverlay* This,COLORKEY *pColorKey) {
   5463     return This->lpVtbl->GetDefaultColorKey(This,pColorKey);
   5464 }
   5465 static inline HRESULT IOverlay_GetColorKey(IOverlay* This,COLORKEY *pColorKey) {
   5466     return This->lpVtbl->GetColorKey(This,pColorKey);
   5467 }
   5468 static inline HRESULT IOverlay_SetColorKey(IOverlay* This,COLORKEY *pColorKey) {
   5469     return This->lpVtbl->SetColorKey(This,pColorKey);
   5470 }
   5471 static inline HRESULT IOverlay_GetWindowHandle(IOverlay* This,HWND *pHwnd) {
   5472     return This->lpVtbl->GetWindowHandle(This,pHwnd);
   5473 }
   5474 static inline HRESULT IOverlay_GetClipList(IOverlay* This,RECT *pSourceRect,RECT *pDestinationRect,RGNDATA **ppRgnData) {
   5475     return This->lpVtbl->GetClipList(This,pSourceRect,pDestinationRect,ppRgnData);
   5476 }
   5477 static inline HRESULT IOverlay_GetVideoPosition(IOverlay* This,RECT *pSourceRect,RECT *pDestinationRect) {
   5478     return This->lpVtbl->GetVideoPosition(This,pSourceRect,pDestinationRect);
   5479 }
   5480 static inline HRESULT IOverlay_Advise(IOverlay* This,IOverlayNotify *pOverlayNotify,DWORD dwInterests) {
   5481     return This->lpVtbl->Advise(This,pOverlayNotify,dwInterests);
   5482 }
   5483 static inline HRESULT IOverlay_Unadvise(IOverlay* This) {
   5484     return This->lpVtbl->Unadvise(This);
   5485 }
   5486 #endif
   5487 #endif
   5488 
   5489 #endif
   5490 
   5491 
   5492 #endif  /* __IOverlay_INTERFACE_DEFINED__ */
   5493 
   5494 typedef IOverlay *POVERLAY;
   5495 /*****************************************************************************
   5496  * IMediaEventSink interface
   5497  */
   5498 #ifndef __IMediaEventSink_INTERFACE_DEFINED__
   5499 #define __IMediaEventSink_INTERFACE_DEFINED__
   5500 
   5501 DEFINE_GUID(IID_IMediaEventSink, 0x56a868a2, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   5502 #if defined(__cplusplus) && !defined(CINTERFACE)
   5503 MIDL_INTERFACE("56a868a2-0ad4-11ce-b03a-0020af0ba770")
   5504 IMediaEventSink : public IUnknown
   5505 {
   5506     virtual HRESULT STDMETHODCALLTYPE Notify(
   5507         LONG EventCode,
   5508         LONG_PTR EventParam1,
   5509         LONG_PTR EventParam2) = 0;
   5510 
   5511 };
   5512 #ifdef __CRT_UUID_DECL
   5513 __CRT_UUID_DECL(IMediaEventSink, 0x56a868a2, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   5514 #endif
   5515 #else
   5516 typedef struct IMediaEventSinkVtbl {
   5517     BEGIN_INTERFACE
   5518 
   5519     /*** IUnknown methods ***/
   5520     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5521         IMediaEventSink *This,
   5522         REFIID riid,
   5523         void **ppvObject);
   5524 
   5525     ULONG (STDMETHODCALLTYPE *AddRef)(
   5526         IMediaEventSink *This);
   5527 
   5528     ULONG (STDMETHODCALLTYPE *Release)(
   5529         IMediaEventSink *This);
   5530 
   5531     /*** IMediaEventSink methods ***/
   5532     HRESULT (STDMETHODCALLTYPE *Notify)(
   5533         IMediaEventSink *This,
   5534         LONG EventCode,
   5535         LONG_PTR EventParam1,
   5536         LONG_PTR EventParam2);
   5537 
   5538     END_INTERFACE
   5539 } IMediaEventSinkVtbl;
   5540 
   5541 interface IMediaEventSink {
   5542     CONST_VTBL IMediaEventSinkVtbl* lpVtbl;
   5543 };
   5544 
   5545 #ifdef COBJMACROS
   5546 #ifndef WIDL_C_INLINE_WRAPPERS
   5547 /*** IUnknown methods ***/
   5548 #define IMediaEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5549 #define IMediaEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
   5550 #define IMediaEventSink_Release(This) (This)->lpVtbl->Release(This)
   5551 /*** IMediaEventSink methods ***/
   5552 #define IMediaEventSink_Notify(This,EventCode,EventParam1,EventParam2) (This)->lpVtbl->Notify(This,EventCode,EventParam1,EventParam2)
   5553 #else
   5554 /*** IUnknown methods ***/
   5555 static inline HRESULT IMediaEventSink_QueryInterface(IMediaEventSink* This,REFIID riid,void **ppvObject) {
   5556     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5557 }
   5558 static inline ULONG IMediaEventSink_AddRef(IMediaEventSink* This) {
   5559     return This->lpVtbl->AddRef(This);
   5560 }
   5561 static inline ULONG IMediaEventSink_Release(IMediaEventSink* This) {
   5562     return This->lpVtbl->Release(This);
   5563 }
   5564 /*** IMediaEventSink methods ***/
   5565 static inline HRESULT IMediaEventSink_Notify(IMediaEventSink* This,LONG EventCode,LONG_PTR EventParam1,LONG_PTR EventParam2) {
   5566     return This->lpVtbl->Notify(This,EventCode,EventParam1,EventParam2);
   5567 }
   5568 #endif
   5569 #endif
   5570 
   5571 #endif
   5572 
   5573 
   5574 #endif  /* __IMediaEventSink_INTERFACE_DEFINED__ */
   5575 
   5576 typedef IMediaEventSink *PMEDIAEVENTSINK;
   5577 /*****************************************************************************
   5578  * IFileSourceFilter interface
   5579  */
   5580 #ifndef __IFileSourceFilter_INTERFACE_DEFINED__
   5581 #define __IFileSourceFilter_INTERFACE_DEFINED__
   5582 
   5583 DEFINE_GUID(IID_IFileSourceFilter, 0x56a868a6, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   5584 #if defined(__cplusplus) && !defined(CINTERFACE)
   5585 MIDL_INTERFACE("56a868a6-0ad4-11ce-b03a-0020af0ba770")
   5586 IFileSourceFilter : public IUnknown
   5587 {
   5588     virtual HRESULT STDMETHODCALLTYPE Load(
   5589         LPCOLESTR pszFileName,
   5590         const AM_MEDIA_TYPE *pmt) = 0;
   5591 
   5592     virtual HRESULT STDMETHODCALLTYPE GetCurFile(
   5593         LPOLESTR *ppszFileName,
   5594         AM_MEDIA_TYPE *pmt) = 0;
   5595 
   5596 };
   5597 #ifdef __CRT_UUID_DECL
   5598 __CRT_UUID_DECL(IFileSourceFilter, 0x56a868a6, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   5599 #endif
   5600 #else
   5601 typedef struct IFileSourceFilterVtbl {
   5602     BEGIN_INTERFACE
   5603 
   5604     /*** IUnknown methods ***/
   5605     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5606         IFileSourceFilter *This,
   5607         REFIID riid,
   5608         void **ppvObject);
   5609 
   5610     ULONG (STDMETHODCALLTYPE *AddRef)(
   5611         IFileSourceFilter *This);
   5612 
   5613     ULONG (STDMETHODCALLTYPE *Release)(
   5614         IFileSourceFilter *This);
   5615 
   5616     /*** IFileSourceFilter methods ***/
   5617     HRESULT (STDMETHODCALLTYPE *Load)(
   5618         IFileSourceFilter *This,
   5619         LPCOLESTR pszFileName,
   5620         const AM_MEDIA_TYPE *pmt);
   5621 
   5622     HRESULT (STDMETHODCALLTYPE *GetCurFile)(
   5623         IFileSourceFilter *This,
   5624         LPOLESTR *ppszFileName,
   5625         AM_MEDIA_TYPE *pmt);
   5626 
   5627     END_INTERFACE
   5628 } IFileSourceFilterVtbl;
   5629 
   5630 interface IFileSourceFilter {
   5631     CONST_VTBL IFileSourceFilterVtbl* lpVtbl;
   5632 };
   5633 
   5634 #ifdef COBJMACROS
   5635 #ifndef WIDL_C_INLINE_WRAPPERS
   5636 /*** IUnknown methods ***/
   5637 #define IFileSourceFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5638 #define IFileSourceFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
   5639 #define IFileSourceFilter_Release(This) (This)->lpVtbl->Release(This)
   5640 /*** IFileSourceFilter methods ***/
   5641 #define IFileSourceFilter_Load(This,pszFileName,pmt) (This)->lpVtbl->Load(This,pszFileName,pmt)
   5642 #define IFileSourceFilter_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
   5643 #else
   5644 /*** IUnknown methods ***/
   5645 static inline HRESULT IFileSourceFilter_QueryInterface(IFileSourceFilter* This,REFIID riid,void **ppvObject) {
   5646     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5647 }
   5648 static inline ULONG IFileSourceFilter_AddRef(IFileSourceFilter* This) {
   5649     return This->lpVtbl->AddRef(This);
   5650 }
   5651 static inline ULONG IFileSourceFilter_Release(IFileSourceFilter* This) {
   5652     return This->lpVtbl->Release(This);
   5653 }
   5654 /*** IFileSourceFilter methods ***/
   5655 static inline HRESULT IFileSourceFilter_Load(IFileSourceFilter* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
   5656     return This->lpVtbl->Load(This,pszFileName,pmt);
   5657 }
   5658 static inline HRESULT IFileSourceFilter_GetCurFile(IFileSourceFilter* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) {
   5659     return This->lpVtbl->GetCurFile(This,ppszFileName,pmt);
   5660 }
   5661 #endif
   5662 #endif
   5663 
   5664 #endif
   5665 
   5666 
   5667 #endif  /* __IFileSourceFilter_INTERFACE_DEFINED__ */
   5668 
   5669 typedef IFileSourceFilter *PFILTERFILESOURCE;
   5670 /*****************************************************************************
   5671  * IFileSinkFilter interface
   5672  */
   5673 #ifndef __IFileSinkFilter_INTERFACE_DEFINED__
   5674 #define __IFileSinkFilter_INTERFACE_DEFINED__
   5675 
   5676 DEFINE_GUID(IID_IFileSinkFilter, 0xa2104830, 0x7c70, 0x11cf, 0x8b,0xce, 0x00,0xaa,0x00,0xa3,0xf1,0xa6);
   5677 #if defined(__cplusplus) && !defined(CINTERFACE)
   5678 MIDL_INTERFACE("a2104830-7c70-11cf-8bce-00aa00a3f1a6")
   5679 IFileSinkFilter : public IUnknown
   5680 {
   5681     virtual HRESULT STDMETHODCALLTYPE SetFileName(
   5682         LPCOLESTR pszFileName,
   5683         const AM_MEDIA_TYPE *pmt) = 0;
   5684 
   5685     virtual HRESULT STDMETHODCALLTYPE GetCurFile(
   5686         LPOLESTR *ppszFileName,
   5687         AM_MEDIA_TYPE *pmt) = 0;
   5688 
   5689 };
   5690 #ifdef __CRT_UUID_DECL
   5691 __CRT_UUID_DECL(IFileSinkFilter, 0xa2104830, 0x7c70, 0x11cf, 0x8b,0xce, 0x00,0xaa,0x00,0xa3,0xf1,0xa6)
   5692 #endif
   5693 #else
   5694 typedef struct IFileSinkFilterVtbl {
   5695     BEGIN_INTERFACE
   5696 
   5697     /*** IUnknown methods ***/
   5698     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5699         IFileSinkFilter *This,
   5700         REFIID riid,
   5701         void **ppvObject);
   5702 
   5703     ULONG (STDMETHODCALLTYPE *AddRef)(
   5704         IFileSinkFilter *This);
   5705 
   5706     ULONG (STDMETHODCALLTYPE *Release)(
   5707         IFileSinkFilter *This);
   5708 
   5709     /*** IFileSinkFilter methods ***/
   5710     HRESULT (STDMETHODCALLTYPE *SetFileName)(
   5711         IFileSinkFilter *This,
   5712         LPCOLESTR pszFileName,
   5713         const AM_MEDIA_TYPE *pmt);
   5714 
   5715     HRESULT (STDMETHODCALLTYPE *GetCurFile)(
   5716         IFileSinkFilter *This,
   5717         LPOLESTR *ppszFileName,
   5718         AM_MEDIA_TYPE *pmt);
   5719 
   5720     END_INTERFACE
   5721 } IFileSinkFilterVtbl;
   5722 
   5723 interface IFileSinkFilter {
   5724     CONST_VTBL IFileSinkFilterVtbl* lpVtbl;
   5725 };
   5726 
   5727 #ifdef COBJMACROS
   5728 #ifndef WIDL_C_INLINE_WRAPPERS
   5729 /*** IUnknown methods ***/
   5730 #define IFileSinkFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5731 #define IFileSinkFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
   5732 #define IFileSinkFilter_Release(This) (This)->lpVtbl->Release(This)
   5733 /*** IFileSinkFilter methods ***/
   5734 #define IFileSinkFilter_SetFileName(This,pszFileName,pmt) (This)->lpVtbl->SetFileName(This,pszFileName,pmt)
   5735 #define IFileSinkFilter_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
   5736 #else
   5737 /*** IUnknown methods ***/
   5738 static inline HRESULT IFileSinkFilter_QueryInterface(IFileSinkFilter* This,REFIID riid,void **ppvObject) {
   5739     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5740 }
   5741 static inline ULONG IFileSinkFilter_AddRef(IFileSinkFilter* This) {
   5742     return This->lpVtbl->AddRef(This);
   5743 }
   5744 static inline ULONG IFileSinkFilter_Release(IFileSinkFilter* This) {
   5745     return This->lpVtbl->Release(This);
   5746 }
   5747 /*** IFileSinkFilter methods ***/
   5748 static inline HRESULT IFileSinkFilter_SetFileName(IFileSinkFilter* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
   5749     return This->lpVtbl->SetFileName(This,pszFileName,pmt);
   5750 }
   5751 static inline HRESULT IFileSinkFilter_GetCurFile(IFileSinkFilter* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) {
   5752     return This->lpVtbl->GetCurFile(This,ppszFileName,pmt);
   5753 }
   5754 #endif
   5755 #endif
   5756 
   5757 #endif
   5758 
   5759 
   5760 #endif  /* __IFileSinkFilter_INTERFACE_DEFINED__ */
   5761 
   5762 typedef IFileSinkFilter *PFILTERFILESINK;
   5763 /*****************************************************************************
   5764  * IFileSinkFilter2 interface
   5765  */
   5766 #ifndef __IFileSinkFilter2_INTERFACE_DEFINED__
   5767 #define __IFileSinkFilter2_INTERFACE_DEFINED__
   5768 
   5769 DEFINE_GUID(IID_IFileSinkFilter2, 0x00855b90, 0xce1b, 0x11d0, 0xbd,0x4f, 0x00,0xa0,0xc9,0x11,0xce,0x86);
   5770 #if defined(__cplusplus) && !defined(CINTERFACE)
   5771 MIDL_INTERFACE("00855b90-ce1b-11d0-bd4f-00a0c911ce86")
   5772 IFileSinkFilter2 : public IFileSinkFilter
   5773 {
   5774     virtual HRESULT STDMETHODCALLTYPE SetMode(
   5775         DWORD dwFlags) = 0;
   5776 
   5777     virtual HRESULT STDMETHODCALLTYPE GetMode(
   5778         DWORD *pdwFlags) = 0;
   5779 
   5780 };
   5781 #ifdef __CRT_UUID_DECL
   5782 __CRT_UUID_DECL(IFileSinkFilter2, 0x00855b90, 0xce1b, 0x11d0, 0xbd,0x4f, 0x00,0xa0,0xc9,0x11,0xce,0x86)
   5783 #endif
   5784 #else
   5785 typedef struct IFileSinkFilter2Vtbl {
   5786     BEGIN_INTERFACE
   5787 
   5788     /*** IUnknown methods ***/
   5789     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5790         IFileSinkFilter2 *This,
   5791         REFIID riid,
   5792         void **ppvObject);
   5793 
   5794     ULONG (STDMETHODCALLTYPE *AddRef)(
   5795         IFileSinkFilter2 *This);
   5796 
   5797     ULONG (STDMETHODCALLTYPE *Release)(
   5798         IFileSinkFilter2 *This);
   5799 
   5800     /*** IFileSinkFilter methods ***/
   5801     HRESULT (STDMETHODCALLTYPE *SetFileName)(
   5802         IFileSinkFilter2 *This,
   5803         LPCOLESTR pszFileName,
   5804         const AM_MEDIA_TYPE *pmt);
   5805 
   5806     HRESULT (STDMETHODCALLTYPE *GetCurFile)(
   5807         IFileSinkFilter2 *This,
   5808         LPOLESTR *ppszFileName,
   5809         AM_MEDIA_TYPE *pmt);
   5810 
   5811     /*** IFileSinkFilter2 methods ***/
   5812     HRESULT (STDMETHODCALLTYPE *SetMode)(
   5813         IFileSinkFilter2 *This,
   5814         DWORD dwFlags);
   5815 
   5816     HRESULT (STDMETHODCALLTYPE *GetMode)(
   5817         IFileSinkFilter2 *This,
   5818         DWORD *pdwFlags);
   5819 
   5820     END_INTERFACE
   5821 } IFileSinkFilter2Vtbl;
   5822 
   5823 interface IFileSinkFilter2 {
   5824     CONST_VTBL IFileSinkFilter2Vtbl* lpVtbl;
   5825 };
   5826 
   5827 #ifdef COBJMACROS
   5828 #ifndef WIDL_C_INLINE_WRAPPERS
   5829 /*** IUnknown methods ***/
   5830 #define IFileSinkFilter2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5831 #define IFileSinkFilter2_AddRef(This) (This)->lpVtbl->AddRef(This)
   5832 #define IFileSinkFilter2_Release(This) (This)->lpVtbl->Release(This)
   5833 /*** IFileSinkFilter methods ***/
   5834 #define IFileSinkFilter2_SetFileName(This,pszFileName,pmt) (This)->lpVtbl->SetFileName(This,pszFileName,pmt)
   5835 #define IFileSinkFilter2_GetCurFile(This,ppszFileName,pmt) (This)->lpVtbl->GetCurFile(This,ppszFileName,pmt)
   5836 /*** IFileSinkFilter2 methods ***/
   5837 #define IFileSinkFilter2_SetMode(This,dwFlags) (This)->lpVtbl->SetMode(This,dwFlags)
   5838 #define IFileSinkFilter2_GetMode(This,pdwFlags) (This)->lpVtbl->GetMode(This,pdwFlags)
   5839 #else
   5840 /*** IUnknown methods ***/
   5841 static inline HRESULT IFileSinkFilter2_QueryInterface(IFileSinkFilter2* This,REFIID riid,void **ppvObject) {
   5842     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5843 }
   5844 static inline ULONG IFileSinkFilter2_AddRef(IFileSinkFilter2* This) {
   5845     return This->lpVtbl->AddRef(This);
   5846 }
   5847 static inline ULONG IFileSinkFilter2_Release(IFileSinkFilter2* This) {
   5848     return This->lpVtbl->Release(This);
   5849 }
   5850 /*** IFileSinkFilter methods ***/
   5851 static inline HRESULT IFileSinkFilter2_SetFileName(IFileSinkFilter2* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
   5852     return This->lpVtbl->SetFileName(This,pszFileName,pmt);
   5853 }
   5854 static inline HRESULT IFileSinkFilter2_GetCurFile(IFileSinkFilter2* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) {
   5855     return This->lpVtbl->GetCurFile(This,ppszFileName,pmt);
   5856 }
   5857 /*** IFileSinkFilter2 methods ***/
   5858 static inline HRESULT IFileSinkFilter2_SetMode(IFileSinkFilter2* This,DWORD dwFlags) {
   5859     return This->lpVtbl->SetMode(This,dwFlags);
   5860 }
   5861 static inline HRESULT IFileSinkFilter2_GetMode(IFileSinkFilter2* This,DWORD *pdwFlags) {
   5862     return This->lpVtbl->GetMode(This,pdwFlags);
   5863 }
   5864 #endif
   5865 #endif
   5866 
   5867 #endif
   5868 
   5869 
   5870 #endif  /* __IFileSinkFilter2_INTERFACE_DEFINED__ */
   5871 
   5872 typedef IFileSinkFilter2 *PFILESINKFILTER2;
   5873 typedef enum __WIDL_strmif_generated_name_00000015 {
   5874     AM_FILE_OVERWRITE = 0x1
   5875 } AM_FILESINK_FLAGS;
   5876 /*****************************************************************************
   5877  * IGraphBuilder interface
   5878  */
   5879 #ifndef __IGraphBuilder_INTERFACE_DEFINED__
   5880 #define __IGraphBuilder_INTERFACE_DEFINED__
   5881 
   5882 DEFINE_GUID(IID_IGraphBuilder, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   5883 #if defined(__cplusplus) && !defined(CINTERFACE)
   5884 MIDL_INTERFACE("56a868a9-0ad4-11ce-b03a-0020af0ba770")
   5885 IGraphBuilder : public IFilterGraph
   5886 {
   5887     virtual HRESULT STDMETHODCALLTYPE Connect(
   5888         IPin *ppinOut,
   5889         IPin *ppinIn) = 0;
   5890 
   5891     virtual HRESULT STDMETHODCALLTYPE Render(
   5892         IPin *ppinOut) = 0;
   5893 
   5894     virtual HRESULT STDMETHODCALLTYPE RenderFile(
   5895         LPCWSTR lpcwstrFile,
   5896         LPCWSTR lpcwstrPlayList) = 0;
   5897 
   5898     virtual HRESULT STDMETHODCALLTYPE AddSourceFilter(
   5899         LPCWSTR lpcwstrFileName,
   5900         LPCWSTR lpcwstrFilterName,
   5901         IBaseFilter **ppFilter) = 0;
   5902 
   5903     virtual HRESULT STDMETHODCALLTYPE SetLogFile(
   5904         DWORD_PTR hFile) = 0;
   5905 
   5906     virtual HRESULT STDMETHODCALLTYPE Abort(
   5907         ) = 0;
   5908 
   5909     virtual HRESULT STDMETHODCALLTYPE ShouldOperationContinue(
   5910         ) = 0;
   5911 
   5912 };
   5913 #ifdef __CRT_UUID_DECL
   5914 __CRT_UUID_DECL(IGraphBuilder, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   5915 #endif
   5916 #else
   5917 typedef struct IGraphBuilderVtbl {
   5918     BEGIN_INTERFACE
   5919 
   5920     /*** IUnknown methods ***/
   5921     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5922         IGraphBuilder *This,
   5923         REFIID riid,
   5924         void **ppvObject);
   5925 
   5926     ULONG (STDMETHODCALLTYPE *AddRef)(
   5927         IGraphBuilder *This);
   5928 
   5929     ULONG (STDMETHODCALLTYPE *Release)(
   5930         IGraphBuilder *This);
   5931 
   5932     /*** IFilterGraph methods ***/
   5933     HRESULT (STDMETHODCALLTYPE *AddFilter)(
   5934         IGraphBuilder *This,
   5935         IBaseFilter *pFilter,
   5936         LPCWSTR pName);
   5937 
   5938     HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
   5939         IGraphBuilder *This,
   5940         IBaseFilter *pFilter);
   5941 
   5942     HRESULT (STDMETHODCALLTYPE *EnumFilters)(
   5943         IGraphBuilder *This,
   5944         IEnumFilters **ppEnum);
   5945 
   5946     HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
   5947         IGraphBuilder *This,
   5948         LPCWSTR pName,
   5949         IBaseFilter **ppFilter);
   5950 
   5951     HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
   5952         IGraphBuilder *This,
   5953         IPin *ppinOut,
   5954         IPin *ppinIn,
   5955         const AM_MEDIA_TYPE *pmt);
   5956 
   5957     HRESULT (STDMETHODCALLTYPE *Reconnect)(
   5958         IGraphBuilder *This,
   5959         IPin *ppin);
   5960 
   5961     HRESULT (STDMETHODCALLTYPE *Disconnect)(
   5962         IGraphBuilder *This,
   5963         IPin *ppin);
   5964 
   5965     HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
   5966         IGraphBuilder *This);
   5967 
   5968     /*** IGraphBuilder methods ***/
   5969     HRESULT (STDMETHODCALLTYPE *Connect)(
   5970         IGraphBuilder *This,
   5971         IPin *ppinOut,
   5972         IPin *ppinIn);
   5973 
   5974     HRESULT (STDMETHODCALLTYPE *Render)(
   5975         IGraphBuilder *This,
   5976         IPin *ppinOut);
   5977 
   5978     HRESULT (STDMETHODCALLTYPE *RenderFile)(
   5979         IGraphBuilder *This,
   5980         LPCWSTR lpcwstrFile,
   5981         LPCWSTR lpcwstrPlayList);
   5982 
   5983     HRESULT (STDMETHODCALLTYPE *AddSourceFilter)(
   5984         IGraphBuilder *This,
   5985         LPCWSTR lpcwstrFileName,
   5986         LPCWSTR lpcwstrFilterName,
   5987         IBaseFilter **ppFilter);
   5988 
   5989     HRESULT (STDMETHODCALLTYPE *SetLogFile)(
   5990         IGraphBuilder *This,
   5991         DWORD_PTR hFile);
   5992 
   5993     HRESULT (STDMETHODCALLTYPE *Abort)(
   5994         IGraphBuilder *This);
   5995 
   5996     HRESULT (STDMETHODCALLTYPE *ShouldOperationContinue)(
   5997         IGraphBuilder *This);
   5998 
   5999     END_INTERFACE
   6000 } IGraphBuilderVtbl;
   6001 
   6002 interface IGraphBuilder {
   6003     CONST_VTBL IGraphBuilderVtbl* lpVtbl;
   6004 };
   6005 
   6006 #ifdef COBJMACROS
   6007 #ifndef WIDL_C_INLINE_WRAPPERS
   6008 /*** IUnknown methods ***/
   6009 #define IGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6010 #define IGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
   6011 #define IGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
   6012 /*** IFilterGraph methods ***/
   6013 #define IGraphBuilder_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
   6014 #define IGraphBuilder_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
   6015 #define IGraphBuilder_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
   6016 #define IGraphBuilder_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
   6017 #define IGraphBuilder_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
   6018 #define IGraphBuilder_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
   6019 #define IGraphBuilder_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
   6020 #define IGraphBuilder_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
   6021 /*** IGraphBuilder methods ***/
   6022 #define IGraphBuilder_Connect(This,ppinOut,ppinIn) (This)->lpVtbl->Connect(This,ppinOut,ppinIn)
   6023 #define IGraphBuilder_Render(This,ppinOut) (This)->lpVtbl->Render(This,ppinOut)
   6024 #define IGraphBuilder_RenderFile(This,lpcwstrFile,lpcwstrPlayList) (This)->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList)
   6025 #define IGraphBuilder_AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter)
   6026 #define IGraphBuilder_SetLogFile(This,hFile) (This)->lpVtbl->SetLogFile(This,hFile)
   6027 #define IGraphBuilder_Abort(This) (This)->lpVtbl->Abort(This)
   6028 #define IGraphBuilder_ShouldOperationContinue(This) (This)->lpVtbl->ShouldOperationContinue(This)
   6029 #else
   6030 /*** IUnknown methods ***/
   6031 static inline HRESULT IGraphBuilder_QueryInterface(IGraphBuilder* This,REFIID riid,void **ppvObject) {
   6032     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6033 }
   6034 static inline ULONG IGraphBuilder_AddRef(IGraphBuilder* This) {
   6035     return This->lpVtbl->AddRef(This);
   6036 }
   6037 static inline ULONG IGraphBuilder_Release(IGraphBuilder* This) {
   6038     return This->lpVtbl->Release(This);
   6039 }
   6040 /*** IFilterGraph methods ***/
   6041 static inline HRESULT IGraphBuilder_AddFilter(IGraphBuilder* This,IBaseFilter *pFilter,LPCWSTR pName) {
   6042     return This->lpVtbl->AddFilter(This,pFilter,pName);
   6043 }
   6044 static inline HRESULT IGraphBuilder_RemoveFilter(IGraphBuilder* This,IBaseFilter *pFilter) {
   6045     return This->lpVtbl->RemoveFilter(This,pFilter);
   6046 }
   6047 static inline HRESULT IGraphBuilder_EnumFilters(IGraphBuilder* This,IEnumFilters **ppEnum) {
   6048     return This->lpVtbl->EnumFilters(This,ppEnum);
   6049 }
   6050 static inline HRESULT IGraphBuilder_FindFilterByName(IGraphBuilder* This,LPCWSTR pName,IBaseFilter **ppFilter) {
   6051     return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
   6052 }
   6053 static inline HRESULT IGraphBuilder_ConnectDirect(IGraphBuilder* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) {
   6054     return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt);
   6055 }
   6056 static inline HRESULT IGraphBuilder_Reconnect(IGraphBuilder* This,IPin *ppin) {
   6057     return This->lpVtbl->Reconnect(This,ppin);
   6058 }
   6059 static inline HRESULT IGraphBuilder_Disconnect(IGraphBuilder* This,IPin *ppin) {
   6060     return This->lpVtbl->Disconnect(This,ppin);
   6061 }
   6062 static inline HRESULT IGraphBuilder_SetDefaultSyncSource(IGraphBuilder* This) {
   6063     return This->lpVtbl->SetDefaultSyncSource(This);
   6064 }
   6065 /*** IGraphBuilder methods ***/
   6066 static inline HRESULT IGraphBuilder_Connect(IGraphBuilder* This,IPin *ppinOut,IPin *ppinIn) {
   6067     return This->lpVtbl->Connect(This,ppinOut,ppinIn);
   6068 }
   6069 static inline HRESULT IGraphBuilder_Render(IGraphBuilder* This,IPin *ppinOut) {
   6070     return This->lpVtbl->Render(This,ppinOut);
   6071 }
   6072 static inline HRESULT IGraphBuilder_RenderFile(IGraphBuilder* This,LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList) {
   6073     return This->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList);
   6074 }
   6075 static inline HRESULT IGraphBuilder_AddSourceFilter(IGraphBuilder* This,LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) {
   6076     return This->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter);
   6077 }
   6078 static inline HRESULT IGraphBuilder_SetLogFile(IGraphBuilder* This,DWORD_PTR hFile) {
   6079     return This->lpVtbl->SetLogFile(This,hFile);
   6080 }
   6081 static inline HRESULT IGraphBuilder_Abort(IGraphBuilder* This) {
   6082     return This->lpVtbl->Abort(This);
   6083 }
   6084 static inline HRESULT IGraphBuilder_ShouldOperationContinue(IGraphBuilder* This) {
   6085     return This->lpVtbl->ShouldOperationContinue(This);
   6086 }
   6087 #endif
   6088 #endif
   6089 
   6090 #endif
   6091 
   6092 
   6093 #endif  /* __IGraphBuilder_INTERFACE_DEFINED__ */
   6094 
   6095 /*****************************************************************************
   6096  * ICaptureGraphBuilder interface
   6097  */
   6098 #ifndef __ICaptureGraphBuilder_INTERFACE_DEFINED__
   6099 #define __ICaptureGraphBuilder_INTERFACE_DEFINED__
   6100 
   6101 DEFINE_GUID(IID_ICaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
   6102 #if defined(__cplusplus) && !defined(CINTERFACE)
   6103 MIDL_INTERFACE("bf87b6e0-8c27-11d0-b3f0-00aa003761c5")
   6104 ICaptureGraphBuilder : public IUnknown
   6105 {
   6106     virtual HRESULT STDMETHODCALLTYPE SetFiltergraph(
   6107         IGraphBuilder *pfg) = 0;
   6108 
   6109     virtual HRESULT STDMETHODCALLTYPE GetFiltergraph(
   6110         IGraphBuilder **ppfg) = 0;
   6111 
   6112     virtual HRESULT STDMETHODCALLTYPE SetOutputFileName(
   6113         const GUID *pType,
   6114         LPCOLESTR lpstrFile,
   6115         IBaseFilter **ppf,
   6116         IFileSinkFilter **ppSink) = 0;
   6117 
   6118     virtual HRESULT STDMETHODCALLTYPE FindInterface(
   6119         const GUID *pCategory,
   6120         IBaseFilter *pf,
   6121         REFIID riid,
   6122         void **ppint) = 0;
   6123 
   6124     virtual HRESULT STDMETHODCALLTYPE RenderStream(
   6125         const GUID *pCategory,
   6126         IUnknown *pSource,
   6127         IBaseFilter *pfCompressor,
   6128         IBaseFilter *pfRenderer) = 0;
   6129 
   6130     virtual HRESULT STDMETHODCALLTYPE ControlStream(
   6131         const GUID *pCategory,
   6132         IBaseFilter *pFilter,
   6133         REFERENCE_TIME *pstart,
   6134         REFERENCE_TIME *pstop,
   6135         WORD wStartCookie,
   6136         WORD wStopCookie) = 0;
   6137 
   6138     virtual HRESULT STDMETHODCALLTYPE AllocCapFile(
   6139         LPCOLESTR lpstr,
   6140         DWORDLONG dwlSize) = 0;
   6141 
   6142     virtual HRESULT STDMETHODCALLTYPE CopyCaptureFile(
   6143         LPOLESTR lpwstrOld,
   6144         LPOLESTR lpwstrNew,
   6145         int fAllowEscAbort,
   6146         IAMCopyCaptureFileProgress *pCallback) = 0;
   6147 
   6148 };
   6149 #ifdef __CRT_UUID_DECL
   6150 __CRT_UUID_DECL(ICaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5)
   6151 #endif
   6152 #else
   6153 typedef struct ICaptureGraphBuilderVtbl {
   6154     BEGIN_INTERFACE
   6155 
   6156     /*** IUnknown methods ***/
   6157     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6158         ICaptureGraphBuilder *This,
   6159         REFIID riid,
   6160         void **ppvObject);
   6161 
   6162     ULONG (STDMETHODCALLTYPE *AddRef)(
   6163         ICaptureGraphBuilder *This);
   6164 
   6165     ULONG (STDMETHODCALLTYPE *Release)(
   6166         ICaptureGraphBuilder *This);
   6167 
   6168     /*** ICaptureGraphBuilder methods ***/
   6169     HRESULT (STDMETHODCALLTYPE *SetFiltergraph)(
   6170         ICaptureGraphBuilder *This,
   6171         IGraphBuilder *pfg);
   6172 
   6173     HRESULT (STDMETHODCALLTYPE *GetFiltergraph)(
   6174         ICaptureGraphBuilder *This,
   6175         IGraphBuilder **ppfg);
   6176 
   6177     HRESULT (STDMETHODCALLTYPE *SetOutputFileName)(
   6178         ICaptureGraphBuilder *This,
   6179         const GUID *pType,
   6180         LPCOLESTR lpstrFile,
   6181         IBaseFilter **ppf,
   6182         IFileSinkFilter **ppSink);
   6183 
   6184     HRESULT (STDMETHODCALLTYPE *FindInterface)(
   6185         ICaptureGraphBuilder *This,
   6186         const GUID *pCategory,
   6187         IBaseFilter *pf,
   6188         REFIID riid,
   6189         void **ppint);
   6190 
   6191     HRESULT (STDMETHODCALLTYPE *RenderStream)(
   6192         ICaptureGraphBuilder *This,
   6193         const GUID *pCategory,
   6194         IUnknown *pSource,
   6195         IBaseFilter *pfCompressor,
   6196         IBaseFilter *pfRenderer);
   6197 
   6198     HRESULT (STDMETHODCALLTYPE *ControlStream)(
   6199         ICaptureGraphBuilder *This,
   6200         const GUID *pCategory,
   6201         IBaseFilter *pFilter,
   6202         REFERENCE_TIME *pstart,
   6203         REFERENCE_TIME *pstop,
   6204         WORD wStartCookie,
   6205         WORD wStopCookie);
   6206 
   6207     HRESULT (STDMETHODCALLTYPE *AllocCapFile)(
   6208         ICaptureGraphBuilder *This,
   6209         LPCOLESTR lpstr,
   6210         DWORDLONG dwlSize);
   6211 
   6212     HRESULT (STDMETHODCALLTYPE *CopyCaptureFile)(
   6213         ICaptureGraphBuilder *This,
   6214         LPOLESTR lpwstrOld,
   6215         LPOLESTR lpwstrNew,
   6216         int fAllowEscAbort,
   6217         IAMCopyCaptureFileProgress *pCallback);
   6218 
   6219     END_INTERFACE
   6220 } ICaptureGraphBuilderVtbl;
   6221 
   6222 interface ICaptureGraphBuilder {
   6223     CONST_VTBL ICaptureGraphBuilderVtbl* lpVtbl;
   6224 };
   6225 
   6226 #ifdef COBJMACROS
   6227 #ifndef WIDL_C_INLINE_WRAPPERS
   6228 /*** IUnknown methods ***/
   6229 #define ICaptureGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6230 #define ICaptureGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
   6231 #define ICaptureGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
   6232 /*** ICaptureGraphBuilder methods ***/
   6233 #define ICaptureGraphBuilder_SetFiltergraph(This,pfg) (This)->lpVtbl->SetFiltergraph(This,pfg)
   6234 #define ICaptureGraphBuilder_GetFiltergraph(This,ppfg) (This)->lpVtbl->GetFiltergraph(This,ppfg)
   6235 #define ICaptureGraphBuilder_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink) (This)->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)
   6236 #define ICaptureGraphBuilder_FindInterface(This,pCategory,pf,riid,ppint) (This)->lpVtbl->FindInterface(This,pCategory,pf,riid,ppint)
   6237 #define ICaptureGraphBuilder_RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer) (This)->lpVtbl->RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer)
   6238 #define ICaptureGraphBuilder_ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie) (This)->lpVtbl->ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie)
   6239 #define ICaptureGraphBuilder_AllocCapFile(This,lpstr,dwlSize) (This)->lpVtbl->AllocCapFile(This,lpstr,dwlSize)
   6240 #define ICaptureGraphBuilder_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback) (This)->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)
   6241 #else
   6242 /*** IUnknown methods ***/
   6243 static inline HRESULT ICaptureGraphBuilder_QueryInterface(ICaptureGraphBuilder* This,REFIID riid,void **ppvObject) {
   6244     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6245 }
   6246 static inline ULONG ICaptureGraphBuilder_AddRef(ICaptureGraphBuilder* This) {
   6247     return This->lpVtbl->AddRef(This);
   6248 }
   6249 static inline ULONG ICaptureGraphBuilder_Release(ICaptureGraphBuilder* This) {
   6250     return This->lpVtbl->Release(This);
   6251 }
   6252 /*** ICaptureGraphBuilder methods ***/
   6253 static inline HRESULT ICaptureGraphBuilder_SetFiltergraph(ICaptureGraphBuilder* This,IGraphBuilder *pfg) {
   6254     return This->lpVtbl->SetFiltergraph(This,pfg);
   6255 }
   6256 static inline HRESULT ICaptureGraphBuilder_GetFiltergraph(ICaptureGraphBuilder* This,IGraphBuilder **ppfg) {
   6257     return This->lpVtbl->GetFiltergraph(This,ppfg);
   6258 }
   6259 static inline HRESULT ICaptureGraphBuilder_SetOutputFileName(ICaptureGraphBuilder* This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink) {
   6260     return This->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink);
   6261 }
   6262 static inline HRESULT ICaptureGraphBuilder_FindInterface(ICaptureGraphBuilder* This,const GUID *pCategory,IBaseFilter *pf,REFIID riid,void **ppint) {
   6263     return This->lpVtbl->FindInterface(This,pCategory,pf,riid,ppint);
   6264 }
   6265 static inline HRESULT ICaptureGraphBuilder_RenderStream(ICaptureGraphBuilder* This,const GUID *pCategory,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer) {
   6266     return This->lpVtbl->RenderStream(This,pCategory,pSource,pfCompressor,pfRenderer);
   6267 }
   6268 static inline HRESULT ICaptureGraphBuilder_ControlStream(ICaptureGraphBuilder* This,const GUID *pCategory,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie) {
   6269     return This->lpVtbl->ControlStream(This,pCategory,pFilter,pstart,pstop,wStartCookie,wStopCookie);
   6270 }
   6271 static inline HRESULT ICaptureGraphBuilder_AllocCapFile(ICaptureGraphBuilder* This,LPCOLESTR lpstr,DWORDLONG dwlSize) {
   6272     return This->lpVtbl->AllocCapFile(This,lpstr,dwlSize);
   6273 }
   6274 static inline HRESULT ICaptureGraphBuilder_CopyCaptureFile(ICaptureGraphBuilder* This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback) {
   6275     return This->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback);
   6276 }
   6277 #endif
   6278 #endif
   6279 
   6280 #endif
   6281 
   6282 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_RemoteFindInterface_Proxy(
   6283     ICaptureGraphBuilder* This,
   6284     const GUID *pCategory,
   6285     IBaseFilter *pf,
   6286     REFIID riid,
   6287     IUnknown **ppint);
   6288 void __RPC_STUB ICaptureGraphBuilder_RemoteFindInterface_Stub(
   6289     IRpcStubBuffer* This,
   6290     IRpcChannelBuffer* pRpcChannelBuffer,
   6291     PRPC_MESSAGE pRpcMessage,
   6292     DWORD* pdwStubPhase);
   6293 HRESULT CALLBACK ICaptureGraphBuilder_FindInterface_Proxy(
   6294     ICaptureGraphBuilder* This,
   6295     const GUID *pCategory,
   6296     IBaseFilter *pf,
   6297     REFIID riid,
   6298     void **ppint);
   6299 HRESULT __RPC_STUB ICaptureGraphBuilder_FindInterface_Stub(
   6300     ICaptureGraphBuilder* This,
   6301     const GUID *pCategory,
   6302     IBaseFilter *pf,
   6303     REFIID riid,
   6304     IUnknown **ppint);
   6305 
   6306 #endif  /* __ICaptureGraphBuilder_INTERFACE_DEFINED__ */
   6307 
   6308 /*****************************************************************************
   6309  * IAMCopyCaptureFileProgress interface
   6310  */
   6311 #ifndef __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
   6312 #define __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__
   6313 
   6314 DEFINE_GUID(IID_IAMCopyCaptureFileProgress, 0x670d1d20, 0xa068, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
   6315 #if defined(__cplusplus) && !defined(CINTERFACE)
   6316 MIDL_INTERFACE("670d1d20-a068-11d0-b3f0-00aa003761c5")
   6317 IAMCopyCaptureFileProgress : public IUnknown
   6318 {
   6319     virtual HRESULT STDMETHODCALLTYPE Progress(
   6320         int iProgress) = 0;
   6321 
   6322 };
   6323 #ifdef __CRT_UUID_DECL
   6324 __CRT_UUID_DECL(IAMCopyCaptureFileProgress, 0x670d1d20, 0xa068, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5)
   6325 #endif
   6326 #else
   6327 typedef struct IAMCopyCaptureFileProgressVtbl {
   6328     BEGIN_INTERFACE
   6329 
   6330     /*** IUnknown methods ***/
   6331     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6332         IAMCopyCaptureFileProgress *This,
   6333         REFIID riid,
   6334         void **ppvObject);
   6335 
   6336     ULONG (STDMETHODCALLTYPE *AddRef)(
   6337         IAMCopyCaptureFileProgress *This);
   6338 
   6339     ULONG (STDMETHODCALLTYPE *Release)(
   6340         IAMCopyCaptureFileProgress *This);
   6341 
   6342     /*** IAMCopyCaptureFileProgress methods ***/
   6343     HRESULT (STDMETHODCALLTYPE *Progress)(
   6344         IAMCopyCaptureFileProgress *This,
   6345         int iProgress);
   6346 
   6347     END_INTERFACE
   6348 } IAMCopyCaptureFileProgressVtbl;
   6349 
   6350 interface IAMCopyCaptureFileProgress {
   6351     CONST_VTBL IAMCopyCaptureFileProgressVtbl* lpVtbl;
   6352 };
   6353 
   6354 #ifdef COBJMACROS
   6355 #ifndef WIDL_C_INLINE_WRAPPERS
   6356 /*** IUnknown methods ***/
   6357 #define IAMCopyCaptureFileProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6358 #define IAMCopyCaptureFileProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
   6359 #define IAMCopyCaptureFileProgress_Release(This) (This)->lpVtbl->Release(This)
   6360 /*** IAMCopyCaptureFileProgress methods ***/
   6361 #define IAMCopyCaptureFileProgress_Progress(This,iProgress) (This)->lpVtbl->Progress(This,iProgress)
   6362 #else
   6363 /*** IUnknown methods ***/
   6364 static inline HRESULT IAMCopyCaptureFileProgress_QueryInterface(IAMCopyCaptureFileProgress* This,REFIID riid,void **ppvObject) {
   6365     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6366 }
   6367 static inline ULONG IAMCopyCaptureFileProgress_AddRef(IAMCopyCaptureFileProgress* This) {
   6368     return This->lpVtbl->AddRef(This);
   6369 }
   6370 static inline ULONG IAMCopyCaptureFileProgress_Release(IAMCopyCaptureFileProgress* This) {
   6371     return This->lpVtbl->Release(This);
   6372 }
   6373 /*** IAMCopyCaptureFileProgress methods ***/
   6374 static inline HRESULT IAMCopyCaptureFileProgress_Progress(IAMCopyCaptureFileProgress* This,int iProgress) {
   6375     return This->lpVtbl->Progress(This,iProgress);
   6376 }
   6377 #endif
   6378 #endif
   6379 
   6380 #endif
   6381 
   6382 
   6383 #endif  /* __IAMCopyCaptureFileProgress_INTERFACE_DEFINED__ */
   6384 
   6385 /*****************************************************************************
   6386  * ICaptureGraphBuilder2 interface
   6387  */
   6388 #ifndef __ICaptureGraphBuilder2_INTERFACE_DEFINED__
   6389 #define __ICaptureGraphBuilder2_INTERFACE_DEFINED__
   6390 
   6391 DEFINE_GUID(IID_ICaptureGraphBuilder2, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,0xfa, 0x00,0xa0,0xc9,0xc6,0xe3,0x8d);
   6392 #if defined(__cplusplus) && !defined(CINTERFACE)
   6393 MIDL_INTERFACE("93e5a4e0-2d50-11d2-abfa-00a0c9c6e38d")
   6394 ICaptureGraphBuilder2 : public IUnknown
   6395 {
   6396     virtual HRESULT STDMETHODCALLTYPE SetFiltergraph(
   6397         IGraphBuilder *pfg) = 0;
   6398 
   6399     virtual HRESULT STDMETHODCALLTYPE GetFiltergraph(
   6400         IGraphBuilder **ppfg) = 0;
   6401 
   6402     virtual HRESULT STDMETHODCALLTYPE SetOutputFileName(
   6403         const GUID *pType,
   6404         LPCOLESTR lpstrFile,
   6405         IBaseFilter **ppf,
   6406         IFileSinkFilter **ppSink) = 0;
   6407 
   6408     virtual HRESULT STDMETHODCALLTYPE FindInterface(
   6409         const GUID *pCategory,
   6410         const GUID *pType,
   6411         IBaseFilter *pf,
   6412         REFIID riid,
   6413         void **ppint) = 0;
   6414 
   6415     virtual HRESULT STDMETHODCALLTYPE RenderStream(
   6416         const GUID *pCategory,
   6417         const GUID *pType,
   6418         IUnknown *pSource,
   6419         IBaseFilter *pfCompressor,
   6420         IBaseFilter *pfRenderer) = 0;
   6421 
   6422     virtual HRESULT STDMETHODCALLTYPE ControlStream(
   6423         const GUID *pCategory,
   6424         const GUID *pType,
   6425         IBaseFilter *pFilter,
   6426         REFERENCE_TIME *pstart,
   6427         REFERENCE_TIME *pstop,
   6428         WORD wStartCookie,
   6429         WORD wStopCookie) = 0;
   6430 
   6431     virtual HRESULT STDMETHODCALLTYPE AllocCapFile(
   6432         LPCOLESTR lpstr,
   6433         DWORDLONG dwlSize) = 0;
   6434 
   6435     virtual HRESULT STDMETHODCALLTYPE CopyCaptureFile(
   6436         LPOLESTR lpwstrOld,
   6437         LPOLESTR lpwstrNew,
   6438         int fAllowEscAbort,
   6439         IAMCopyCaptureFileProgress *pCallback) = 0;
   6440 
   6441     virtual HRESULT STDMETHODCALLTYPE FindPin(
   6442         IUnknown *pSource,
   6443         PIN_DIRECTION pindir,
   6444         const GUID *pCategory,
   6445         const GUID *pType,
   6446         WINBOOL fUnconnected,
   6447         int num,
   6448         IPin **ppPin) = 0;
   6449 
   6450 };
   6451 #ifdef __CRT_UUID_DECL
   6452 __CRT_UUID_DECL(ICaptureGraphBuilder2, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,0xfa, 0x00,0xa0,0xc9,0xc6,0xe3,0x8d)
   6453 #endif
   6454 #else
   6455 typedef struct ICaptureGraphBuilder2Vtbl {
   6456     BEGIN_INTERFACE
   6457 
   6458     /*** IUnknown methods ***/
   6459     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6460         ICaptureGraphBuilder2 *This,
   6461         REFIID riid,
   6462         void **ppvObject);
   6463 
   6464     ULONG (STDMETHODCALLTYPE *AddRef)(
   6465         ICaptureGraphBuilder2 *This);
   6466 
   6467     ULONG (STDMETHODCALLTYPE *Release)(
   6468         ICaptureGraphBuilder2 *This);
   6469 
   6470     /*** ICaptureGraphBuilder2 methods ***/
   6471     HRESULT (STDMETHODCALLTYPE *SetFiltergraph)(
   6472         ICaptureGraphBuilder2 *This,
   6473         IGraphBuilder *pfg);
   6474 
   6475     HRESULT (STDMETHODCALLTYPE *GetFiltergraph)(
   6476         ICaptureGraphBuilder2 *This,
   6477         IGraphBuilder **ppfg);
   6478 
   6479     HRESULT (STDMETHODCALLTYPE *SetOutputFileName)(
   6480         ICaptureGraphBuilder2 *This,
   6481         const GUID *pType,
   6482         LPCOLESTR lpstrFile,
   6483         IBaseFilter **ppf,
   6484         IFileSinkFilter **ppSink);
   6485 
   6486     HRESULT (STDMETHODCALLTYPE *FindInterface)(
   6487         ICaptureGraphBuilder2 *This,
   6488         const GUID *pCategory,
   6489         const GUID *pType,
   6490         IBaseFilter *pf,
   6491         REFIID riid,
   6492         void **ppint);
   6493 
   6494     HRESULT (STDMETHODCALLTYPE *RenderStream)(
   6495         ICaptureGraphBuilder2 *This,
   6496         const GUID *pCategory,
   6497         const GUID *pType,
   6498         IUnknown *pSource,
   6499         IBaseFilter *pfCompressor,
   6500         IBaseFilter *pfRenderer);
   6501 
   6502     HRESULT (STDMETHODCALLTYPE *ControlStream)(
   6503         ICaptureGraphBuilder2 *This,
   6504         const GUID *pCategory,
   6505         const GUID *pType,
   6506         IBaseFilter *pFilter,
   6507         REFERENCE_TIME *pstart,
   6508         REFERENCE_TIME *pstop,
   6509         WORD wStartCookie,
   6510         WORD wStopCookie);
   6511 
   6512     HRESULT (STDMETHODCALLTYPE *AllocCapFile)(
   6513         ICaptureGraphBuilder2 *This,
   6514         LPCOLESTR lpstr,
   6515         DWORDLONG dwlSize);
   6516 
   6517     HRESULT (STDMETHODCALLTYPE *CopyCaptureFile)(
   6518         ICaptureGraphBuilder2 *This,
   6519         LPOLESTR lpwstrOld,
   6520         LPOLESTR lpwstrNew,
   6521         int fAllowEscAbort,
   6522         IAMCopyCaptureFileProgress *pCallback);
   6523 
   6524     HRESULT (STDMETHODCALLTYPE *FindPin)(
   6525         ICaptureGraphBuilder2 *This,
   6526         IUnknown *pSource,
   6527         PIN_DIRECTION pindir,
   6528         const GUID *pCategory,
   6529         const GUID *pType,
   6530         WINBOOL fUnconnected,
   6531         int num,
   6532         IPin **ppPin);
   6533 
   6534     END_INTERFACE
   6535 } ICaptureGraphBuilder2Vtbl;
   6536 
   6537 interface ICaptureGraphBuilder2 {
   6538     CONST_VTBL ICaptureGraphBuilder2Vtbl* lpVtbl;
   6539 };
   6540 
   6541 #ifdef COBJMACROS
   6542 #ifndef WIDL_C_INLINE_WRAPPERS
   6543 /*** IUnknown methods ***/
   6544 #define ICaptureGraphBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6545 #define ICaptureGraphBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This)
   6546 #define ICaptureGraphBuilder2_Release(This) (This)->lpVtbl->Release(This)
   6547 /*** ICaptureGraphBuilder2 methods ***/
   6548 #define ICaptureGraphBuilder2_SetFiltergraph(This,pfg) (This)->lpVtbl->SetFiltergraph(This,pfg)
   6549 #define ICaptureGraphBuilder2_GetFiltergraph(This,ppfg) (This)->lpVtbl->GetFiltergraph(This,ppfg)
   6550 #define ICaptureGraphBuilder2_SetOutputFileName(This,pType,lpstrFile,ppf,ppSink) (This)->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink)
   6551 #define ICaptureGraphBuilder2_FindInterface(This,pCategory,pType,pf,riid,ppint) (This)->lpVtbl->FindInterface(This,pCategory,pType,pf,riid,ppint)
   6552 #define ICaptureGraphBuilder2_RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer) (This)->lpVtbl->RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer)
   6553 #define ICaptureGraphBuilder2_ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie) (This)->lpVtbl->ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie)
   6554 #define ICaptureGraphBuilder2_AllocCapFile(This,lpstr,dwlSize) (This)->lpVtbl->AllocCapFile(This,lpstr,dwlSize)
   6555 #define ICaptureGraphBuilder2_CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback) (This)->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback)
   6556 #define ICaptureGraphBuilder2_FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin) (This)->lpVtbl->FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin)
   6557 #else
   6558 /*** IUnknown methods ***/
   6559 static inline HRESULT ICaptureGraphBuilder2_QueryInterface(ICaptureGraphBuilder2* This,REFIID riid,void **ppvObject) {
   6560     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6561 }
   6562 static inline ULONG ICaptureGraphBuilder2_AddRef(ICaptureGraphBuilder2* This) {
   6563     return This->lpVtbl->AddRef(This);
   6564 }
   6565 static inline ULONG ICaptureGraphBuilder2_Release(ICaptureGraphBuilder2* This) {
   6566     return This->lpVtbl->Release(This);
   6567 }
   6568 /*** ICaptureGraphBuilder2 methods ***/
   6569 static inline HRESULT ICaptureGraphBuilder2_SetFiltergraph(ICaptureGraphBuilder2* This,IGraphBuilder *pfg) {
   6570     return This->lpVtbl->SetFiltergraph(This,pfg);
   6571 }
   6572 static inline HRESULT ICaptureGraphBuilder2_GetFiltergraph(ICaptureGraphBuilder2* This,IGraphBuilder **ppfg) {
   6573     return This->lpVtbl->GetFiltergraph(This,ppfg);
   6574 }
   6575 static inline HRESULT ICaptureGraphBuilder2_SetOutputFileName(ICaptureGraphBuilder2* This,const GUID *pType,LPCOLESTR lpstrFile,IBaseFilter **ppf,IFileSinkFilter **ppSink) {
   6576     return This->lpVtbl->SetOutputFileName(This,pType,lpstrFile,ppf,ppSink);
   6577 }
   6578 static inline HRESULT ICaptureGraphBuilder2_FindInterface(ICaptureGraphBuilder2* This,const GUID *pCategory,const GUID *pType,IBaseFilter *pf,REFIID riid,void **ppint) {
   6579     return This->lpVtbl->FindInterface(This,pCategory,pType,pf,riid,ppint);
   6580 }
   6581 static inline HRESULT ICaptureGraphBuilder2_RenderStream(ICaptureGraphBuilder2* This,const GUID *pCategory,const GUID *pType,IUnknown *pSource,IBaseFilter *pfCompressor,IBaseFilter *pfRenderer) {
   6582     return This->lpVtbl->RenderStream(This,pCategory,pType,pSource,pfCompressor,pfRenderer);
   6583 }
   6584 static inline HRESULT ICaptureGraphBuilder2_ControlStream(ICaptureGraphBuilder2* This,const GUID *pCategory,const GUID *pType,IBaseFilter *pFilter,REFERENCE_TIME *pstart,REFERENCE_TIME *pstop,WORD wStartCookie,WORD wStopCookie) {
   6585     return This->lpVtbl->ControlStream(This,pCategory,pType,pFilter,pstart,pstop,wStartCookie,wStopCookie);
   6586 }
   6587 static inline HRESULT ICaptureGraphBuilder2_AllocCapFile(ICaptureGraphBuilder2* This,LPCOLESTR lpstr,DWORDLONG dwlSize) {
   6588     return This->lpVtbl->AllocCapFile(This,lpstr,dwlSize);
   6589 }
   6590 static inline HRESULT ICaptureGraphBuilder2_CopyCaptureFile(ICaptureGraphBuilder2* This,LPOLESTR lpwstrOld,LPOLESTR lpwstrNew,int fAllowEscAbort,IAMCopyCaptureFileProgress *pCallback) {
   6591     return This->lpVtbl->CopyCaptureFile(This,lpwstrOld,lpwstrNew,fAllowEscAbort,pCallback);
   6592 }
   6593 static inline HRESULT ICaptureGraphBuilder2_FindPin(ICaptureGraphBuilder2* This,IUnknown *pSource,PIN_DIRECTION pindir,const GUID *pCategory,const GUID *pType,WINBOOL fUnconnected,int num,IPin **ppPin) {
   6594     return This->lpVtbl->FindPin(This,pSource,pindir,pCategory,pType,fUnconnected,num,ppPin);
   6595 }
   6596 #endif
   6597 #endif
   6598 
   6599 #endif
   6600 
   6601 HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_RemoteFindInterface_Proxy(
   6602     ICaptureGraphBuilder2* This,
   6603     const GUID *pCategory,
   6604     const GUID *pType,
   6605     IBaseFilter *pf,
   6606     REFIID riid,
   6607     IUnknown **ppint);
   6608 void __RPC_STUB ICaptureGraphBuilder2_RemoteFindInterface_Stub(
   6609     IRpcStubBuffer* This,
   6610     IRpcChannelBuffer* pRpcChannelBuffer,
   6611     PRPC_MESSAGE pRpcMessage,
   6612     DWORD* pdwStubPhase);
   6613 HRESULT CALLBACK ICaptureGraphBuilder2_FindInterface_Proxy(
   6614     ICaptureGraphBuilder2* This,
   6615     const GUID *pCategory,
   6616     const GUID *pType,
   6617     IBaseFilter *pf,
   6618     REFIID riid,
   6619     void **ppint);
   6620 HRESULT __RPC_STUB ICaptureGraphBuilder2_FindInterface_Stub(
   6621     ICaptureGraphBuilder2* This,
   6622     const GUID *pCategory,
   6623     const GUID *pType,
   6624     IBaseFilter *pf,
   6625     REFIID riid,
   6626     IUnknown **ppint);
   6627 
   6628 #endif  /* __ICaptureGraphBuilder2_INTERFACE_DEFINED__ */
   6629 
   6630 /*****************************************************************************
   6631  * IConfigAviMux interface
   6632  */
   6633 #ifndef __IConfigAviMux_INTERFACE_DEFINED__
   6634 #define __IConfigAviMux_INTERFACE_DEFINED__
   6635 
   6636 DEFINE_GUID(IID_IConfigAviMux, 0x5acd6aa0, 0xf482, 0x11ce, 0x8b,0x67, 0x00,0xaa,0x00,0xa3,0xf1,0xa6);
   6637 #if defined(__cplusplus) && !defined(CINTERFACE)
   6638 MIDL_INTERFACE("5acd6aa0-f482-11ce-8b67-00aa00a3f1a6")
   6639 IConfigAviMux : public IUnknown
   6640 {
   6641     virtual HRESULT STDMETHODCALLTYPE SetMasterStream(
   6642         LONG iStream) = 0;
   6643 
   6644     virtual HRESULT STDMETHODCALLTYPE GetMasterStream(
   6645         LONG *pStream) = 0;
   6646 
   6647     virtual HRESULT STDMETHODCALLTYPE SetOutputCompatibilityIndex(
   6648         WINBOOL fOldIndex) = 0;
   6649 
   6650     virtual HRESULT STDMETHODCALLTYPE GetOutputCompatibilityIndex(
   6651         WINBOOL *pfOldIndex) = 0;
   6652 
   6653 };
   6654 #ifdef __CRT_UUID_DECL
   6655 __CRT_UUID_DECL(IConfigAviMux, 0x5acd6aa0, 0xf482, 0x11ce, 0x8b,0x67, 0x00,0xaa,0x00,0xa3,0xf1,0xa6)
   6656 #endif
   6657 #else
   6658 typedef struct IConfigAviMuxVtbl {
   6659     BEGIN_INTERFACE
   6660 
   6661     /*** IUnknown methods ***/
   6662     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6663         IConfigAviMux *This,
   6664         REFIID riid,
   6665         void **ppvObject);
   6666 
   6667     ULONG (STDMETHODCALLTYPE *AddRef)(
   6668         IConfigAviMux *This);
   6669 
   6670     ULONG (STDMETHODCALLTYPE *Release)(
   6671         IConfigAviMux *This);
   6672 
   6673     /*** IConfigAviMux methods ***/
   6674     HRESULT (STDMETHODCALLTYPE *SetMasterStream)(
   6675         IConfigAviMux *This,
   6676         LONG iStream);
   6677 
   6678     HRESULT (STDMETHODCALLTYPE *GetMasterStream)(
   6679         IConfigAviMux *This,
   6680         LONG *pStream);
   6681 
   6682     HRESULT (STDMETHODCALLTYPE *SetOutputCompatibilityIndex)(
   6683         IConfigAviMux *This,
   6684         WINBOOL fOldIndex);
   6685 
   6686     HRESULT (STDMETHODCALLTYPE *GetOutputCompatibilityIndex)(
   6687         IConfigAviMux *This,
   6688         WINBOOL *pfOldIndex);
   6689 
   6690     END_INTERFACE
   6691 } IConfigAviMuxVtbl;
   6692 
   6693 interface IConfigAviMux {
   6694     CONST_VTBL IConfigAviMuxVtbl* lpVtbl;
   6695 };
   6696 
   6697 #ifdef COBJMACROS
   6698 #ifndef WIDL_C_INLINE_WRAPPERS
   6699 /*** IUnknown methods ***/
   6700 #define IConfigAviMux_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6701 #define IConfigAviMux_AddRef(This) (This)->lpVtbl->AddRef(This)
   6702 #define IConfigAviMux_Release(This) (This)->lpVtbl->Release(This)
   6703 /*** IConfigAviMux methods ***/
   6704 #define IConfigAviMux_SetMasterStream(This,iStream) (This)->lpVtbl->SetMasterStream(This,iStream)
   6705 #define IConfigAviMux_GetMasterStream(This,pStream) (This)->lpVtbl->GetMasterStream(This,pStream)
   6706 #define IConfigAviMux_SetOutputCompatibilityIndex(This,fOldIndex) (This)->lpVtbl->SetOutputCompatibilityIndex(This,fOldIndex)
   6707 #define IConfigAviMux_GetOutputCompatibilityIndex(This,pfOldIndex) (This)->lpVtbl->GetOutputCompatibilityIndex(This,pfOldIndex)
   6708 #else
   6709 /*** IUnknown methods ***/
   6710 static inline HRESULT IConfigAviMux_QueryInterface(IConfigAviMux* This,REFIID riid,void **ppvObject) {
   6711     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6712 }
   6713 static inline ULONG IConfigAviMux_AddRef(IConfigAviMux* This) {
   6714     return This->lpVtbl->AddRef(This);
   6715 }
   6716 static inline ULONG IConfigAviMux_Release(IConfigAviMux* This) {
   6717     return This->lpVtbl->Release(This);
   6718 }
   6719 /*** IConfigAviMux methods ***/
   6720 static inline HRESULT IConfigAviMux_SetMasterStream(IConfigAviMux* This,LONG iStream) {
   6721     return This->lpVtbl->SetMasterStream(This,iStream);
   6722 }
   6723 static inline HRESULT IConfigAviMux_GetMasterStream(IConfigAviMux* This,LONG *pStream) {
   6724     return This->lpVtbl->GetMasterStream(This,pStream);
   6725 }
   6726 static inline HRESULT IConfigAviMux_SetOutputCompatibilityIndex(IConfigAviMux* This,WINBOOL fOldIndex) {
   6727     return This->lpVtbl->SetOutputCompatibilityIndex(This,fOldIndex);
   6728 }
   6729 static inline HRESULT IConfigAviMux_GetOutputCompatibilityIndex(IConfigAviMux* This,WINBOOL *pfOldIndex) {
   6730     return This->lpVtbl->GetOutputCompatibilityIndex(This,pfOldIndex);
   6731 }
   6732 #endif
   6733 #endif
   6734 
   6735 #endif
   6736 
   6737 
   6738 #endif  /* __IConfigAviMux_INTERFACE_DEFINED__ */
   6739 
   6740 /*****************************************************************************
   6741  * IConfigInterleaving interface
   6742  */
   6743 #ifndef __IConfigInterleaving_INTERFACE_DEFINED__
   6744 #define __IConfigInterleaving_INTERFACE_DEFINED__
   6745 
   6746 typedef enum InterleavingMode {
   6747     INTERLEAVE_NONE = 0,
   6748     INTERLEAVE_CAPTURE = 1,
   6749     INTERLEAVE_FULL = 2,
   6750     INTERLEAVE_NONE_BUFFERED = 3
   6751 } InterleavingMode;
   6752 DEFINE_GUID(IID_IConfigInterleaving, 0xbee3d220, 0x157b, 0x11d0, 0xbd,0x23, 0x00,0xa0,0xc9,0x11,0xce,0x86);
   6753 #if defined(__cplusplus) && !defined(CINTERFACE)
   6754 MIDL_INTERFACE("bee3d220-157b-11d0-bd23-00a0c911ce86")
   6755 IConfigInterleaving : public IUnknown
   6756 {
   6757     virtual HRESULT STDMETHODCALLTYPE put_Mode(
   6758         InterleavingMode mode) = 0;
   6759 
   6760     virtual HRESULT STDMETHODCALLTYPE get_Mode(
   6761         InterleavingMode *pMode) = 0;
   6762 
   6763     virtual HRESULT STDMETHODCALLTYPE put_Interleaving(
   6764         const REFERENCE_TIME *prtInterleave,
   6765         const REFERENCE_TIME *prtPreroll) = 0;
   6766 
   6767     virtual HRESULT STDMETHODCALLTYPE get_Interleaving(
   6768         REFERENCE_TIME *prtInterleave,
   6769         REFERENCE_TIME *prtPreroll) = 0;
   6770 
   6771 };
   6772 #ifdef __CRT_UUID_DECL
   6773 __CRT_UUID_DECL(IConfigInterleaving, 0xbee3d220, 0x157b, 0x11d0, 0xbd,0x23, 0x00,0xa0,0xc9,0x11,0xce,0x86)
   6774 #endif
   6775 #else
   6776 typedef struct IConfigInterleavingVtbl {
   6777     BEGIN_INTERFACE
   6778 
   6779     /*** IUnknown methods ***/
   6780     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6781         IConfigInterleaving *This,
   6782         REFIID riid,
   6783         void **ppvObject);
   6784 
   6785     ULONG (STDMETHODCALLTYPE *AddRef)(
   6786         IConfigInterleaving *This);
   6787 
   6788     ULONG (STDMETHODCALLTYPE *Release)(
   6789         IConfigInterleaving *This);
   6790 
   6791     /*** IConfigInterleaving methods ***/
   6792     HRESULT (STDMETHODCALLTYPE *put_Mode)(
   6793         IConfigInterleaving *This,
   6794         InterleavingMode mode);
   6795 
   6796     HRESULT (STDMETHODCALLTYPE *get_Mode)(
   6797         IConfigInterleaving *This,
   6798         InterleavingMode *pMode);
   6799 
   6800     HRESULT (STDMETHODCALLTYPE *put_Interleaving)(
   6801         IConfigInterleaving *This,
   6802         const REFERENCE_TIME *prtInterleave,
   6803         const REFERENCE_TIME *prtPreroll);
   6804 
   6805     HRESULT (STDMETHODCALLTYPE *get_Interleaving)(
   6806         IConfigInterleaving *This,
   6807         REFERENCE_TIME *prtInterleave,
   6808         REFERENCE_TIME *prtPreroll);
   6809 
   6810     END_INTERFACE
   6811 } IConfigInterleavingVtbl;
   6812 
   6813 interface IConfigInterleaving {
   6814     CONST_VTBL IConfigInterleavingVtbl* lpVtbl;
   6815 };
   6816 
   6817 #ifdef COBJMACROS
   6818 #ifndef WIDL_C_INLINE_WRAPPERS
   6819 /*** IUnknown methods ***/
   6820 #define IConfigInterleaving_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6821 #define IConfigInterleaving_AddRef(This) (This)->lpVtbl->AddRef(This)
   6822 #define IConfigInterleaving_Release(This) (This)->lpVtbl->Release(This)
   6823 /*** IConfigInterleaving methods ***/
   6824 #define IConfigInterleaving_put_Mode(This,mode) (This)->lpVtbl->put_Mode(This,mode)
   6825 #define IConfigInterleaving_get_Mode(This,pMode) (This)->lpVtbl->get_Mode(This,pMode)
   6826 #define IConfigInterleaving_put_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->put_Interleaving(This,prtInterleave,prtPreroll)
   6827 #define IConfigInterleaving_get_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->get_Interleaving(This,prtInterleave,prtPreroll)
   6828 #else
   6829 /*** IUnknown methods ***/
   6830 static inline HRESULT IConfigInterleaving_QueryInterface(IConfigInterleaving* This,REFIID riid,void **ppvObject) {
   6831     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6832 }
   6833 static inline ULONG IConfigInterleaving_AddRef(IConfigInterleaving* This) {
   6834     return This->lpVtbl->AddRef(This);
   6835 }
   6836 static inline ULONG IConfigInterleaving_Release(IConfigInterleaving* This) {
   6837     return This->lpVtbl->Release(This);
   6838 }
   6839 /*** IConfigInterleaving methods ***/
   6840 static inline HRESULT IConfigInterleaving_put_Mode(IConfigInterleaving* This,InterleavingMode mode) {
   6841     return This->lpVtbl->put_Mode(This,mode);
   6842 }
   6843 static inline HRESULT IConfigInterleaving_get_Mode(IConfigInterleaving* This,InterleavingMode *pMode) {
   6844     return This->lpVtbl->get_Mode(This,pMode);
   6845 }
   6846 static inline HRESULT IConfigInterleaving_put_Interleaving(IConfigInterleaving* This,const REFERENCE_TIME *prtInterleave,const REFERENCE_TIME *prtPreroll) {
   6847     return This->lpVtbl->put_Interleaving(This,prtInterleave,prtPreroll);
   6848 }
   6849 static inline HRESULT IConfigInterleaving_get_Interleaving(IConfigInterleaving* This,REFERENCE_TIME *prtInterleave,REFERENCE_TIME *prtPreroll) {
   6850     return This->lpVtbl->get_Interleaving(This,prtInterleave,prtPreroll);
   6851 }
   6852 #endif
   6853 #endif
   6854 
   6855 #endif
   6856 
   6857 
   6858 #endif  /* __IConfigInterleaving_INTERFACE_DEFINED__ */
   6859 
   6860 /*****************************************************************************
   6861  * IAMClockSlave interface
   6862  */
   6863 #ifndef __IAMClockSlave_INTERFACE_DEFINED__
   6864 #define __IAMClockSlave_INTERFACE_DEFINED__
   6865 
   6866 DEFINE_GUID(IID_IAMClockSlave, 0x9fd52741, 0x176d, 0x4b36, 0x8f,0x51, 0xca,0x8f,0x93,0x32,0x23,0xbe);
   6867 #if defined(__cplusplus) && !defined(CINTERFACE)
   6868 MIDL_INTERFACE("9fd52741-176d-4b36-8f51-ca8f933223be")
   6869 IAMClockSlave : public IUnknown
   6870 {
   6871     virtual HRESULT STDMETHODCALLTYPE SetErrorTolerance(
   6872         DWORD dwTolerance) = 0;
   6873 
   6874     virtual HRESULT STDMETHODCALLTYPE GetErrorTolerance(
   6875         DWORD *pdwTolerance) = 0;
   6876 
   6877 };
   6878 #ifdef __CRT_UUID_DECL
   6879 __CRT_UUID_DECL(IAMClockSlave, 0x9fd52741, 0x176d, 0x4b36, 0x8f,0x51, 0xca,0x8f,0x93,0x32,0x23,0xbe)
   6880 #endif
   6881 #else
   6882 typedef struct IAMClockSlaveVtbl {
   6883     BEGIN_INTERFACE
   6884 
   6885     /*** IUnknown methods ***/
   6886     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6887         IAMClockSlave *This,
   6888         REFIID riid,
   6889         void **ppvObject);
   6890 
   6891     ULONG (STDMETHODCALLTYPE *AddRef)(
   6892         IAMClockSlave *This);
   6893 
   6894     ULONG (STDMETHODCALLTYPE *Release)(
   6895         IAMClockSlave *This);
   6896 
   6897     /*** IAMClockSlave methods ***/
   6898     HRESULT (STDMETHODCALLTYPE *SetErrorTolerance)(
   6899         IAMClockSlave *This,
   6900         DWORD dwTolerance);
   6901 
   6902     HRESULT (STDMETHODCALLTYPE *GetErrorTolerance)(
   6903         IAMClockSlave *This,
   6904         DWORD *pdwTolerance);
   6905 
   6906     END_INTERFACE
   6907 } IAMClockSlaveVtbl;
   6908 
   6909 interface IAMClockSlave {
   6910     CONST_VTBL IAMClockSlaveVtbl* lpVtbl;
   6911 };
   6912 
   6913 #ifdef COBJMACROS
   6914 #ifndef WIDL_C_INLINE_WRAPPERS
   6915 /*** IUnknown methods ***/
   6916 #define IAMClockSlave_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6917 #define IAMClockSlave_AddRef(This) (This)->lpVtbl->AddRef(This)
   6918 #define IAMClockSlave_Release(This) (This)->lpVtbl->Release(This)
   6919 /*** IAMClockSlave methods ***/
   6920 #define IAMClockSlave_SetErrorTolerance(This,dwTolerance) (This)->lpVtbl->SetErrorTolerance(This,dwTolerance)
   6921 #define IAMClockSlave_GetErrorTolerance(This,pdwTolerance) (This)->lpVtbl->GetErrorTolerance(This,pdwTolerance)
   6922 #else
   6923 /*** IUnknown methods ***/
   6924 static inline HRESULT IAMClockSlave_QueryInterface(IAMClockSlave* This,REFIID riid,void **ppvObject) {
   6925     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6926 }
   6927 static inline ULONG IAMClockSlave_AddRef(IAMClockSlave* This) {
   6928     return This->lpVtbl->AddRef(This);
   6929 }
   6930 static inline ULONG IAMClockSlave_Release(IAMClockSlave* This) {
   6931     return This->lpVtbl->Release(This);
   6932 }
   6933 /*** IAMClockSlave methods ***/
   6934 static inline HRESULT IAMClockSlave_SetErrorTolerance(IAMClockSlave* This,DWORD dwTolerance) {
   6935     return This->lpVtbl->SetErrorTolerance(This,dwTolerance);
   6936 }
   6937 static inline HRESULT IAMClockSlave_GetErrorTolerance(IAMClockSlave* This,DWORD *pdwTolerance) {
   6938     return This->lpVtbl->GetErrorTolerance(This,pdwTolerance);
   6939 }
   6940 #endif
   6941 #endif
   6942 
   6943 #endif
   6944 
   6945 
   6946 #endif  /* __IAMClockSlave_INTERFACE_DEFINED__ */
   6947 
   6948 typedef struct _AMCOPPSignature {
   6949     BYTE Signature[256];
   6950 } AMCOPPSignature;
   6951 typedef struct _AMCOPPCommand {
   6952     GUID macKDI;
   6953     GUID guidCommandID;
   6954     DWORD dwSequence;
   6955     DWORD bSizeData;
   6956     BYTE CommandData[4056];
   6957 } AMCOPPCommand;
   6958 typedef struct _AMCOPPCommand *LPAMCOPPCommand;
   6959 typedef struct _AMCOPPStatusInput {
   6960     GUID rApp;
   6961     GUID guidStatusRequestID;
   6962     DWORD dwSequence;
   6963     DWORD cbSizeData;
   6964     BYTE StatusData[4056];
   6965 } AMCOPPStatusInput;
   6966 typedef struct _AMCOPPStatusInput *LPAMCOPPStatusInput;
   6967 typedef struct _AMCOPPStatusOutput {
   6968     GUID macKDI;
   6969     DWORD cbSizeData;
   6970     BYTE COPPStatus[4076];
   6971 } AMCOPPStatusOutput;
   6972 typedef struct _AMCOPPStatusOutput *LPAMCOPPStatusOutput;
   6973 /*****************************************************************************
   6974  * IAMCertifiedOutputProtection interface
   6975  */
   6976 #ifndef __IAMCertifiedOutputProtection_INTERFACE_DEFINED__
   6977 #define __IAMCertifiedOutputProtection_INTERFACE_DEFINED__
   6978 
   6979 DEFINE_GUID(IID_IAMCertifiedOutputProtection, 0x6feded3e, 0x0ff1, 0x4901, 0xa2,0xf1, 0x43,0xf7,0x01,0x2c,0x85,0x15);
   6980 #if defined(__cplusplus) && !defined(CINTERFACE)
   6981 MIDL_INTERFACE("6feded3e-0ff1-4901-a2f1-43f7012c8515")
   6982 IAMCertifiedOutputProtection : public IUnknown
   6983 {
   6984     virtual HRESULT STDMETHODCALLTYPE KeyExchange(
   6985         GUID *pRandom,
   6986         BYTE **VarLenCertGH,
   6987         DWORD *pdwLengthCertGH) = 0;
   6988 
   6989     virtual HRESULT STDMETHODCALLTYPE SessionSequenceStart(
   6990         AMCOPPSignature *pSig) = 0;
   6991 
   6992     virtual HRESULT STDMETHODCALLTYPE ProtectionCommand(
   6993         const AMCOPPCommand *cmd) = 0;
   6994 
   6995     virtual HRESULT STDMETHODCALLTYPE ProtectionStatus(
   6996         const AMCOPPStatusInput *pStatusInput,
   6997         AMCOPPStatusOutput *pStatusOutput) = 0;
   6998 
   6999 };
   7000 #ifdef __CRT_UUID_DECL
   7001 __CRT_UUID_DECL(IAMCertifiedOutputProtection, 0x6feded3e, 0x0ff1, 0x4901, 0xa2,0xf1, 0x43,0xf7,0x01,0x2c,0x85,0x15)
   7002 #endif
   7003 #else
   7004 typedef struct IAMCertifiedOutputProtectionVtbl {
   7005     BEGIN_INTERFACE
   7006 
   7007     /*** IUnknown methods ***/
   7008     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7009         IAMCertifiedOutputProtection *This,
   7010         REFIID riid,
   7011         void **ppvObject);
   7012 
   7013     ULONG (STDMETHODCALLTYPE *AddRef)(
   7014         IAMCertifiedOutputProtection *This);
   7015 
   7016     ULONG (STDMETHODCALLTYPE *Release)(
   7017         IAMCertifiedOutputProtection *This);
   7018 
   7019     /*** IAMCertifiedOutputProtection methods ***/
   7020     HRESULT (STDMETHODCALLTYPE *KeyExchange)(
   7021         IAMCertifiedOutputProtection *This,
   7022         GUID *pRandom,
   7023         BYTE **VarLenCertGH,
   7024         DWORD *pdwLengthCertGH);
   7025 
   7026     HRESULT (STDMETHODCALLTYPE *SessionSequenceStart)(
   7027         IAMCertifiedOutputProtection *This,
   7028         AMCOPPSignature *pSig);
   7029 
   7030     HRESULT (STDMETHODCALLTYPE *ProtectionCommand)(
   7031         IAMCertifiedOutputProtection *This,
   7032         const AMCOPPCommand *cmd);
   7033 
   7034     HRESULT (STDMETHODCALLTYPE *ProtectionStatus)(
   7035         IAMCertifiedOutputProtection *This,
   7036         const AMCOPPStatusInput *pStatusInput,
   7037         AMCOPPStatusOutput *pStatusOutput);
   7038 
   7039     END_INTERFACE
   7040 } IAMCertifiedOutputProtectionVtbl;
   7041 
   7042 interface IAMCertifiedOutputProtection {
   7043     CONST_VTBL IAMCertifiedOutputProtectionVtbl* lpVtbl;
   7044 };
   7045 
   7046 #ifdef COBJMACROS
   7047 #ifndef WIDL_C_INLINE_WRAPPERS
   7048 /*** IUnknown methods ***/
   7049 #define IAMCertifiedOutputProtection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7050 #define IAMCertifiedOutputProtection_AddRef(This) (This)->lpVtbl->AddRef(This)
   7051 #define IAMCertifiedOutputProtection_Release(This) (This)->lpVtbl->Release(This)
   7052 /*** IAMCertifiedOutputProtection methods ***/
   7053 #define IAMCertifiedOutputProtection_KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH) (This)->lpVtbl->KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH)
   7054 #define IAMCertifiedOutputProtection_SessionSequenceStart(This,pSig) (This)->lpVtbl->SessionSequenceStart(This,pSig)
   7055 #define IAMCertifiedOutputProtection_ProtectionCommand(This,cmd) (This)->lpVtbl->ProtectionCommand(This,cmd)
   7056 #define IAMCertifiedOutputProtection_ProtectionStatus(This,pStatusInput,pStatusOutput) (This)->lpVtbl->ProtectionStatus(This,pStatusInput,pStatusOutput)
   7057 #else
   7058 /*** IUnknown methods ***/
   7059 static inline HRESULT IAMCertifiedOutputProtection_QueryInterface(IAMCertifiedOutputProtection* This,REFIID riid,void **ppvObject) {
   7060     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7061 }
   7062 static inline ULONG IAMCertifiedOutputProtection_AddRef(IAMCertifiedOutputProtection* This) {
   7063     return This->lpVtbl->AddRef(This);
   7064 }
   7065 static inline ULONG IAMCertifiedOutputProtection_Release(IAMCertifiedOutputProtection* This) {
   7066     return This->lpVtbl->Release(This);
   7067 }
   7068 /*** IAMCertifiedOutputProtection methods ***/
   7069 static inline HRESULT IAMCertifiedOutputProtection_KeyExchange(IAMCertifiedOutputProtection* This,GUID *pRandom,BYTE **VarLenCertGH,DWORD *pdwLengthCertGH) {
   7070     return This->lpVtbl->KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH);
   7071 }
   7072 static inline HRESULT IAMCertifiedOutputProtection_SessionSequenceStart(IAMCertifiedOutputProtection* This,AMCOPPSignature *pSig) {
   7073     return This->lpVtbl->SessionSequenceStart(This,pSig);
   7074 }
   7075 static inline HRESULT IAMCertifiedOutputProtection_ProtectionCommand(IAMCertifiedOutputProtection* This,const AMCOPPCommand *cmd) {
   7076     return This->lpVtbl->ProtectionCommand(This,cmd);
   7077 }
   7078 static inline HRESULT IAMCertifiedOutputProtection_ProtectionStatus(IAMCertifiedOutputProtection* This,const AMCOPPStatusInput *pStatusInput,AMCOPPStatusOutput *pStatusOutput) {
   7079     return This->lpVtbl->ProtectionStatus(This,pStatusInput,pStatusOutput);
   7080 }
   7081 #endif
   7082 #endif
   7083 
   7084 #endif
   7085 
   7086 
   7087 #endif  /* __IAMCertifiedOutputProtection_INTERFACE_DEFINED__ */
   7088 
   7089 enum _AM_RENSDEREXFLAGS {
   7090     AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x1
   7091 };
   7092 /*****************************************************************************
   7093  * IFilterGraph2 interface
   7094  */
   7095 #ifndef __IFilterGraph2_INTERFACE_DEFINED__
   7096 #define __IFilterGraph2_INTERFACE_DEFINED__
   7097 
   7098 DEFINE_GUID(IID_IFilterGraph2, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
   7099 #if defined(__cplusplus) && !defined(CINTERFACE)
   7100 MIDL_INTERFACE("36b73882-c2c8-11cf-8b46-00805f6cef60")
   7101 IFilterGraph2 : public IGraphBuilder
   7102 {
   7103     virtual HRESULT STDMETHODCALLTYPE AddSourceFilterForMoniker(
   7104         IMoniker *pMoniker,
   7105         IBindCtx *pCtx,
   7106         LPCWSTR lpcwstrFilterName,
   7107         IBaseFilter **ppFilter) = 0;
   7108 
   7109     virtual HRESULT STDMETHODCALLTYPE ReconnectEx(
   7110         IPin *ppin,
   7111         const AM_MEDIA_TYPE *pmt) = 0;
   7112 
   7113     virtual HRESULT STDMETHODCALLTYPE RenderEx(
   7114         IPin *pPinOut,
   7115         DWORD dwFlags,
   7116         DWORD *pvContext) = 0;
   7117 
   7118 };
   7119 #ifdef __CRT_UUID_DECL
   7120 __CRT_UUID_DECL(IFilterGraph2, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
   7121 #endif
   7122 #else
   7123 typedef struct IFilterGraph2Vtbl {
   7124     BEGIN_INTERFACE
   7125 
   7126     /*** IUnknown methods ***/
   7127     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7128         IFilterGraph2 *This,
   7129         REFIID riid,
   7130         void **ppvObject);
   7131 
   7132     ULONG (STDMETHODCALLTYPE *AddRef)(
   7133         IFilterGraph2 *This);
   7134 
   7135     ULONG (STDMETHODCALLTYPE *Release)(
   7136         IFilterGraph2 *This);
   7137 
   7138     /*** IFilterGraph methods ***/
   7139     HRESULT (STDMETHODCALLTYPE *AddFilter)(
   7140         IFilterGraph2 *This,
   7141         IBaseFilter *pFilter,
   7142         LPCWSTR pName);
   7143 
   7144     HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
   7145         IFilterGraph2 *This,
   7146         IBaseFilter *pFilter);
   7147 
   7148     HRESULT (STDMETHODCALLTYPE *EnumFilters)(
   7149         IFilterGraph2 *This,
   7150         IEnumFilters **ppEnum);
   7151 
   7152     HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
   7153         IFilterGraph2 *This,
   7154         LPCWSTR pName,
   7155         IBaseFilter **ppFilter);
   7156 
   7157     HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
   7158         IFilterGraph2 *This,
   7159         IPin *ppinOut,
   7160         IPin *ppinIn,
   7161         const AM_MEDIA_TYPE *pmt);
   7162 
   7163     HRESULT (STDMETHODCALLTYPE *Reconnect)(
   7164         IFilterGraph2 *This,
   7165         IPin *ppin);
   7166 
   7167     HRESULT (STDMETHODCALLTYPE *Disconnect)(
   7168         IFilterGraph2 *This,
   7169         IPin *ppin);
   7170 
   7171     HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
   7172         IFilterGraph2 *This);
   7173 
   7174     /*** IGraphBuilder methods ***/
   7175     HRESULT (STDMETHODCALLTYPE *Connect)(
   7176         IFilterGraph2 *This,
   7177         IPin *ppinOut,
   7178         IPin *ppinIn);
   7179 
   7180     HRESULT (STDMETHODCALLTYPE *Render)(
   7181         IFilterGraph2 *This,
   7182         IPin *ppinOut);
   7183 
   7184     HRESULT (STDMETHODCALLTYPE *RenderFile)(
   7185         IFilterGraph2 *This,
   7186         LPCWSTR lpcwstrFile,
   7187         LPCWSTR lpcwstrPlayList);
   7188 
   7189     HRESULT (STDMETHODCALLTYPE *AddSourceFilter)(
   7190         IFilterGraph2 *This,
   7191         LPCWSTR lpcwstrFileName,
   7192         LPCWSTR lpcwstrFilterName,
   7193         IBaseFilter **ppFilter);
   7194 
   7195     HRESULT (STDMETHODCALLTYPE *SetLogFile)(
   7196         IFilterGraph2 *This,
   7197         DWORD_PTR hFile);
   7198 
   7199     HRESULT (STDMETHODCALLTYPE *Abort)(
   7200         IFilterGraph2 *This);
   7201 
   7202     HRESULT (STDMETHODCALLTYPE *ShouldOperationContinue)(
   7203         IFilterGraph2 *This);
   7204 
   7205     /*** IFilterGraph2 methods ***/
   7206     HRESULT (STDMETHODCALLTYPE *AddSourceFilterForMoniker)(
   7207         IFilterGraph2 *This,
   7208         IMoniker *pMoniker,
   7209         IBindCtx *pCtx,
   7210         LPCWSTR lpcwstrFilterName,
   7211         IBaseFilter **ppFilter);
   7212 
   7213     HRESULT (STDMETHODCALLTYPE *ReconnectEx)(
   7214         IFilterGraph2 *This,
   7215         IPin *ppin,
   7216         const AM_MEDIA_TYPE *pmt);
   7217 
   7218     HRESULT (STDMETHODCALLTYPE *RenderEx)(
   7219         IFilterGraph2 *This,
   7220         IPin *pPinOut,
   7221         DWORD dwFlags,
   7222         DWORD *pvContext);
   7223 
   7224     END_INTERFACE
   7225 } IFilterGraph2Vtbl;
   7226 
   7227 interface IFilterGraph2 {
   7228     CONST_VTBL IFilterGraph2Vtbl* lpVtbl;
   7229 };
   7230 
   7231 #ifdef COBJMACROS
   7232 #ifndef WIDL_C_INLINE_WRAPPERS
   7233 /*** IUnknown methods ***/
   7234 #define IFilterGraph2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7235 #define IFilterGraph2_AddRef(This) (This)->lpVtbl->AddRef(This)
   7236 #define IFilterGraph2_Release(This) (This)->lpVtbl->Release(This)
   7237 /*** IFilterGraph methods ***/
   7238 #define IFilterGraph2_AddFilter(This,pFilter,pName) (This)->lpVtbl->AddFilter(This,pFilter,pName)
   7239 #define IFilterGraph2_RemoveFilter(This,pFilter) (This)->lpVtbl->RemoveFilter(This,pFilter)
   7240 #define IFilterGraph2_EnumFilters(This,ppEnum) (This)->lpVtbl->EnumFilters(This,ppEnum)
   7241 #define IFilterGraph2_FindFilterByName(This,pName,ppFilter) (This)->lpVtbl->FindFilterByName(This,pName,ppFilter)
   7242 #define IFilterGraph2_ConnectDirect(This,ppinOut,ppinIn,pmt) (This)->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt)
   7243 #define IFilterGraph2_Reconnect(This,ppin) (This)->lpVtbl->Reconnect(This,ppin)
   7244 #define IFilterGraph2_Disconnect(This,ppin) (This)->lpVtbl->Disconnect(This,ppin)
   7245 #define IFilterGraph2_SetDefaultSyncSource(This) (This)->lpVtbl->SetDefaultSyncSource(This)
   7246 /*** IGraphBuilder methods ***/
   7247 #define IFilterGraph2_Connect(This,ppinOut,ppinIn) (This)->lpVtbl->Connect(This,ppinOut,ppinIn)
   7248 #define IFilterGraph2_Render(This,ppinOut) (This)->lpVtbl->Render(This,ppinOut)
   7249 #define IFilterGraph2_RenderFile(This,lpcwstrFile,lpcwstrPlayList) (This)->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList)
   7250 #define IFilterGraph2_AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter)
   7251 #define IFilterGraph2_SetLogFile(This,hFile) (This)->lpVtbl->SetLogFile(This,hFile)
   7252 #define IFilterGraph2_Abort(This) (This)->lpVtbl->Abort(This)
   7253 #define IFilterGraph2_ShouldOperationContinue(This) (This)->lpVtbl->ShouldOperationContinue(This)
   7254 /*** IFilterGraph2 methods ***/
   7255 #define IFilterGraph2_AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter) (This)->lpVtbl->AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter)
   7256 #define IFilterGraph2_ReconnectEx(This,ppin,pmt) (This)->lpVtbl->ReconnectEx(This,ppin,pmt)
   7257 #define IFilterGraph2_RenderEx(This,pPinOut,dwFlags,pvContext) (This)->lpVtbl->RenderEx(This,pPinOut,dwFlags,pvContext)
   7258 #else
   7259 /*** IUnknown methods ***/
   7260 static inline HRESULT IFilterGraph2_QueryInterface(IFilterGraph2* This,REFIID riid,void **ppvObject) {
   7261     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7262 }
   7263 static inline ULONG IFilterGraph2_AddRef(IFilterGraph2* This) {
   7264     return This->lpVtbl->AddRef(This);
   7265 }
   7266 static inline ULONG IFilterGraph2_Release(IFilterGraph2* This) {
   7267     return This->lpVtbl->Release(This);
   7268 }
   7269 /*** IFilterGraph methods ***/
   7270 static inline HRESULT IFilterGraph2_AddFilter(IFilterGraph2* This,IBaseFilter *pFilter,LPCWSTR pName) {
   7271     return This->lpVtbl->AddFilter(This,pFilter,pName);
   7272 }
   7273 static inline HRESULT IFilterGraph2_RemoveFilter(IFilterGraph2* This,IBaseFilter *pFilter) {
   7274     return This->lpVtbl->RemoveFilter(This,pFilter);
   7275 }
   7276 static inline HRESULT IFilterGraph2_EnumFilters(IFilterGraph2* This,IEnumFilters **ppEnum) {
   7277     return This->lpVtbl->EnumFilters(This,ppEnum);
   7278 }
   7279 static inline HRESULT IFilterGraph2_FindFilterByName(IFilterGraph2* This,LPCWSTR pName,IBaseFilter **ppFilter) {
   7280     return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
   7281 }
   7282 static inline HRESULT IFilterGraph2_ConnectDirect(IFilterGraph2* This,IPin *ppinOut,IPin *ppinIn,const AM_MEDIA_TYPE *pmt) {
   7283     return This->lpVtbl->ConnectDirect(This,ppinOut,ppinIn,pmt);
   7284 }
   7285 static inline HRESULT IFilterGraph2_Reconnect(IFilterGraph2* This,IPin *ppin) {
   7286     return This->lpVtbl->Reconnect(This,ppin);
   7287 }
   7288 static inline HRESULT IFilterGraph2_Disconnect(IFilterGraph2* This,IPin *ppin) {
   7289     return This->lpVtbl->Disconnect(This,ppin);
   7290 }
   7291 static inline HRESULT IFilterGraph2_SetDefaultSyncSource(IFilterGraph2* This) {
   7292     return This->lpVtbl->SetDefaultSyncSource(This);
   7293 }
   7294 /*** IGraphBuilder methods ***/
   7295 static inline HRESULT IFilterGraph2_Connect(IFilterGraph2* This,IPin *ppinOut,IPin *ppinIn) {
   7296     return This->lpVtbl->Connect(This,ppinOut,ppinIn);
   7297 }
   7298 static inline HRESULT IFilterGraph2_Render(IFilterGraph2* This,IPin *ppinOut) {
   7299     return This->lpVtbl->Render(This,ppinOut);
   7300 }
   7301 static inline HRESULT IFilterGraph2_RenderFile(IFilterGraph2* This,LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList) {
   7302     return This->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList);
   7303 }
   7304 static inline HRESULT IFilterGraph2_AddSourceFilter(IFilterGraph2* This,LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) {
   7305     return This->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter);
   7306 }
   7307 static inline HRESULT IFilterGraph2_SetLogFile(IFilterGraph2* This,DWORD_PTR hFile) {
   7308     return This->lpVtbl->SetLogFile(This,hFile);
   7309 }
   7310 static inline HRESULT IFilterGraph2_Abort(IFilterGraph2* This) {
   7311     return This->lpVtbl->Abort(This);
   7312 }
   7313 static inline HRESULT IFilterGraph2_ShouldOperationContinue(IFilterGraph2* This) {
   7314     return This->lpVtbl->ShouldOperationContinue(This);
   7315 }
   7316 /*** IFilterGraph2 methods ***/
   7317 static inline HRESULT IFilterGraph2_AddSourceFilterForMoniker(IFilterGraph2* This,IMoniker *pMoniker,IBindCtx *pCtx,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) {
   7318     return This->lpVtbl->AddSourceFilterForMoniker(This,pMoniker,pCtx,lpcwstrFilterName,ppFilter);
   7319 }
   7320 static inline HRESULT IFilterGraph2_ReconnectEx(IFilterGraph2* This,IPin *ppin,const AM_MEDIA_TYPE *pmt) {
   7321     return This->lpVtbl->ReconnectEx(This,ppin,pmt);
   7322 }
   7323 static inline HRESULT IFilterGraph2_RenderEx(IFilterGraph2* This,IPin *pPinOut,DWORD dwFlags,DWORD *pvContext) {
   7324     return This->lpVtbl->RenderEx(This,pPinOut,dwFlags,pvContext);
   7325 }
   7326 #endif
   7327 #endif
   7328 
   7329 #endif
   7330 
   7331 
   7332 #endif  /* __IFilterGraph2_INTERFACE_DEFINED__ */
   7333 
   7334 /*****************************************************************************
   7335  * IStreamBuilder interface
   7336  */
   7337 #ifndef __IStreamBuilder_INTERFACE_DEFINED__
   7338 #define __IStreamBuilder_INTERFACE_DEFINED__
   7339 
   7340 DEFINE_GUID(IID_IStreamBuilder, 0x56a868bf, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   7341 #if defined(__cplusplus) && !defined(CINTERFACE)
   7342 MIDL_INTERFACE("56a868bf-0ad4-11ce-b03a-0020af0ba770")
   7343 IStreamBuilder : public IUnknown
   7344 {
   7345     virtual HRESULT STDMETHODCALLTYPE Render(
   7346         IPin *ppinOut,
   7347         IGraphBuilder *pGraph) = 0;
   7348 
   7349     virtual HRESULT STDMETHODCALLTYPE Backout(
   7350         IPin *ppinOut,
   7351         IGraphBuilder *pGraph) = 0;
   7352 
   7353 };
   7354 #ifdef __CRT_UUID_DECL
   7355 __CRT_UUID_DECL(IStreamBuilder, 0x56a868bf, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   7356 #endif
   7357 #else
   7358 typedef struct IStreamBuilderVtbl {
   7359     BEGIN_INTERFACE
   7360 
   7361     /*** IUnknown methods ***/
   7362     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7363         IStreamBuilder *This,
   7364         REFIID riid,
   7365         void **ppvObject);
   7366 
   7367     ULONG (STDMETHODCALLTYPE *AddRef)(
   7368         IStreamBuilder *This);
   7369 
   7370     ULONG (STDMETHODCALLTYPE *Release)(
   7371         IStreamBuilder *This);
   7372 
   7373     /*** IStreamBuilder methods ***/
   7374     HRESULT (STDMETHODCALLTYPE *Render)(
   7375         IStreamBuilder *This,
   7376         IPin *ppinOut,
   7377         IGraphBuilder *pGraph);
   7378 
   7379     HRESULT (STDMETHODCALLTYPE *Backout)(
   7380         IStreamBuilder *This,
   7381         IPin *ppinOut,
   7382         IGraphBuilder *pGraph);
   7383 
   7384     END_INTERFACE
   7385 } IStreamBuilderVtbl;
   7386 
   7387 interface IStreamBuilder {
   7388     CONST_VTBL IStreamBuilderVtbl* lpVtbl;
   7389 };
   7390 
   7391 #ifdef COBJMACROS
   7392 #ifndef WIDL_C_INLINE_WRAPPERS
   7393 /*** IUnknown methods ***/
   7394 #define IStreamBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7395 #define IStreamBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
   7396 #define IStreamBuilder_Release(This) (This)->lpVtbl->Release(This)
   7397 /*** IStreamBuilder methods ***/
   7398 #define IStreamBuilder_Render(This,ppinOut,pGraph) (This)->lpVtbl->Render(This,ppinOut,pGraph)
   7399 #define IStreamBuilder_Backout(This,ppinOut,pGraph) (This)->lpVtbl->Backout(This,ppinOut,pGraph)
   7400 #else
   7401 /*** IUnknown methods ***/
   7402 static inline HRESULT IStreamBuilder_QueryInterface(IStreamBuilder* This,REFIID riid,void **ppvObject) {
   7403     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7404 }
   7405 static inline ULONG IStreamBuilder_AddRef(IStreamBuilder* This) {
   7406     return This->lpVtbl->AddRef(This);
   7407 }
   7408 static inline ULONG IStreamBuilder_Release(IStreamBuilder* This) {
   7409     return This->lpVtbl->Release(This);
   7410 }
   7411 /*** IStreamBuilder methods ***/
   7412 static inline HRESULT IStreamBuilder_Render(IStreamBuilder* This,IPin *ppinOut,IGraphBuilder *pGraph) {
   7413     return This->lpVtbl->Render(This,ppinOut,pGraph);
   7414 }
   7415 static inline HRESULT IStreamBuilder_Backout(IStreamBuilder* This,IPin *ppinOut,IGraphBuilder *pGraph) {
   7416     return This->lpVtbl->Backout(This,ppinOut,pGraph);
   7417 }
   7418 #endif
   7419 #endif
   7420 
   7421 #endif
   7422 
   7423 
   7424 #endif  /* __IStreamBuilder_INTERFACE_DEFINED__ */
   7425 
   7426 /*****************************************************************************
   7427  * IAMStreamConfig interface
   7428  */
   7429 #ifndef __IAMStreamConfig_INTERFACE_DEFINED__
   7430 #define __IAMStreamConfig_INTERFACE_DEFINED__
   7431 
   7432 typedef struct _VIDEO_STREAM_CONFIG_CAPS {
   7433     GUID guid;
   7434     ULONG VideoStandard;
   7435     SIZE InputSize;
   7436     SIZE MinCroppingSize;
   7437     SIZE MaxCroppingSize;
   7438     int CropGranularityX;
   7439     int CropGranularityY;
   7440     int CropAlignX;
   7441     int CropAlignY;
   7442     SIZE MinOutputSize;
   7443     SIZE MaxOutputSize;
   7444     int OutputGranularityX;
   7445     int OutputGranularityY;
   7446     int StretchTapsX;
   7447     int StretchTapsY;
   7448     int ShrinkTapsX;
   7449     int ShrinkTapsY;
   7450     LONGLONG MinFrameInterval;
   7451     LONGLONG MaxFrameInterval;
   7452     LONG MinBitsPerSecond;
   7453     LONG MaxBitsPerSecond;
   7454 } VIDEO_STREAM_CONFIG_CAPS;
   7455 typedef struct _AUDIO_STREAM_CONFIG_CAPS {
   7456     GUID guid;
   7457     ULONG MinimumChannels;
   7458     ULONG MaximumChannels;
   7459     ULONG ChannelsGranularity;
   7460     ULONG MinimumBitsPerSample;
   7461     ULONG MaximumBitsPerSample;
   7462     ULONG BitsPerSampleGranularity;
   7463     ULONG MinimumSampleFrequency;
   7464     ULONG MaximumSampleFrequency;
   7465     ULONG SampleFrequencyGranularity;
   7466 } AUDIO_STREAM_CONFIG_CAPS;
   7467 DEFINE_GUID(IID_IAMStreamConfig, 0xc6e13340, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
   7468 #if defined(__cplusplus) && !defined(CINTERFACE)
   7469 MIDL_INTERFACE("c6e13340-30ac-11d0-a18c-00a0c9118956")
   7470 IAMStreamConfig : public IUnknown
   7471 {
   7472     virtual HRESULT STDMETHODCALLTYPE SetFormat(
   7473         AM_MEDIA_TYPE *pmt) = 0;
   7474 
   7475     virtual HRESULT STDMETHODCALLTYPE GetFormat(
   7476         AM_MEDIA_TYPE **pmt) = 0;
   7477 
   7478     virtual HRESULT STDMETHODCALLTYPE GetNumberOfCapabilities(
   7479         int *piCount,
   7480         int *piSize) = 0;
   7481 
   7482     virtual HRESULT STDMETHODCALLTYPE GetStreamCaps(
   7483         int iIndex,
   7484         AM_MEDIA_TYPE **pmt,
   7485         BYTE *pSCC) = 0;
   7486 
   7487 };
   7488 #ifdef __CRT_UUID_DECL
   7489 __CRT_UUID_DECL(IAMStreamConfig, 0xc6e13340, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
   7490 #endif
   7491 #else
   7492 typedef struct IAMStreamConfigVtbl {
   7493     BEGIN_INTERFACE
   7494 
   7495     /*** IUnknown methods ***/
   7496     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7497         IAMStreamConfig *This,
   7498         REFIID riid,
   7499         void **ppvObject);
   7500 
   7501     ULONG (STDMETHODCALLTYPE *AddRef)(
   7502         IAMStreamConfig *This);
   7503 
   7504     ULONG (STDMETHODCALLTYPE *Release)(
   7505         IAMStreamConfig *This);
   7506 
   7507     /*** IAMStreamConfig methods ***/
   7508     HRESULT (STDMETHODCALLTYPE *SetFormat)(
   7509         IAMStreamConfig *This,
   7510         AM_MEDIA_TYPE *pmt);
   7511 
   7512     HRESULT (STDMETHODCALLTYPE *GetFormat)(
   7513         IAMStreamConfig *This,
   7514         AM_MEDIA_TYPE **pmt);
   7515 
   7516     HRESULT (STDMETHODCALLTYPE *GetNumberOfCapabilities)(
   7517         IAMStreamConfig *This,
   7518         int *piCount,
   7519         int *piSize);
   7520 
   7521     HRESULT (STDMETHODCALLTYPE *GetStreamCaps)(
   7522         IAMStreamConfig *This,
   7523         int iIndex,
   7524         AM_MEDIA_TYPE **pmt,
   7525         BYTE *pSCC);
   7526 
   7527     END_INTERFACE
   7528 } IAMStreamConfigVtbl;
   7529 
   7530 interface IAMStreamConfig {
   7531     CONST_VTBL IAMStreamConfigVtbl* lpVtbl;
   7532 };
   7533 
   7534 #ifdef COBJMACROS
   7535 #ifndef WIDL_C_INLINE_WRAPPERS
   7536 /*** IUnknown methods ***/
   7537 #define IAMStreamConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7538 #define IAMStreamConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
   7539 #define IAMStreamConfig_Release(This) (This)->lpVtbl->Release(This)
   7540 /*** IAMStreamConfig methods ***/
   7541 #define IAMStreamConfig_SetFormat(This,pmt) (This)->lpVtbl->SetFormat(This,pmt)
   7542 #define IAMStreamConfig_GetFormat(This,pmt) (This)->lpVtbl->GetFormat(This,pmt)
   7543 #define IAMStreamConfig_GetNumberOfCapabilities(This,piCount,piSize) (This)->lpVtbl->GetNumberOfCapabilities(This,piCount,piSize)
   7544 #define IAMStreamConfig_GetStreamCaps(This,iIndex,pmt,pSCC) (This)->lpVtbl->GetStreamCaps(This,iIndex,pmt,pSCC)
   7545 #else
   7546 /*** IUnknown methods ***/
   7547 static inline HRESULT IAMStreamConfig_QueryInterface(IAMStreamConfig* This,REFIID riid,void **ppvObject) {
   7548     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7549 }
   7550 static inline ULONG IAMStreamConfig_AddRef(IAMStreamConfig* This) {
   7551     return This->lpVtbl->AddRef(This);
   7552 }
   7553 static inline ULONG IAMStreamConfig_Release(IAMStreamConfig* This) {
   7554     return This->lpVtbl->Release(This);
   7555 }
   7556 /*** IAMStreamConfig methods ***/
   7557 static inline HRESULT IAMStreamConfig_SetFormat(IAMStreamConfig* This,AM_MEDIA_TYPE *pmt) {
   7558     return This->lpVtbl->SetFormat(This,pmt);
   7559 }
   7560 static inline HRESULT IAMStreamConfig_GetFormat(IAMStreamConfig* This,AM_MEDIA_TYPE **pmt) {
   7561     return This->lpVtbl->GetFormat(This,pmt);
   7562 }
   7563 static inline HRESULT IAMStreamConfig_GetNumberOfCapabilities(IAMStreamConfig* This,int *piCount,int *piSize) {
   7564     return This->lpVtbl->GetNumberOfCapabilities(This,piCount,piSize);
   7565 }
   7566 static inline HRESULT IAMStreamConfig_GetStreamCaps(IAMStreamConfig* This,int iIndex,AM_MEDIA_TYPE **pmt,BYTE *pSCC) {
   7567     return This->lpVtbl->GetStreamCaps(This,iIndex,pmt,pSCC);
   7568 }
   7569 #endif
   7570 #endif
   7571 
   7572 #endif
   7573 
   7574 
   7575 #endif  /* __IAMStreamConfig_INTERFACE_DEFINED__ */
   7576 
   7577 typedef enum tagVideoProcAmpProperty {
   7578     VideoProcAmp_Brightness = 0,
   7579     VideoProcAmp_Contrast = 1,
   7580     VideoProcAmp_Hue = 2,
   7581     VideoProcAmp_Saturation = 3,
   7582     VideoProcAmp_Sharpness = 4,
   7583     VideoProcAmp_Gamma = 5,
   7584     VideoProcAmp_ColorEnable = 6,
   7585     VideoProcAmp_WhiteBalance = 7,
   7586     VideoProcAmp_BacklightCompensation = 8,
   7587     VideoProcAmp_Gain = 9
   7588 } VideoProcAmpProperty;
   7589 typedef enum tagVideoProcAmpFlags {
   7590     VideoProcAmp_Flags_Auto = 0x1,
   7591     VideoProcAmp_Flags_Manual = 0x2
   7592 } VideoProcAmpFlags;
   7593 /*****************************************************************************
   7594  * IAMVideoProcAmp interface
   7595  */
   7596 #ifndef __IAMVideoProcAmp_INTERFACE_DEFINED__
   7597 #define __IAMVideoProcAmp_INTERFACE_DEFINED__
   7598 
   7599 DEFINE_GUID(IID_IAMVideoProcAmp, 0xc6e13360, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
   7600 #if defined(__cplusplus) && !defined(CINTERFACE)
   7601 MIDL_INTERFACE("c6e13360-30ac-11d0-a18c-00a0c9118956")
   7602 IAMVideoProcAmp : public IUnknown
   7603 {
   7604     virtual HRESULT STDMETHODCALLTYPE GetRange(
   7605         LONG Property,
   7606         LONG *pMin,
   7607         LONG *pMax,
   7608         LONG *pSteppingDelta,
   7609         LONG *pDefault,
   7610         LONG *pCapsFlags) = 0;
   7611 
   7612     virtual HRESULT STDMETHODCALLTYPE Set(
   7613         LONG Property,
   7614         LONG lValue,
   7615         LONG Flags) = 0;
   7616 
   7617     virtual HRESULT STDMETHODCALLTYPE Get(
   7618         LONG Property,
   7619         LONG *lValue,
   7620         LONG *Flags) = 0;
   7621 
   7622 };
   7623 #ifdef __CRT_UUID_DECL
   7624 __CRT_UUID_DECL(IAMVideoProcAmp, 0xc6e13360, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
   7625 #endif
   7626 #else
   7627 typedef struct IAMVideoProcAmpVtbl {
   7628     BEGIN_INTERFACE
   7629 
   7630     /*** IUnknown methods ***/
   7631     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7632         IAMVideoProcAmp *This,
   7633         REFIID riid,
   7634         void **ppvObject);
   7635 
   7636     ULONG (STDMETHODCALLTYPE *AddRef)(
   7637         IAMVideoProcAmp *This);
   7638 
   7639     ULONG (STDMETHODCALLTYPE *Release)(
   7640         IAMVideoProcAmp *This);
   7641 
   7642     /*** IAMVideoProcAmp methods ***/
   7643     HRESULT (STDMETHODCALLTYPE *GetRange)(
   7644         IAMVideoProcAmp *This,
   7645         LONG Property,
   7646         LONG *pMin,
   7647         LONG *pMax,
   7648         LONG *pSteppingDelta,
   7649         LONG *pDefault,
   7650         LONG *pCapsFlags);
   7651 
   7652     HRESULT (STDMETHODCALLTYPE *Set)(
   7653         IAMVideoProcAmp *This,
   7654         LONG Property,
   7655         LONG lValue,
   7656         LONG Flags);
   7657 
   7658     HRESULT (STDMETHODCALLTYPE *Get)(
   7659         IAMVideoProcAmp *This,
   7660         LONG Property,
   7661         LONG *lValue,
   7662         LONG *Flags);
   7663 
   7664     END_INTERFACE
   7665 } IAMVideoProcAmpVtbl;
   7666 
   7667 interface IAMVideoProcAmp {
   7668     CONST_VTBL IAMVideoProcAmpVtbl* lpVtbl;
   7669 };
   7670 
   7671 #ifdef COBJMACROS
   7672 #ifndef WIDL_C_INLINE_WRAPPERS
   7673 /*** IUnknown methods ***/
   7674 #define IAMVideoProcAmp_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7675 #define IAMVideoProcAmp_AddRef(This) (This)->lpVtbl->AddRef(This)
   7676 #define IAMVideoProcAmp_Release(This) (This)->lpVtbl->Release(This)
   7677 /*** IAMVideoProcAmp methods ***/
   7678 #define IAMVideoProcAmp_GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags) (This)->lpVtbl->GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags)
   7679 #define IAMVideoProcAmp_Set(This,Property,lValue,Flags) (This)->lpVtbl->Set(This,Property,lValue,Flags)
   7680 #define IAMVideoProcAmp_Get(This,Property,lValue,Flags) (This)->lpVtbl->Get(This,Property,lValue,Flags)
   7681 #else
   7682 /*** IUnknown methods ***/
   7683 static inline HRESULT IAMVideoProcAmp_QueryInterface(IAMVideoProcAmp* This,REFIID riid,void **ppvObject) {
   7684     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7685 }
   7686 static inline ULONG IAMVideoProcAmp_AddRef(IAMVideoProcAmp* This) {
   7687     return This->lpVtbl->AddRef(This);
   7688 }
   7689 static inline ULONG IAMVideoProcAmp_Release(IAMVideoProcAmp* This) {
   7690     return This->lpVtbl->Release(This);
   7691 }
   7692 /*** IAMVideoProcAmp methods ***/
   7693 static inline HRESULT IAMVideoProcAmp_GetRange(IAMVideoProcAmp* This,LONG Property,LONG *pMin,LONG *pMax,LONG *pSteppingDelta,LONG *pDefault,LONG *pCapsFlags) {
   7694     return This->lpVtbl->GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags);
   7695 }
   7696 static inline HRESULT IAMVideoProcAmp_Set(IAMVideoProcAmp* This,LONG Property,LONG lValue,LONG Flags) {
   7697     return This->lpVtbl->Set(This,Property,lValue,Flags);
   7698 }
   7699 static inline HRESULT IAMVideoProcAmp_Get(IAMVideoProcAmp* This,LONG Property,LONG *lValue,LONG *Flags) {
   7700     return This->lpVtbl->Get(This,Property,lValue,Flags);
   7701 }
   7702 #endif
   7703 #endif
   7704 
   7705 #endif
   7706 
   7707 
   7708 #endif  /* __IAMVideoProcAmp_INTERFACE_DEFINED__ */
   7709 
   7710 /*****************************************************************************
   7711  * IAsyncReader interface
   7712  */
   7713 #ifndef __IAsyncReader_INTERFACE_DEFINED__
   7714 #define __IAsyncReader_INTERFACE_DEFINED__
   7715 
   7716 DEFINE_GUID(IID_IAsyncReader, 0x56a868aa, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   7717 #if defined(__cplusplus) && !defined(CINTERFACE)
   7718 MIDL_INTERFACE("56a868aa-0ad4-11ce-b03a-0020af0ba770")
   7719 IAsyncReader : public IUnknown
   7720 {
   7721     virtual HRESULT STDMETHODCALLTYPE RequestAllocator(
   7722         IMemAllocator *pPreferred,
   7723         ALLOCATOR_PROPERTIES *pProps,
   7724         IMemAllocator **ppActual) = 0;
   7725 
   7726     virtual HRESULT STDMETHODCALLTYPE Request(
   7727         IMediaSample *pSample,
   7728         DWORD_PTR dwUser) = 0;
   7729 
   7730     virtual HRESULT STDMETHODCALLTYPE WaitForNext(
   7731         DWORD dwTimeout,
   7732         IMediaSample **ppSample,
   7733         DWORD_PTR *pdwUser) = 0;
   7734 
   7735     virtual HRESULT STDMETHODCALLTYPE SyncReadAligned(
   7736         IMediaSample *pSample) = 0;
   7737 
   7738     virtual HRESULT STDMETHODCALLTYPE SyncRead(
   7739         LONGLONG llPosition,
   7740         LONG lLength,
   7741         BYTE *pBuffer) = 0;
   7742 
   7743     virtual HRESULT STDMETHODCALLTYPE Length(
   7744         LONGLONG *pTotal,
   7745         LONGLONG *pAvailable) = 0;
   7746 
   7747     virtual HRESULT STDMETHODCALLTYPE BeginFlush(
   7748         ) = 0;
   7749 
   7750     virtual HRESULT STDMETHODCALLTYPE EndFlush(
   7751         ) = 0;
   7752 
   7753 };
   7754 #ifdef __CRT_UUID_DECL
   7755 __CRT_UUID_DECL(IAsyncReader, 0x56a868aa, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   7756 #endif
   7757 #else
   7758 typedef struct IAsyncReaderVtbl {
   7759     BEGIN_INTERFACE
   7760 
   7761     /*** IUnknown methods ***/
   7762     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7763         IAsyncReader *This,
   7764         REFIID riid,
   7765         void **ppvObject);
   7766 
   7767     ULONG (STDMETHODCALLTYPE *AddRef)(
   7768         IAsyncReader *This);
   7769 
   7770     ULONG (STDMETHODCALLTYPE *Release)(
   7771         IAsyncReader *This);
   7772 
   7773     /*** IAsyncReader methods ***/
   7774     HRESULT (STDMETHODCALLTYPE *RequestAllocator)(
   7775         IAsyncReader *This,
   7776         IMemAllocator *pPreferred,
   7777         ALLOCATOR_PROPERTIES *pProps,
   7778         IMemAllocator **ppActual);
   7779 
   7780     HRESULT (STDMETHODCALLTYPE *Request)(
   7781         IAsyncReader *This,
   7782         IMediaSample *pSample,
   7783         DWORD_PTR dwUser);
   7784 
   7785     HRESULT (STDMETHODCALLTYPE *WaitForNext)(
   7786         IAsyncReader *This,
   7787         DWORD dwTimeout,
   7788         IMediaSample **ppSample,
   7789         DWORD_PTR *pdwUser);
   7790 
   7791     HRESULT (STDMETHODCALLTYPE *SyncReadAligned)(
   7792         IAsyncReader *This,
   7793         IMediaSample *pSample);
   7794 
   7795     HRESULT (STDMETHODCALLTYPE *SyncRead)(
   7796         IAsyncReader *This,
   7797         LONGLONG llPosition,
   7798         LONG lLength,
   7799         BYTE *pBuffer);
   7800 
   7801     HRESULT (STDMETHODCALLTYPE *Length)(
   7802         IAsyncReader *This,
   7803         LONGLONG *pTotal,
   7804         LONGLONG *pAvailable);
   7805 
   7806     HRESULT (STDMETHODCALLTYPE *BeginFlush)(
   7807         IAsyncReader *This);
   7808 
   7809     HRESULT (STDMETHODCALLTYPE *EndFlush)(
   7810         IAsyncReader *This);
   7811 
   7812     END_INTERFACE
   7813 } IAsyncReaderVtbl;
   7814 
   7815 interface IAsyncReader {
   7816     CONST_VTBL IAsyncReaderVtbl* lpVtbl;
   7817 };
   7818 
   7819 #ifdef COBJMACROS
   7820 #ifndef WIDL_C_INLINE_WRAPPERS
   7821 /*** IUnknown methods ***/
   7822 #define IAsyncReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7823 #define IAsyncReader_AddRef(This) (This)->lpVtbl->AddRef(This)
   7824 #define IAsyncReader_Release(This) (This)->lpVtbl->Release(This)
   7825 /*** IAsyncReader methods ***/
   7826 #define IAsyncReader_RequestAllocator(This,pPreferred,pProps,ppActual) (This)->lpVtbl->RequestAllocator(This,pPreferred,pProps,ppActual)
   7827 #define IAsyncReader_Request(This,pSample,dwUser) (This)->lpVtbl->Request(This,pSample,dwUser)
   7828 #define IAsyncReader_WaitForNext(This,dwTimeout,ppSample,pdwUser) (This)->lpVtbl->WaitForNext(This,dwTimeout,ppSample,pdwUser)
   7829 #define IAsyncReader_SyncReadAligned(This,pSample) (This)->lpVtbl->SyncReadAligned(This,pSample)
   7830 #define IAsyncReader_SyncRead(This,llPosition,lLength,pBuffer) (This)->lpVtbl->SyncRead(This,llPosition,lLength,pBuffer)
   7831 #define IAsyncReader_Length(This,pTotal,pAvailable) (This)->lpVtbl->Length(This,pTotal,pAvailable)
   7832 #define IAsyncReader_BeginFlush(This) (This)->lpVtbl->BeginFlush(This)
   7833 #define IAsyncReader_EndFlush(This) (This)->lpVtbl->EndFlush(This)
   7834 #else
   7835 /*** IUnknown methods ***/
   7836 static inline HRESULT IAsyncReader_QueryInterface(IAsyncReader* This,REFIID riid,void **ppvObject) {
   7837     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7838 }
   7839 static inline ULONG IAsyncReader_AddRef(IAsyncReader* This) {
   7840     return This->lpVtbl->AddRef(This);
   7841 }
   7842 static inline ULONG IAsyncReader_Release(IAsyncReader* This) {
   7843     return This->lpVtbl->Release(This);
   7844 }
   7845 /*** IAsyncReader methods ***/
   7846 static inline HRESULT IAsyncReader_RequestAllocator(IAsyncReader* This,IMemAllocator *pPreferred,ALLOCATOR_PROPERTIES *pProps,IMemAllocator **ppActual) {
   7847     return This->lpVtbl->RequestAllocator(This,pPreferred,pProps,ppActual);
   7848 }
   7849 static inline HRESULT IAsyncReader_Request(IAsyncReader* This,IMediaSample *pSample,DWORD_PTR dwUser) {
   7850     return This->lpVtbl->Request(This,pSample,dwUser);
   7851 }
   7852 static inline HRESULT IAsyncReader_WaitForNext(IAsyncReader* This,DWORD dwTimeout,IMediaSample **ppSample,DWORD_PTR *pdwUser) {
   7853     return This->lpVtbl->WaitForNext(This,dwTimeout,ppSample,pdwUser);
   7854 }
   7855 static inline HRESULT IAsyncReader_SyncReadAligned(IAsyncReader* This,IMediaSample *pSample) {
   7856     return This->lpVtbl->SyncReadAligned(This,pSample);
   7857 }
   7858 static inline HRESULT IAsyncReader_SyncRead(IAsyncReader* This,LONGLONG llPosition,LONG lLength,BYTE *pBuffer) {
   7859     return This->lpVtbl->SyncRead(This,llPosition,lLength,pBuffer);
   7860 }
   7861 static inline HRESULT IAsyncReader_Length(IAsyncReader* This,LONGLONG *pTotal,LONGLONG *pAvailable) {
   7862     return This->lpVtbl->Length(This,pTotal,pAvailable);
   7863 }
   7864 static inline HRESULT IAsyncReader_BeginFlush(IAsyncReader* This) {
   7865     return This->lpVtbl->BeginFlush(This);
   7866 }
   7867 static inline HRESULT IAsyncReader_EndFlush(IAsyncReader* This) {
   7868     return This->lpVtbl->EndFlush(This);
   7869 }
   7870 #endif
   7871 #endif
   7872 
   7873 #endif
   7874 
   7875 
   7876 #endif  /* __IAsyncReader_INTERFACE_DEFINED__ */
   7877 
   7878 /*****************************************************************************
   7879  * IGraphVersion interface
   7880  */
   7881 #ifndef __IGraphVersion_INTERFACE_DEFINED__
   7882 #define __IGraphVersion_INTERFACE_DEFINED__
   7883 
   7884 DEFINE_GUID(IID_IGraphVersion, 0x56a868ab, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   7885 #if defined(__cplusplus) && !defined(CINTERFACE)
   7886 MIDL_INTERFACE("56a868ab-0ad4-11ce-b03a-0020af0ba770")
   7887 IGraphVersion : public IUnknown
   7888 {
   7889     virtual HRESULT STDMETHODCALLTYPE QueryVersion(
   7890         LONG *pVersion) = 0;
   7891 
   7892 };
   7893 #ifdef __CRT_UUID_DECL
   7894 __CRT_UUID_DECL(IGraphVersion, 0x56a868ab, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   7895 #endif
   7896 #else
   7897 typedef struct IGraphVersionVtbl {
   7898     BEGIN_INTERFACE
   7899 
   7900     /*** IUnknown methods ***/
   7901     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7902         IGraphVersion *This,
   7903         REFIID riid,
   7904         void **ppvObject);
   7905 
   7906     ULONG (STDMETHODCALLTYPE *AddRef)(
   7907         IGraphVersion *This);
   7908 
   7909     ULONG (STDMETHODCALLTYPE *Release)(
   7910         IGraphVersion *This);
   7911 
   7912     /*** IGraphVersion methods ***/
   7913     HRESULT (STDMETHODCALLTYPE *QueryVersion)(
   7914         IGraphVersion *This,
   7915         LONG *pVersion);
   7916 
   7917     END_INTERFACE
   7918 } IGraphVersionVtbl;
   7919 
   7920 interface IGraphVersion {
   7921     CONST_VTBL IGraphVersionVtbl* lpVtbl;
   7922 };
   7923 
   7924 #ifdef COBJMACROS
   7925 #ifndef WIDL_C_INLINE_WRAPPERS
   7926 /*** IUnknown methods ***/
   7927 #define IGraphVersion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7928 #define IGraphVersion_AddRef(This) (This)->lpVtbl->AddRef(This)
   7929 #define IGraphVersion_Release(This) (This)->lpVtbl->Release(This)
   7930 /*** IGraphVersion methods ***/
   7931 #define IGraphVersion_QueryVersion(This,pVersion) (This)->lpVtbl->QueryVersion(This,pVersion)
   7932 #else
   7933 /*** IUnknown methods ***/
   7934 static inline HRESULT IGraphVersion_QueryInterface(IGraphVersion* This,REFIID riid,void **ppvObject) {
   7935     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7936 }
   7937 static inline ULONG IGraphVersion_AddRef(IGraphVersion* This) {
   7938     return This->lpVtbl->AddRef(This);
   7939 }
   7940 static inline ULONG IGraphVersion_Release(IGraphVersion* This) {
   7941     return This->lpVtbl->Release(This);
   7942 }
   7943 /*** IGraphVersion methods ***/
   7944 static inline HRESULT IGraphVersion_QueryVersion(IGraphVersion* This,LONG *pVersion) {
   7945     return This->lpVtbl->QueryVersion(This,pVersion);
   7946 }
   7947 #endif
   7948 #endif
   7949 
   7950 #endif
   7951 
   7952 
   7953 #endif  /* __IGraphVersion_INTERFACE_DEFINED__ */
   7954 
   7955 /*****************************************************************************
   7956  * IResourceConsumer interface
   7957  */
   7958 #ifndef __IResourceConsumer_INTERFACE_DEFINED__
   7959 #define __IResourceConsumer_INTERFACE_DEFINED__
   7960 
   7961 DEFINE_GUID(IID_IResourceConsumer, 0x56a868ad, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   7962 #if defined(__cplusplus) && !defined(CINTERFACE)
   7963 MIDL_INTERFACE("56a868ad-0ad4-11ce-b03a-0020af0ba770")
   7964 IResourceConsumer : public IUnknown
   7965 {
   7966     virtual HRESULT STDMETHODCALLTYPE AcquireResource(
   7967         LONG idResource) = 0;
   7968 
   7969     virtual HRESULT STDMETHODCALLTYPE ReleaseResource(
   7970         LONG idResource) = 0;
   7971 
   7972 };
   7973 #ifdef __CRT_UUID_DECL
   7974 __CRT_UUID_DECL(IResourceConsumer, 0x56a868ad, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   7975 #endif
   7976 #else
   7977 typedef struct IResourceConsumerVtbl {
   7978     BEGIN_INTERFACE
   7979 
   7980     /*** IUnknown methods ***/
   7981     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7982         IResourceConsumer *This,
   7983         REFIID riid,
   7984         void **ppvObject);
   7985 
   7986     ULONG (STDMETHODCALLTYPE *AddRef)(
   7987         IResourceConsumer *This);
   7988 
   7989     ULONG (STDMETHODCALLTYPE *Release)(
   7990         IResourceConsumer *This);
   7991 
   7992     /*** IResourceConsumer methods ***/
   7993     HRESULT (STDMETHODCALLTYPE *AcquireResource)(
   7994         IResourceConsumer *This,
   7995         LONG idResource);
   7996 
   7997     HRESULT (STDMETHODCALLTYPE *ReleaseResource)(
   7998         IResourceConsumer *This,
   7999         LONG idResource);
   8000 
   8001     END_INTERFACE
   8002 } IResourceConsumerVtbl;
   8003 
   8004 interface IResourceConsumer {
   8005     CONST_VTBL IResourceConsumerVtbl* lpVtbl;
   8006 };
   8007 
   8008 #ifdef COBJMACROS
   8009 #ifndef WIDL_C_INLINE_WRAPPERS
   8010 /*** IUnknown methods ***/
   8011 #define IResourceConsumer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8012 #define IResourceConsumer_AddRef(This) (This)->lpVtbl->AddRef(This)
   8013 #define IResourceConsumer_Release(This) (This)->lpVtbl->Release(This)
   8014 /*** IResourceConsumer methods ***/
   8015 #define IResourceConsumer_AcquireResource(This,idResource) (This)->lpVtbl->AcquireResource(This,idResource)
   8016 #define IResourceConsumer_ReleaseResource(This,idResource) (This)->lpVtbl->ReleaseResource(This,idResource)
   8017 #else
   8018 /*** IUnknown methods ***/
   8019 static inline HRESULT IResourceConsumer_QueryInterface(IResourceConsumer* This,REFIID riid,void **ppvObject) {
   8020     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8021 }
   8022 static inline ULONG IResourceConsumer_AddRef(IResourceConsumer* This) {
   8023     return This->lpVtbl->AddRef(This);
   8024 }
   8025 static inline ULONG IResourceConsumer_Release(IResourceConsumer* This) {
   8026     return This->lpVtbl->Release(This);
   8027 }
   8028 /*** IResourceConsumer methods ***/
   8029 static inline HRESULT IResourceConsumer_AcquireResource(IResourceConsumer* This,LONG idResource) {
   8030     return This->lpVtbl->AcquireResource(This,idResource);
   8031 }
   8032 static inline HRESULT IResourceConsumer_ReleaseResource(IResourceConsumer* This,LONG idResource) {
   8033     return This->lpVtbl->ReleaseResource(This,idResource);
   8034 }
   8035 #endif
   8036 #endif
   8037 
   8038 #endif
   8039 
   8040 
   8041 #endif  /* __IResourceConsumer_INTERFACE_DEFINED__ */
   8042 
   8043 /*****************************************************************************
   8044  * IResourceManager interface
   8045  */
   8046 #ifndef __IResourceManager_INTERFACE_DEFINED__
   8047 #define __IResourceManager_INTERFACE_DEFINED__
   8048 
   8049 DEFINE_GUID(IID_IResourceManager, 0x56a868ac, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
   8050 #if defined(__cplusplus) && !defined(CINTERFACE)
   8051 MIDL_INTERFACE("56a868ac-0ad4-11ce-b03a-0020af0ba770")
   8052 IResourceManager : public IUnknown
   8053 {
   8054     virtual HRESULT STDMETHODCALLTYPE Register(
   8055         LPCWSTR pName,
   8056         LONG cResource,
   8057         LONG *plToken) = 0;
   8058 
   8059     virtual HRESULT STDMETHODCALLTYPE RegisterGroup(
   8060         LPCWSTR pName,
   8061         LONG cResource,
   8062         LONG *palTokens,
   8063         LONG *plToken) = 0;
   8064 
   8065     virtual HRESULT STDMETHODCALLTYPE RequestResource(
   8066         LONG idResource,
   8067         IUnknown *pFocusObject,
   8068         IResourceConsumer *pConsumer) = 0;
   8069 
   8070     virtual HRESULT STDMETHODCALLTYPE NotifyAcquire(
   8071         LONG idResource,
   8072         IResourceConsumer *pConsumer,
   8073         HRESULT hr) = 0;
   8074 
   8075     virtual HRESULT STDMETHODCALLTYPE NotifyRelease(
   8076         LONG idResource,
   8077         IResourceConsumer *pConsumer,
   8078         WINBOOL bStillWant) = 0;
   8079 
   8080     virtual HRESULT STDMETHODCALLTYPE CancelRequest(
   8081         LONG idResource,
   8082         IResourceConsumer *pConsumer) = 0;
   8083 
   8084     virtual HRESULT STDMETHODCALLTYPE SetFocus(
   8085         IUnknown *pFocusObject) = 0;
   8086 
   8087     virtual HRESULT STDMETHODCALLTYPE ReleaseFocus(
   8088         IUnknown *pFocusObject) = 0;
   8089 
   8090 };
   8091 #ifdef __CRT_UUID_DECL
   8092 __CRT_UUID_DECL(IResourceManager, 0x56a868ac, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
   8093 #endif
   8094 #else
   8095 typedef struct IResourceManagerVtbl {
   8096     BEGIN_INTERFACE
   8097 
   8098     /*** IUnknown methods ***/
   8099     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8100         IResourceManager *This,
   8101         REFIID riid,
   8102         void **ppvObject);
   8103 
   8104     ULONG (STDMETHODCALLTYPE *AddRef)(
   8105         IResourceManager *This);
   8106 
   8107     ULONG (STDMETHODCALLTYPE *Release)(
   8108         IResourceManager *This);
   8109 
   8110     /*** IResourceManager methods ***/
   8111     HRESULT (STDMETHODCALLTYPE *Register)(
   8112         IResourceManager *This,
   8113         LPCWSTR pName,
   8114         LONG cResource,
   8115         LONG *plToken);
   8116 
   8117     HRESULT (STDMETHODCALLTYPE *RegisterGroup)(
   8118         IResourceManager *This,
   8119         LPCWSTR pName,
   8120         LONG cResource,
   8121         LONG *palTokens,
   8122         LONG *plToken);
   8123 
   8124     HRESULT (STDMETHODCALLTYPE *RequestResource)(
   8125         IResourceManager *This,
   8126         LONG idResource,
   8127         IUnknown *pFocusObject,
   8128         IResourceConsumer *pConsumer);
   8129 
   8130     HRESULT (STDMETHODCALLTYPE *NotifyAcquire)(
   8131         IResourceManager *This,
   8132         LONG idResource,
   8133         IResourceConsumer *pConsumer,
   8134         HRESULT hr);
   8135 
   8136     HRESULT (STDMETHODCALLTYPE *NotifyRelease)(
   8137         IResourceManager *This,
   8138         LONG idResource,
   8139         IResourceConsumer *pConsumer,
   8140         WINBOOL bStillWant);
   8141 
   8142     HRESULT (STDMETHODCALLTYPE *CancelRequest)(
   8143         IResourceManager *This,
   8144         LONG idResource,
   8145         IResourceConsumer *pConsumer);
   8146 
   8147     HRESULT (STDMETHODCALLTYPE *SetFocus)(
   8148         IResourceManager *This,
   8149         IUnknown *pFocusObject);
   8150 
   8151     HRESULT (STDMETHODCALLTYPE *ReleaseFocus)(
   8152         IResourceManager *This,
   8153         IUnknown *pFocusObject);
   8154 
   8155     END_INTERFACE
   8156 } IResourceManagerVtbl;
   8157 
   8158 interface IResourceManager {
   8159     CONST_VTBL IResourceManagerVtbl* lpVtbl;
   8160 };
   8161 
   8162 #ifdef COBJMACROS
   8163 #ifndef WIDL_C_INLINE_WRAPPERS
   8164 /*** IUnknown methods ***/
   8165 #define IResourceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8166 #define IResourceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
   8167 #define IResourceManager_Release(This) (This)->lpVtbl->Release(This)
   8168 /*** IResourceManager methods ***/
   8169 #define IResourceManager_Register(This,pName,cResource,plToken) (This)->lpVtbl->Register(This,pName,cResource,plToken)
   8170 #define IResourceManager_RegisterGroup(This,pName,cResource,palTokens,plToken) (This)->lpVtbl->RegisterGroup(This,pName,cResource,palTokens,plToken)
   8171 #define IResourceManager_RequestResource(This,idResource,pFocusObject,pConsumer) (This)->lpVtbl->RequestResource(This,idResource,pFocusObject,pConsumer)
   8172 #define IResourceManager_NotifyAcquire(This,idResource,pConsumer,hr) (This)->lpVtbl->NotifyAcquire(This,idResource,pConsumer,hr)
   8173 #define IResourceManager_NotifyRelease(This,idResource,pConsumer,bStillWant) (This)->lpVtbl->NotifyRelease(This,idResource,pConsumer,bStillWant)
   8174 #define IResourceManager_CancelRequest(This,idResource,pConsumer) (This)->lpVtbl->CancelRequest(This,idResource,pConsumer)
   8175 #define IResourceManager_SetFocus(This,pFocusObject) (This)->lpVtbl->SetFocus(This,pFocusObject)
   8176 #define IResourceManager_ReleaseFocus(This,pFocusObject) (This)->lpVtbl->ReleaseFocus(This,pFocusObject)
   8177 #else
   8178 /*** IUnknown methods ***/
   8179 static inline HRESULT IResourceManager_QueryInterface(IResourceManager* This,REFIID riid,void **ppvObject) {
   8180     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8181 }
   8182 static inline ULONG IResourceManager_AddRef(IResourceManager* This) {
   8183     return This->lpVtbl->AddRef(This);
   8184 }
   8185 static inline ULONG IResourceManager_Release(IResourceManager* This) {
   8186     return This->lpVtbl->Release(This);
   8187 }
   8188 /*** IResourceManager methods ***/
   8189 static inline HRESULT IResourceManager_Register(IResourceManager* This,LPCWSTR pName,LONG cResource,LONG *plToken) {
   8190     return This->lpVtbl->Register(This,pName,cResource,plToken);
   8191 }
   8192 static inline HRESULT IResourceManager_RegisterGroup(IResourceManager* This,LPCWSTR pName,LONG cResource,LONG *palTokens,LONG *plToken) {
   8193     return This->lpVtbl->RegisterGroup(This,pName,cResource,palTokens,plToken);
   8194 }
   8195 static inline HRESULT IResourceManager_RequestResource(IResourceManager* This,LONG idResource,IUnknown *pFocusObject,IResourceConsumer *pConsumer) {
   8196     return This->lpVtbl->RequestResource(This,idResource,pFocusObject,pConsumer);
   8197 }
   8198 static inline HRESULT IResourceManager_NotifyAcquire(IResourceManager* This,LONG idResource,IResourceConsumer *pConsumer,HRESULT hr) {
   8199     return This->lpVtbl->NotifyAcquire(This,idResource,pConsumer,hr);
   8200 }
   8201 static inline HRESULT IResourceManager_NotifyRelease(IResourceManager* This,LONG idResource,IResourceConsumer *pConsumer,WINBOOL bStillWant) {
   8202     return This->lpVtbl->NotifyRelease(This,idResource,pConsumer,bStillWant);
   8203 }
   8204 static inline HRESULT IResourceManager_CancelRequest(IResourceManager* This,LONG idResource,IResourceConsumer *pConsumer) {
   8205     return This->lpVtbl->CancelRequest(This,idResource,pConsumer);
   8206 }
   8207 static inline HRESULT IResourceManager_SetFocus(IResourceManager* This,IUnknown *pFocusObject) {
   8208     return This->lpVtbl->SetFocus(This,pFocusObject);
   8209 }
   8210 static inline HRESULT IResourceManager_ReleaseFocus(IResourceManager* This,IUnknown *pFocusObject) {
   8211     return This->lpVtbl->ReleaseFocus(This,pFocusObject);
   8212 }
   8213 #endif
   8214 #endif
   8215 
   8216 #endif
   8217 
   8218 
   8219 #endif  /* __IResourceManager_INTERFACE_DEFINED__ */
   8220 
   8221 typedef enum AM_STREAM_INFO_FLAGS {
   8222     AM_STREAM_INFO_START_DEFINED = 0x1,
   8223     AM_STREAM_INFO_STOP_DEFINED = 0x2,
   8224     AM_STREAM_INFO_DISCARDING = 0x4,
   8225     AM_STREAM_INFO_STOP_SEND_EXTRA = 0x10
   8226 } AM_STREAM_INFO_FLAGS;
   8227 typedef struct AM_STREAM_INFO {
   8228     REFERENCE_TIME tStart;
   8229     REFERENCE_TIME tStop;
   8230     DWORD dwStartCookie;
   8231     DWORD dwStopCookie;
   8232     DWORD dwFlags;
   8233 } AM_STREAM_INFO;
   8234 /*****************************************************************************
   8235  * IAMStreamControl interface
   8236  */
   8237 #ifndef __IAMStreamControl_INTERFACE_DEFINED__
   8238 #define __IAMStreamControl_INTERFACE_DEFINED__
   8239 
   8240 DEFINE_GUID(IID_IAMStreamControl, 0x36b73881, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
   8241 #if defined(__cplusplus) && !defined(CINTERFACE)
   8242 MIDL_INTERFACE("36b73881-c2c8-11cf-8b46-00805f6cef60")
   8243 IAMStreamControl : public IUnknown
   8244 {
   8245     virtual HRESULT STDMETHODCALLTYPE StartAt(
   8246         const REFERENCE_TIME *ptStart,
   8247         DWORD dwCookie) = 0;
   8248 
   8249     virtual HRESULT STDMETHODCALLTYPE StopAt(
   8250         const REFERENCE_TIME *ptStop,
   8251         WINBOOL bSendExtra,
   8252         DWORD dwCookie) = 0;
   8253 
   8254     virtual HRESULT STDMETHODCALLTYPE GetInfo(
   8255         AM_STREAM_INFO *pInfo) = 0;
   8256 
   8257 };
   8258 #ifdef __CRT_UUID_DECL
   8259 __CRT_UUID_DECL(IAMStreamControl, 0x36b73881, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
   8260 #endif
   8261 #else
   8262 typedef struct IAMStreamControlVtbl {
   8263     BEGIN_INTERFACE
   8264 
   8265     /*** IUnknown methods ***/
   8266     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8267         IAMStreamControl *This,
   8268         REFIID riid,
   8269         void **ppvObject);
   8270 
   8271     ULONG (STDMETHODCALLTYPE *AddRef)(
   8272         IAMStreamControl *This);
   8273 
   8274     ULONG (STDMETHODCALLTYPE *Release)(
   8275         IAMStreamControl *This);
   8276 
   8277     /*** IAMStreamControl methods ***/
   8278     HRESULT (STDMETHODCALLTYPE *StartAt)(
   8279         IAMStreamControl *This,
   8280         const REFERENCE_TIME *ptStart,
   8281         DWORD dwCookie);
   8282 
   8283     HRESULT (STDMETHODCALLTYPE *StopAt)(
   8284         IAMStreamControl *This,
   8285         const REFERENCE_TIME *ptStop,
   8286         WINBOOL bSendExtra,
   8287         DWORD dwCookie);
   8288 
   8289     HRESULT (STDMETHODCALLTYPE *GetInfo)(
   8290         IAMStreamControl *This,
   8291         AM_STREAM_INFO *pInfo);
   8292 
   8293     END_INTERFACE
   8294 } IAMStreamControlVtbl;
   8295 
   8296 interface IAMStreamControl {
   8297     CONST_VTBL IAMStreamControlVtbl* lpVtbl;
   8298 };
   8299 
   8300 #ifdef COBJMACROS
   8301 #ifndef WIDL_C_INLINE_WRAPPERS
   8302 /*** IUnknown methods ***/
   8303 #define IAMStreamControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8304 #define IAMStreamControl_AddRef(This) (This)->lpVtbl->AddRef(This)
   8305 #define IAMStreamControl_Release(This) (This)->lpVtbl->Release(This)
   8306 /*** IAMStreamControl methods ***/
   8307 #define IAMStreamControl_StartAt(This,ptStart,dwCookie) (This)->lpVtbl->StartAt(This,ptStart,dwCookie)
   8308 #define IAMStreamControl_StopAt(This,ptStop,bSendExtra,dwCookie) (This)->lpVtbl->StopAt(This,ptStop,bSendExtra,dwCookie)
   8309 #define IAMStreamControl_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
   8310 #else
   8311 /*** IUnknown methods ***/
   8312 static inline HRESULT IAMStreamControl_QueryInterface(IAMStreamControl* This,REFIID riid,void **ppvObject) {
   8313     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8314 }
   8315 static inline ULONG IAMStreamControl_AddRef(IAMStreamControl* This) {
   8316     return This->lpVtbl->AddRef(This);
   8317 }
   8318 static inline ULONG IAMStreamControl_Release(IAMStreamControl* This) {
   8319     return This->lpVtbl->Release(This);
   8320 }
   8321 /*** IAMStreamControl methods ***/
   8322 static inline HRESULT IAMStreamControl_StartAt(IAMStreamControl* This,const REFERENCE_TIME *ptStart,DWORD dwCookie) {
   8323     return This->lpVtbl->StartAt(This,ptStart,dwCookie);
   8324 }
   8325 static inline HRESULT IAMStreamControl_StopAt(IAMStreamControl* This,const REFERENCE_TIME *ptStop,WINBOOL bSendExtra,DWORD dwCookie) {
   8326     return This->lpVtbl->StopAt(This,ptStop,bSendExtra,dwCookie);
   8327 }
   8328 static inline HRESULT IAMStreamControl_GetInfo(IAMStreamControl* This,AM_STREAM_INFO *pInfo) {
   8329     return This->lpVtbl->GetInfo(This,pInfo);
   8330 }
   8331 #endif
   8332 #endif
   8333 
   8334 #endif
   8335 
   8336 
   8337 #endif  /* __IAMStreamControl_INTERFACE_DEFINED__ */
   8338 
   8339 #ifndef _IKsPropertySet_
   8340 #define _IKsPropertySet_
   8341 #define KSPROPERTY_SUPPORT_GET  1
   8342 #define KSPROPERTY_SUPPORT_SET  2
   8343 typedef enum AMPROPERTY_PIN {
   8344     AMPROPERTY_PIN_CATEGORY = 0,
   8345     AMPROPERTY_PIN_MEDIUM = 1
   8346 } AMPROPERTY_PIN;
   8347 /*****************************************************************************
   8348  * IKsPropertySet interface
   8349  */
   8350 #ifndef __IKsPropertySet_INTERFACE_DEFINED__
   8351 #define __IKsPropertySet_INTERFACE_DEFINED__
   8352 
   8353 DEFINE_GUID(IID_IKsPropertySet, 0x31efac30, 0x515c, 0x11d0, 0xa9,0xaa, 0x00,0xaa,0x00,0x61,0xbe,0x93);
   8354 #if defined(__cplusplus) && !defined(CINTERFACE)
   8355 MIDL_INTERFACE("31efac30-515c-11d0-a9aa-00aa0061be93")
   8356 IKsPropertySet : public IUnknown
   8357 {
   8358     virtual HRESULT STDMETHODCALLTYPE Set(
   8359         REFGUID guidPropSet,
   8360         DWORD dwPropID,
   8361         LPVOID pInstanceData,
   8362         DWORD cbInstanceData,
   8363         LPVOID pPropData,
   8364         DWORD cbPropData) = 0;
   8365 
   8366     virtual HRESULT STDMETHODCALLTYPE Get(
   8367         REFGUID guidPropSet,
   8368         DWORD dwPropID,
   8369         LPVOID pInstanceData,
   8370         DWORD cbInstanceData,
   8371         LPVOID pPropData,
   8372         DWORD cbPropData,
   8373         DWORD *pcbReturned) = 0;
   8374 
   8375     virtual HRESULT STDMETHODCALLTYPE QuerySupported(
   8376         REFGUID guidPropSet,
   8377         DWORD dwPropID,
   8378         DWORD *pTypeSupport) = 0;
   8379 
   8380 };
   8381 #ifdef __CRT_UUID_DECL
   8382 __CRT_UUID_DECL(IKsPropertySet, 0x31efac30, 0x515c, 0x11d0, 0xa9,0xaa, 0x00,0xaa,0x00,0x61,0xbe,0x93)
   8383 #endif
   8384 #else
   8385 typedef struct IKsPropertySetVtbl {
   8386     BEGIN_INTERFACE
   8387 
   8388     /*** IUnknown methods ***/
   8389     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8390         IKsPropertySet *This,
   8391         REFIID riid,
   8392         void **ppvObject);
   8393 
   8394     ULONG (STDMETHODCALLTYPE *AddRef)(
   8395         IKsPropertySet *This);
   8396 
   8397     ULONG (STDMETHODCALLTYPE *Release)(
   8398         IKsPropertySet *This);
   8399 
   8400     /*** IKsPropertySet methods ***/
   8401     HRESULT (STDMETHODCALLTYPE *Set)(
   8402         IKsPropertySet *This,
   8403         REFGUID guidPropSet,
   8404         DWORD dwPropID,
   8405         LPVOID pInstanceData,
   8406         DWORD cbInstanceData,
   8407         LPVOID pPropData,
   8408         DWORD cbPropData);
   8409 
   8410     HRESULT (STDMETHODCALLTYPE *Get)(
   8411         IKsPropertySet *This,
   8412         REFGUID guidPropSet,
   8413         DWORD dwPropID,
   8414         LPVOID pInstanceData,
   8415         DWORD cbInstanceData,
   8416         LPVOID pPropData,
   8417         DWORD cbPropData,
   8418         DWORD *pcbReturned);
   8419 
   8420     HRESULT (STDMETHODCALLTYPE *QuerySupported)(
   8421         IKsPropertySet *This,
   8422         REFGUID guidPropSet,
   8423         DWORD dwPropID,
   8424         DWORD *pTypeSupport);
   8425 
   8426     END_INTERFACE
   8427 } IKsPropertySetVtbl;
   8428 
   8429 interface IKsPropertySet {
   8430     CONST_VTBL IKsPropertySetVtbl* lpVtbl;
   8431 };
   8432 
   8433 #ifdef COBJMACROS
   8434 #ifndef WIDL_C_INLINE_WRAPPERS
   8435 /*** IUnknown methods ***/
   8436 #define IKsPropertySet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8437 #define IKsPropertySet_AddRef(This) (This)->lpVtbl->AddRef(This)
   8438 #define IKsPropertySet_Release(This) (This)->lpVtbl->Release(This)
   8439 /*** IKsPropertySet methods ***/
   8440 #define IKsPropertySet_Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData) (This)->lpVtbl->Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData)
   8441 #define IKsPropertySet_Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned) (This)->lpVtbl->Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned)
   8442 #define IKsPropertySet_QuerySupported(This,guidPropSet,dwPropID,pTypeSupport) (This)->lpVtbl->QuerySupported(This,guidPropSet,dwPropID,pTypeSupport)
   8443 #else
   8444 /*** IUnknown methods ***/
   8445 static inline HRESULT IKsPropertySet_QueryInterface(IKsPropertySet* This,REFIID riid,void **ppvObject) {
   8446     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8447 }
   8448 static inline ULONG IKsPropertySet_AddRef(IKsPropertySet* This) {
   8449     return This->lpVtbl->AddRef(This);
   8450 }
   8451 static inline ULONG IKsPropertySet_Release(IKsPropertySet* This) {
   8452     return This->lpVtbl->Release(This);
   8453 }
   8454 /*** IKsPropertySet methods ***/
   8455 static inline HRESULT IKsPropertySet_Set(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData) {
   8456     return This->lpVtbl->Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData);
   8457 }
   8458 static inline HRESULT IKsPropertySet_Get(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData,DWORD *pcbReturned) {
   8459     return This->lpVtbl->Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned);
   8460 }
   8461 static inline HRESULT IKsPropertySet_QuerySupported(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,DWORD *pTypeSupport) {
   8462     return This->lpVtbl->QuerySupported(This,guidPropSet,dwPropID,pTypeSupport);
   8463 }
   8464 #endif
   8465 #endif
   8466 
   8467 #endif
   8468 
   8469 
   8470 #endif  /* __IKsPropertySet_INTERFACE_DEFINED__ */
   8471 
   8472 #endif /* _IKsPropertySet_ */
   8473 /*****************************************************************************
   8474  * IMediaPropertyBag interface
   8475  */
   8476 #ifndef __IMediaPropertyBag_INTERFACE_DEFINED__
   8477 #define __IMediaPropertyBag_INTERFACE_DEFINED__
   8478 
   8479 typedef IMediaPropertyBag *LPMEDIAPROPERTYBAG;
   8480 DEFINE_GUID(IID_IMediaPropertyBag, 0x6025a880, 0xc0d5, 0x11d0, 0xbd,0x4e, 0x00,0xa0,0xc9,0x11,0xce,0x86);
   8481 #if defined(__cplusplus) && !defined(CINTERFACE)
   8482 MIDL_INTERFACE("6025a880-c0d5-11d0-bd4e-00a0c911ce86")
   8483 IMediaPropertyBag : public IPropertyBag
   8484 {
   8485     virtual HRESULT STDMETHODCALLTYPE EnumProperty(
   8486         ULONG iProperty,
   8487         VARIANT *pvarPropertyName,
   8488         VARIANT *pvarPropertyValue) = 0;
   8489 
   8490 };
   8491 #ifdef __CRT_UUID_DECL
   8492 __CRT_UUID_DECL(IMediaPropertyBag, 0x6025a880, 0xc0d5, 0x11d0, 0xbd,0x4e, 0x00,0xa0,0xc9,0x11,0xce,0x86)
   8493 #endif
   8494 #else
   8495 typedef struct IMediaPropertyBagVtbl {
   8496     BEGIN_INTERFACE
   8497 
   8498     /*** IUnknown methods ***/
   8499     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8500         IMediaPropertyBag *This,
   8501         REFIID riid,
   8502         void **ppvObject);
   8503 
   8504     ULONG (STDMETHODCALLTYPE *AddRef)(
   8505         IMediaPropertyBag *This);
   8506 
   8507     ULONG (STDMETHODCALLTYPE *Release)(
   8508         IMediaPropertyBag *This);
   8509 
   8510     /*** IPropertyBag methods ***/
   8511     HRESULT (STDMETHODCALLTYPE *Read)(
   8512         IMediaPropertyBag *This,
   8513         LPCOLESTR pszPropName,
   8514         VARIANT *pVar,
   8515         IErrorLog *pErrorLog);
   8516 
   8517     HRESULT (STDMETHODCALLTYPE *Write)(
   8518         IMediaPropertyBag *This,
   8519         LPCOLESTR pszPropName,
   8520         VARIANT *pVar);
   8521 
   8522     /*** IMediaPropertyBag methods ***/
   8523     HRESULT (STDMETHODCALLTYPE *EnumProperty)(
   8524         IMediaPropertyBag *This,
   8525         ULONG iProperty,
   8526         VARIANT *pvarPropertyName,
   8527         VARIANT *pvarPropertyValue);
   8528 
   8529     END_INTERFACE
   8530 } IMediaPropertyBagVtbl;
   8531 
   8532 interface IMediaPropertyBag {
   8533     CONST_VTBL IMediaPropertyBagVtbl* lpVtbl;
   8534 };
   8535 
   8536 #ifdef COBJMACROS
   8537 #ifndef WIDL_C_INLINE_WRAPPERS
   8538 /*** IUnknown methods ***/
   8539 #define IMediaPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8540 #define IMediaPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)
   8541 #define IMediaPropertyBag_Release(This) (This)->lpVtbl->Release(This)
   8542 /*** IPropertyBag methods ***/
   8543 #define IMediaPropertyBag_Read(This,pszPropName,pVar,pErrorLog) (This)->lpVtbl->Read(This,pszPropName,pVar,pErrorLog)
   8544 #define IMediaPropertyBag_Write(This,pszPropName,pVar) (This)->lpVtbl->Write(This,pszPropName,pVar)
   8545 /*** IMediaPropertyBag methods ***/
   8546 #define IMediaPropertyBag_EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue) (This)->lpVtbl->EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue)
   8547 #else
   8548 /*** IUnknown methods ***/
   8549 static inline HRESULT IMediaPropertyBag_QueryInterface(IMediaPropertyBag* This,REFIID riid,void **ppvObject) {
   8550     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8551 }
   8552 static inline ULONG IMediaPropertyBag_AddRef(IMediaPropertyBag* This) {
   8553     return This->lpVtbl->AddRef(This);
   8554 }
   8555 static inline ULONG IMediaPropertyBag_Release(IMediaPropertyBag* This) {
   8556     return This->lpVtbl->Release(This);
   8557 }
   8558 /*** IPropertyBag methods ***/
   8559 static inline HRESULT IMediaPropertyBag_Read(IMediaPropertyBag* This,LPCOLESTR pszPropName,VARIANT *pVar,IErrorLog *pErrorLog) {
   8560     return This->lpVtbl->Read(This,pszPropName,pVar,pErrorLog);
   8561 }
   8562 static inline HRESULT IMediaPropertyBag_Write(IMediaPropertyBag* This,LPCOLESTR pszPropName,VARIANT *pVar) {
   8563     return This->lpVtbl->Write(This,pszPropName,pVar);
   8564 }
   8565 /*** IMediaPropertyBag methods ***/
   8566 static inline HRESULT IMediaPropertyBag_EnumProperty(IMediaPropertyBag* This,ULONG iProperty,VARIANT *pvarPropertyName,VARIANT *pvarPropertyValue) {
   8567     return This->lpVtbl->EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue);
   8568 }
   8569 #endif
   8570 #endif
   8571 
   8572 #endif
   8573 
   8574 
   8575 #endif  /* __IMediaPropertyBag_INTERFACE_DEFINED__ */
   8576 
   8577 /*****************************************************************************
   8578  * IPersistMediaPropertyBag interface
   8579  */
   8580 #ifndef __IPersistMediaPropertyBag_INTERFACE_DEFINED__
   8581 #define __IPersistMediaPropertyBag_INTERFACE_DEFINED__
   8582 
   8583 typedef IPersistMediaPropertyBag *LPPERSISTMEDIAPROPERTYBAG;
   8584 DEFINE_GUID(IID_IPersistMediaPropertyBag, 0x5738e040, 0xb67f, 0x11d0, 0xbd,0x4d, 0x00,0xa0,0xc9,0x11,0xce,0x86);
   8585 #if defined(__cplusplus) && !defined(CINTERFACE)
   8586 MIDL_INTERFACE("5738e040-b67f-11d0-bd4d-00a0c911ce86")
   8587 IPersistMediaPropertyBag : public IPersist
   8588 {
   8589     virtual HRESULT STDMETHODCALLTYPE InitNew(
   8590         ) = 0;
   8591 
   8592     virtual HRESULT STDMETHODCALLTYPE Load(
   8593         IMediaPropertyBag *pPropBag,
   8594         IErrorLog *pErrorLog) = 0;
   8595 
   8596     virtual HRESULT STDMETHODCALLTYPE Save(
   8597         IMediaPropertyBag *pPropBag,
   8598         WINBOOL fClearDirty,
   8599         WINBOOL fSaveAllProperties) = 0;
   8600 
   8601 };
   8602 #ifdef __CRT_UUID_DECL
   8603 __CRT_UUID_DECL(IPersistMediaPropertyBag, 0x5738e040, 0xb67f, 0x11d0, 0xbd,0x4d, 0x00,0xa0,0xc9,0x11,0xce,0x86)
   8604 #endif
   8605 #else
   8606 typedef struct IPersistMediaPropertyBagVtbl {
   8607     BEGIN_INTERFACE
   8608 
   8609     /*** IUnknown methods ***/
   8610     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8611         IPersistMediaPropertyBag *This,
   8612         REFIID riid,
   8613         void **ppvObject);
   8614 
   8615     ULONG (STDMETHODCALLTYPE *AddRef)(
   8616         IPersistMediaPropertyBag *This);
   8617 
   8618     ULONG (STDMETHODCALLTYPE *Release)(
   8619         IPersistMediaPropertyBag *This);
   8620 
   8621     /*** IPersist methods ***/
   8622     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   8623         IPersistMediaPropertyBag *This,
   8624         CLSID *pClassID);
   8625 
   8626     /*** IPersistMediaPropertyBag methods ***/
   8627     HRESULT (STDMETHODCALLTYPE *InitNew)(
   8628         IPersistMediaPropertyBag *This);
   8629 
   8630     HRESULT (STDMETHODCALLTYPE *Load)(
   8631         IPersistMediaPropertyBag *This,
   8632         IMediaPropertyBag *pPropBag,
   8633         IErrorLog *pErrorLog);
   8634 
   8635     HRESULT (STDMETHODCALLTYPE *Save)(
   8636         IPersistMediaPropertyBag *This,
   8637         IMediaPropertyBag *pPropBag,
   8638         WINBOOL fClearDirty,
   8639         WINBOOL fSaveAllProperties);
   8640 
   8641     END_INTERFACE
   8642 } IPersistMediaPropertyBagVtbl;
   8643 
   8644 interface IPersistMediaPropertyBag {
   8645     CONST_VTBL IPersistMediaPropertyBagVtbl* lpVtbl;
   8646 };
   8647 
   8648 #ifdef COBJMACROS
   8649 #ifndef WIDL_C_INLINE_WRAPPERS
   8650 /*** IUnknown methods ***/
   8651 #define IPersistMediaPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8652 #define IPersistMediaPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)
   8653 #define IPersistMediaPropertyBag_Release(This) (This)->lpVtbl->Release(This)
   8654 /*** IPersist methods ***/
   8655 #define IPersistMediaPropertyBag_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   8656 /*** IPersistMediaPropertyBag methods ***/
   8657 #define IPersistMediaPropertyBag_InitNew(This) (This)->lpVtbl->InitNew(This)
   8658 #define IPersistMediaPropertyBag_Load(This,pPropBag,pErrorLog) (This)->lpVtbl->Load(This,pPropBag,pErrorLog)
   8659 #define IPersistMediaPropertyBag_Save(This,pPropBag,fClearDirty,fSaveAllProperties) (This)->lpVtbl->Save(This,pPropBag,fClearDirty,fSaveAllProperties)
   8660 #else
   8661 /*** IUnknown methods ***/
   8662 static inline HRESULT IPersistMediaPropertyBag_QueryInterface(IPersistMediaPropertyBag* This,REFIID riid,void **ppvObject) {
   8663     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8664 }
   8665 static inline ULONG IPersistMediaPropertyBag_AddRef(IPersistMediaPropertyBag* This) {
   8666     return This->lpVtbl->AddRef(This);
   8667 }
   8668 static inline ULONG IPersistMediaPropertyBag_Release(IPersistMediaPropertyBag* This) {
   8669     return This->lpVtbl->Release(This);
   8670 }
   8671 /*** IPersist methods ***/
   8672 static inline HRESULT IPersistMediaPropertyBag_GetClassID(IPersistMediaPropertyBag* This,CLSID *pClassID) {
   8673     return This->lpVtbl->GetClassID(This,pClassID);
   8674 }
   8675 /*** IPersistMediaPropertyBag methods ***/
   8676 static inline HRESULT IPersistMediaPropertyBag_InitNew(IPersistMediaPropertyBag* This) {
   8677     return This->lpVtbl->InitNew(This);
   8678 }
   8679 static inline HRESULT IPersistMediaPropertyBag_Load(IPersistMediaPropertyBag* This,IMediaPropertyBag *pPropBag,IErrorLog *pErrorLog) {
   8680     return This->lpVtbl->Load(This,pPropBag,pErrorLog);
   8681 }
   8682 static inline HRESULT IPersistMediaPropertyBag_Save(IPersistMediaPropertyBag* This,IMediaPropertyBag *pPropBag,WINBOOL fClearDirty,WINBOOL fSaveAllProperties) {
   8683     return This->lpVtbl->Save(This,pPropBag,fClearDirty,fSaveAllProperties);
   8684 }
   8685 #endif
   8686 #endif
   8687 
   8688 #endif
   8689 
   8690 
   8691 #endif  /* __IPersistMediaPropertyBag_INTERFACE_DEFINED__ */
   8692 
   8693 /*****************************************************************************
   8694  * ISeekingPassThru interface
   8695  */
   8696 #ifndef __ISeekingPassThru_INTERFACE_DEFINED__
   8697 #define __ISeekingPassThru_INTERFACE_DEFINED__
   8698 
   8699 DEFINE_GUID(IID_ISeekingPassThru, 0x36b73883, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
   8700 #if defined(__cplusplus) && !defined(CINTERFACE)
   8701 MIDL_INTERFACE("36b73883-c2c8-11cf-8b46-00805f6cef60")
   8702 ISeekingPassThru : public IUnknown
   8703 {
   8704     virtual HRESULT STDMETHODCALLTYPE Init(
   8705         WINBOOL bSupportRendering,
   8706         IPin *pPin) = 0;
   8707 
   8708 };
   8709 #ifdef __CRT_UUID_DECL
   8710 __CRT_UUID_DECL(ISeekingPassThru, 0x36b73883, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
   8711 #endif
   8712 #else
   8713 typedef struct ISeekingPassThruVtbl {
   8714     BEGIN_INTERFACE
   8715 
   8716     /*** IUnknown methods ***/
   8717     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8718         ISeekingPassThru *This,
   8719         REFIID riid,
   8720         void **ppvObject);
   8721 
   8722     ULONG (STDMETHODCALLTYPE *AddRef)(
   8723         ISeekingPassThru *This);
   8724 
   8725     ULONG (STDMETHODCALLTYPE *Release)(
   8726         ISeekingPassThru *This);
   8727 
   8728     /*** ISeekingPassThru methods ***/
   8729     HRESULT (STDMETHODCALLTYPE *Init)(
   8730         ISeekingPassThru *This,
   8731         WINBOOL bSupportRendering,
   8732         IPin *pPin);
   8733 
   8734     END_INTERFACE
   8735 } ISeekingPassThruVtbl;
   8736 
   8737 interface ISeekingPassThru {
   8738     CONST_VTBL ISeekingPassThruVtbl* lpVtbl;
   8739 };
   8740 
   8741 #ifdef COBJMACROS
   8742 #ifndef WIDL_C_INLINE_WRAPPERS
   8743 /*** IUnknown methods ***/
   8744 #define ISeekingPassThru_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8745 #define ISeekingPassThru_AddRef(This) (This)->lpVtbl->AddRef(This)
   8746 #define ISeekingPassThru_Release(This) (This)->lpVtbl->Release(This)
   8747 /*** ISeekingPassThru methods ***/
   8748 #define ISeekingPassThru_Init(This,bSupportRendering,pPin) (This)->lpVtbl->Init(This,bSupportRendering,pPin)
   8749 #else
   8750 /*** IUnknown methods ***/
   8751 static inline HRESULT ISeekingPassThru_QueryInterface(ISeekingPassThru* This,REFIID riid,void **ppvObject) {
   8752     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8753 }
   8754 static inline ULONG ISeekingPassThru_AddRef(ISeekingPassThru* This) {
   8755     return This->lpVtbl->AddRef(This);
   8756 }
   8757 static inline ULONG ISeekingPassThru_Release(ISeekingPassThru* This) {
   8758     return This->lpVtbl->Release(This);
   8759 }
   8760 /*** ISeekingPassThru methods ***/
   8761 static inline HRESULT ISeekingPassThru_Init(ISeekingPassThru* This,WINBOOL bSupportRendering,IPin *pPin) {
   8762     return This->lpVtbl->Init(This,bSupportRendering,pPin);
   8763 }
   8764 #endif
   8765 #endif
   8766 
   8767 #endif
   8768 
   8769 
   8770 #endif  /* __ISeekingPassThru_INTERFACE_DEFINED__ */
   8771 
   8772 enum _AM_FILTER_MISC_FLAGS {
   8773     AM_FILTER_MISC_FLAGS_IS_RENDERER = 0x1,
   8774     AM_FILTER_MISC_FLAGS_IS_SOURCE = 0x2
   8775 };
   8776 /*****************************************************************************
   8777  * IAMFilterMiscFlags interface
   8778  */
   8779 #ifndef __IAMFilterMiscFlags_INTERFACE_DEFINED__
   8780 #define __IAMFilterMiscFlags_INTERFACE_DEFINED__
   8781 
   8782 DEFINE_GUID(IID_IAMFilterMiscFlags, 0x2dd74950, 0xa890, 0x11d1, 0xab,0xe8, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
   8783 #if defined(__cplusplus) && !defined(CINTERFACE)
   8784 MIDL_INTERFACE("2dd74950-a890-11d1-abe8-00a0c905f375")
   8785 IAMFilterMiscFlags : public IUnknown
   8786 {
   8787     virtual ULONG STDMETHODCALLTYPE GetMiscFlags(
   8788         ) = 0;
   8789 
   8790 };
   8791 #ifdef __CRT_UUID_DECL
   8792 __CRT_UUID_DECL(IAMFilterMiscFlags, 0x2dd74950, 0xa890, 0x11d1, 0xab,0xe8, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
   8793 #endif
   8794 #else
   8795 typedef struct IAMFilterMiscFlagsVtbl {
   8796     BEGIN_INTERFACE
   8797 
   8798     /*** IUnknown methods ***/
   8799     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8800         IAMFilterMiscFlags *This,
   8801         REFIID riid,
   8802         void **ppvObject);
   8803 
   8804     ULONG (STDMETHODCALLTYPE *AddRef)(
   8805         IAMFilterMiscFlags *This);
   8806 
   8807     ULONG (STDMETHODCALLTYPE *Release)(
   8808         IAMFilterMiscFlags *This);
   8809 
   8810     /*** IAMFilterMiscFlags methods ***/
   8811     ULONG (STDMETHODCALLTYPE *GetMiscFlags)(
   8812         IAMFilterMiscFlags *This);
   8813 
   8814     END_INTERFACE
   8815 } IAMFilterMiscFlagsVtbl;
   8816 
   8817 interface IAMFilterMiscFlags {
   8818     CONST_VTBL IAMFilterMiscFlagsVtbl* lpVtbl;
   8819 };
   8820 
   8821 #ifdef COBJMACROS
   8822 #ifndef WIDL_C_INLINE_WRAPPERS
   8823 /*** IUnknown methods ***/
   8824 #define IAMFilterMiscFlags_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8825 #define IAMFilterMiscFlags_AddRef(This) (This)->lpVtbl->AddRef(This)
   8826 #define IAMFilterMiscFlags_Release(This) (This)->lpVtbl->Release(This)
   8827 /*** IAMFilterMiscFlags methods ***/
   8828 #define IAMFilterMiscFlags_GetMiscFlags(This) (This)->lpVtbl->GetMiscFlags(This)
   8829 #else
   8830 /*** IUnknown methods ***/
   8831 static inline HRESULT IAMFilterMiscFlags_QueryInterface(IAMFilterMiscFlags* This,REFIID riid,void **ppvObject) {
   8832     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8833 }
   8834 static inline ULONG IAMFilterMiscFlags_AddRef(IAMFilterMiscFlags* This) {
   8835     return This->lpVtbl->AddRef(This);
   8836 }
   8837 static inline ULONG IAMFilterMiscFlags_Release(IAMFilterMiscFlags* This) {
   8838     return This->lpVtbl->Release(This);
   8839 }
   8840 /*** IAMFilterMiscFlags methods ***/
   8841 static inline ULONG IAMFilterMiscFlags_GetMiscFlags(IAMFilterMiscFlags* This) {
   8842     return This->lpVtbl->GetMiscFlags(This);
   8843 }
   8844 #endif
   8845 #endif
   8846 
   8847 #endif
   8848 
   8849 
   8850 #endif  /* __IAMFilterMiscFlags_INTERFACE_DEFINED__ */
   8851 
   8852 /*****************************************************************************
   8853  * IAMGraphBuilderCallback interface
   8854  */
   8855 #ifndef __IAMGraphBuilderCallback_INTERFACE_DEFINED__
   8856 #define __IAMGraphBuilderCallback_INTERFACE_DEFINED__
   8857 
   8858 DEFINE_GUID(IID_IAMGraphBuilderCallback, 0x4995f511, 0x9ddb, 0x4f12, 0xbd,0x3b, 0xf0,0x46,0x11,0x80,0x7b,0x79);
   8859 #if defined(__cplusplus) && !defined(CINTERFACE)
   8860 MIDL_INTERFACE("4995f511-9ddb-4f12-bd3b-f04611807b79")
   8861 IAMGraphBuilderCallback : public IUnknown
   8862 {
   8863     virtual HRESULT STDMETHODCALLTYPE SelectedFilter(
   8864         IMoniker *pMon) = 0;
   8865 
   8866     virtual HRESULT STDMETHODCALLTYPE CreatedFilter(
   8867         IBaseFilter *pFil) = 0;
   8868 
   8869 };
   8870 #ifdef __CRT_UUID_DECL
   8871 __CRT_UUID_DECL(IAMGraphBuilderCallback, 0x4995f511, 0x9ddb, 0x4f12, 0xbd,0x3b, 0xf0,0x46,0x11,0x80,0x7b,0x79)
   8872 #endif
   8873 #else
   8874 typedef struct IAMGraphBuilderCallbackVtbl {
   8875     BEGIN_INTERFACE
   8876 
   8877     /*** IUnknown methods ***/
   8878     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8879         IAMGraphBuilderCallback *This,
   8880         REFIID riid,
   8881         void **ppvObject);
   8882 
   8883     ULONG (STDMETHODCALLTYPE *AddRef)(
   8884         IAMGraphBuilderCallback *This);
   8885 
   8886     ULONG (STDMETHODCALLTYPE *Release)(
   8887         IAMGraphBuilderCallback *This);
   8888 
   8889     /*** IAMGraphBuilderCallback methods ***/
   8890     HRESULT (STDMETHODCALLTYPE *SelectedFilter)(
   8891         IAMGraphBuilderCallback *This,
   8892         IMoniker *pMon);
   8893 
   8894     HRESULT (STDMETHODCALLTYPE *CreatedFilter)(
   8895         IAMGraphBuilderCallback *This,
   8896         IBaseFilter *pFil);
   8897 
   8898     END_INTERFACE
   8899 } IAMGraphBuilderCallbackVtbl;
   8900 
   8901 interface IAMGraphBuilderCallback {
   8902     CONST_VTBL IAMGraphBuilderCallbackVtbl* lpVtbl;
   8903 };
   8904 
   8905 #ifdef COBJMACROS
   8906 #ifndef WIDL_C_INLINE_WRAPPERS
   8907 /*** IUnknown methods ***/
   8908 #define IAMGraphBuilderCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8909 #define IAMGraphBuilderCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
   8910 #define IAMGraphBuilderCallback_Release(This) (This)->lpVtbl->Release(This)
   8911 /*** IAMGraphBuilderCallback methods ***/
   8912 #define IAMGraphBuilderCallback_SelectedFilter(This,pMon) (This)->lpVtbl->SelectedFilter(This,pMon)
   8913 #define IAMGraphBuilderCallback_CreatedFilter(This,pFil) (This)->lpVtbl->CreatedFilter(This,pFil)
   8914 #else
   8915 /*** IUnknown methods ***/
   8916 static inline HRESULT IAMGraphBuilderCallback_QueryInterface(IAMGraphBuilderCallback* This,REFIID riid,void **ppvObject) {
   8917     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8918 }
   8919 static inline ULONG IAMGraphBuilderCallback_AddRef(IAMGraphBuilderCallback* This) {
   8920     return This->lpVtbl->AddRef(This);
   8921 }
   8922 static inline ULONG IAMGraphBuilderCallback_Release(IAMGraphBuilderCallback* This) {
   8923     return This->lpVtbl->Release(This);
   8924 }
   8925 /*** IAMGraphBuilderCallback methods ***/
   8926 static inline HRESULT IAMGraphBuilderCallback_SelectedFilter(IAMGraphBuilderCallback* This,IMoniker *pMon) {
   8927     return This->lpVtbl->SelectedFilter(This,pMon);
   8928 }
   8929 static inline HRESULT IAMGraphBuilderCallback_CreatedFilter(IAMGraphBuilderCallback* This,IBaseFilter *pFil) {
   8930     return This->lpVtbl->CreatedFilter(This,pFil);
   8931 }
   8932 #endif
   8933 #endif
   8934 
   8935 #endif
   8936 
   8937 
   8938 #endif  /* __IAMGraphBuilderCallback_INTERFACE_DEFINED__ */
   8939 
   8940 /*****************************************************************************
   8941  * IAMVfwCaptureDialogs interface
   8942  */
   8943 #ifndef __IAMVfwCaptureDialogs_INTERFACE_DEFINED__
   8944 #define __IAMVfwCaptureDialogs_INTERFACE_DEFINED__
   8945 
   8946 DEFINE_GUID(IID_IAMVfwCaptureDialogs, 0xd8d715a0, 0x6e5e, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
   8947 #if defined(__cplusplus) && !defined(CINTERFACE)
   8948 MIDL_INTERFACE("d8d715a0-6e5e-11d0-b3f0-00aa003761c5")
   8949 IAMVfwCaptureDialogs : public IUnknown
   8950 {
   8951     virtual HRESULT STDMETHODCALLTYPE HasDialog(
   8952         int dialog) = 0;
   8953 
   8954     virtual HRESULT STDMETHODCALLTYPE ShowDialog(
   8955         int dialog,
   8956         HWND hwnd) = 0;
   8957 
   8958     virtual HRESULT STDMETHODCALLTYPE SendDriverMessage(
   8959         int dialog,
   8960         int msg,
   8961         LONG data1,
   8962         LONG data2) = 0;
   8963 
   8964 };
   8965 #ifdef __CRT_UUID_DECL
   8966 __CRT_UUID_DECL(IAMVfwCaptureDialogs, 0xd8d715a0, 0x6e5e, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5)
   8967 #endif
   8968 #else
   8969 typedef struct IAMVfwCaptureDialogsVtbl {
   8970     BEGIN_INTERFACE
   8971 
   8972     /*** IUnknown methods ***/
   8973     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8974         IAMVfwCaptureDialogs *This,
   8975         REFIID riid,
   8976         void **ppvObject);
   8977 
   8978     ULONG (STDMETHODCALLTYPE *AddRef)(
   8979         IAMVfwCaptureDialogs *This);
   8980 
   8981     ULONG (STDMETHODCALLTYPE *Release)(
   8982         IAMVfwCaptureDialogs *This);
   8983 
   8984     /*** IAMVfwCaptureDialogs methods ***/
   8985     HRESULT (STDMETHODCALLTYPE *HasDialog)(
   8986         IAMVfwCaptureDialogs *This,
   8987         int dialog);
   8988 
   8989     HRESULT (STDMETHODCALLTYPE *ShowDialog)(
   8990         IAMVfwCaptureDialogs *This,
   8991         int dialog,
   8992         HWND hwnd);
   8993 
   8994     HRESULT (STDMETHODCALLTYPE *SendDriverMessage)(
   8995         IAMVfwCaptureDialogs *This,
   8996         int dialog,
   8997         int msg,
   8998         LONG data1,
   8999         LONG data2);
   9000 
   9001     END_INTERFACE
   9002 } IAMVfwCaptureDialogsVtbl;
   9003 
   9004 interface IAMVfwCaptureDialogs {
   9005     CONST_VTBL IAMVfwCaptureDialogsVtbl* lpVtbl;
   9006 };
   9007 
   9008 #ifdef COBJMACROS
   9009 #ifndef WIDL_C_INLINE_WRAPPERS
   9010 /*** IUnknown methods ***/
   9011 #define IAMVfwCaptureDialogs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9012 #define IAMVfwCaptureDialogs_AddRef(This) (This)->lpVtbl->AddRef(This)
   9013 #define IAMVfwCaptureDialogs_Release(This) (This)->lpVtbl->Release(This)
   9014 /*** IAMVfwCaptureDialogs methods ***/
   9015 #define IAMVfwCaptureDialogs_HasDialog(This,dialog) (This)->lpVtbl->HasDialog(This,dialog)
   9016 #define IAMVfwCaptureDialogs_ShowDialog(This,dialog,hwnd) (This)->lpVtbl->ShowDialog(This,dialog,hwnd)
   9017 #define IAMVfwCaptureDialogs_SendDriverMessage(This,dialog,msg,data1,data2) (This)->lpVtbl->SendDriverMessage(This,dialog,msg,data1,data2)
   9018 #else
   9019 /*** IUnknown methods ***/
   9020 static inline HRESULT IAMVfwCaptureDialogs_QueryInterface(IAMVfwCaptureDialogs* This,REFIID riid,void **ppvObject) {
   9021     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9022 }
   9023 static inline ULONG IAMVfwCaptureDialogs_AddRef(IAMVfwCaptureDialogs* This) {
   9024     return This->lpVtbl->AddRef(This);
   9025 }
   9026 static inline ULONG IAMVfwCaptureDialogs_Release(IAMVfwCaptureDialogs* This) {
   9027     return This->lpVtbl->Release(This);
   9028 }
   9029 /*** IAMVfwCaptureDialogs methods ***/
   9030 static inline HRESULT IAMVfwCaptureDialogs_HasDialog(IAMVfwCaptureDialogs* This,int dialog) {
   9031     return This->lpVtbl->HasDialog(This,dialog);
   9032 }
   9033 static inline HRESULT IAMVfwCaptureDialogs_ShowDialog(IAMVfwCaptureDialogs* This,int dialog,HWND hwnd) {
   9034     return This->lpVtbl->ShowDialog(This,dialog,hwnd);
   9035 }
   9036 static inline HRESULT IAMVfwCaptureDialogs_SendDriverMessage(IAMVfwCaptureDialogs* This,int dialog,int msg,LONG data1,LONG data2) {
   9037     return This->lpVtbl->SendDriverMessage(This,dialog,msg,data1,data2);
   9038 }
   9039 #endif
   9040 #endif
   9041 
   9042 #endif
   9043 
   9044 
   9045 #endif  /* __IAMVfwCaptureDialogs_INTERFACE_DEFINED__ */
   9046 
   9047 /*****************************************************************************
   9048  * IAMCameraControl interface
   9049  */
   9050 #ifndef __IAMCameraControl_INTERFACE_DEFINED__
   9051 #define __IAMCameraControl_INTERFACE_DEFINED__
   9052 
   9053 DEFINE_GUID(IID_IAMCameraControl, 0xc6e13370, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
   9054 #if defined(__cplusplus) && !defined(CINTERFACE)
   9055 MIDL_INTERFACE("c6e13370-30ac-11d0-a18c-00a0c9118956")
   9056 IAMCameraControl : public IUnknown
   9057 {
   9058     virtual HRESULT STDMETHODCALLTYPE GetRange(
   9059         LONG property,
   9060         LONG *min,
   9061         LONG *max,
   9062         LONG *stepping_delta,
   9063         LONG *default_value,
   9064         LONG *flags) = 0;
   9065 
   9066     virtual HRESULT STDMETHODCALLTYPE Set(
   9067         LONG property,
   9068         LONG property_value,
   9069         LONG flags) = 0;
   9070 
   9071     virtual HRESULT STDMETHODCALLTYPE Get(
   9072         LONG property,
   9073         LONG *property_value,
   9074         LONG *flags) = 0;
   9075 
   9076 };
   9077 #ifdef __CRT_UUID_DECL
   9078 __CRT_UUID_DECL(IAMCameraControl, 0xc6e13370, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
   9079 #endif
   9080 #else
   9081 typedef struct IAMCameraControlVtbl {
   9082     BEGIN_INTERFACE
   9083 
   9084     /*** IUnknown methods ***/
   9085     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9086         IAMCameraControl *This,
   9087         REFIID riid,
   9088         void **ppvObject);
   9089 
   9090     ULONG (STDMETHODCALLTYPE *AddRef)(
   9091         IAMCameraControl *This);
   9092 
   9093     ULONG (STDMETHODCALLTYPE *Release)(
   9094         IAMCameraControl *This);
   9095 
   9096     /*** IAMCameraControl methods ***/
   9097     HRESULT (STDMETHODCALLTYPE *GetRange)(
   9098         IAMCameraControl *This,
   9099         LONG property,
   9100         LONG *min,
   9101         LONG *max,
   9102         LONG *stepping_delta,
   9103         LONG *default_value,
   9104         LONG *flags);
   9105 
   9106     HRESULT (STDMETHODCALLTYPE *Set)(
   9107         IAMCameraControl *This,
   9108         LONG property,
   9109         LONG property_value,
   9110         LONG flags);
   9111 
   9112     HRESULT (STDMETHODCALLTYPE *Get)(
   9113         IAMCameraControl *This,
   9114         LONG property,
   9115         LONG *property_value,
   9116         LONG *flags);
   9117 
   9118     END_INTERFACE
   9119 } IAMCameraControlVtbl;
   9120 
   9121 interface IAMCameraControl {
   9122     CONST_VTBL IAMCameraControlVtbl* lpVtbl;
   9123 };
   9124 
   9125 #ifdef COBJMACROS
   9126 #ifndef WIDL_C_INLINE_WRAPPERS
   9127 /*** IUnknown methods ***/
   9128 #define IAMCameraControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9129 #define IAMCameraControl_AddRef(This) (This)->lpVtbl->AddRef(This)
   9130 #define IAMCameraControl_Release(This) (This)->lpVtbl->Release(This)
   9131 /*** IAMCameraControl methods ***/
   9132 #define IAMCameraControl_GetRange(This,property,min,max,stepping_delta,default_value,flags) (This)->lpVtbl->GetRange(This,property,min,max,stepping_delta,default_value,flags)
   9133 #define IAMCameraControl_Set(This,property,property_value,flags) (This)->lpVtbl->Set(This,property,property_value,flags)
   9134 #define IAMCameraControl_Get(This,property,property_value,flags) (This)->lpVtbl->Get(This,property,property_value,flags)
   9135 #else
   9136 /*** IUnknown methods ***/
   9137 static inline HRESULT IAMCameraControl_QueryInterface(IAMCameraControl* This,REFIID riid,void **ppvObject) {
   9138     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9139 }
   9140 static inline ULONG IAMCameraControl_AddRef(IAMCameraControl* This) {
   9141     return This->lpVtbl->AddRef(This);
   9142 }
   9143 static inline ULONG IAMCameraControl_Release(IAMCameraControl* This) {
   9144     return This->lpVtbl->Release(This);
   9145 }
   9146 /*** IAMCameraControl methods ***/
   9147 static inline HRESULT IAMCameraControl_GetRange(IAMCameraControl* This,LONG property,LONG *min,LONG *max,LONG *stepping_delta,LONG *default_value,LONG *flags) {
   9148     return This->lpVtbl->GetRange(This,property,min,max,stepping_delta,default_value,flags);
   9149 }
   9150 static inline HRESULT IAMCameraControl_Set(IAMCameraControl* This,LONG property,LONG property_value,LONG flags) {
   9151     return This->lpVtbl->Set(This,property,property_value,flags);
   9152 }
   9153 static inline HRESULT IAMCameraControl_Get(IAMCameraControl* This,LONG property,LONG *property_value,LONG *flags) {
   9154     return This->lpVtbl->Get(This,property,property_value,flags);
   9155 }
   9156 #endif
   9157 #endif
   9158 
   9159 #endif
   9160 
   9161 
   9162 #endif  /* __IAMCameraControl_INTERFACE_DEFINED__ */
   9163 
   9164 /*****************************************************************************
   9165  * IAMVideoControl interface
   9166  */
   9167 #ifndef __IAMVideoControl_INTERFACE_DEFINED__
   9168 #define __IAMVideoControl_INTERFACE_DEFINED__
   9169 
   9170 DEFINE_GUID(IID_IAMVideoControl, 0x6a2e0670, 0x28e4, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
   9171 #if defined(__cplusplus) && !defined(CINTERFACE)
   9172 MIDL_INTERFACE("6a2e0670-28e4-11d0-a18c-00a0c9118956")
   9173 IAMVideoControl : public IUnknown
   9174 {
   9175     virtual HRESULT STDMETHODCALLTYPE GetCaps(
   9176         IPin *pin,
   9177         LONG *flags) = 0;
   9178 
   9179     virtual HRESULT STDMETHODCALLTYPE SetMode(
   9180         IPin *pin,
   9181         LONG mode) = 0;
   9182 
   9183     virtual HRESULT STDMETHODCALLTYPE GetMode(
   9184         IPin *pin,
   9185         LONG *mode) = 0;
   9186 
   9187     virtual HRESULT STDMETHODCALLTYPE GetCurrentActualFrameRate(
   9188         IPin *pin,
   9189         LONGLONG *frame_rate) = 0;
   9190 
   9191     virtual HRESULT STDMETHODCALLTYPE GetMaxAvailableFrameRate(
   9192         IPin *pin,
   9193         LONG index,
   9194         SIZE dimensions,
   9195         LONGLONG *frame_rate) = 0;
   9196 
   9197     virtual HRESULT STDMETHODCALLTYPE GetFrameRateList(
   9198         IPin *pin,
   9199         LONG index,
   9200         SIZE dimensions,
   9201         LONG *list_size,
   9202         LONGLONG **frame_rate) = 0;
   9203 
   9204 };
   9205 #ifdef __CRT_UUID_DECL
   9206 __CRT_UUID_DECL(IAMVideoControl, 0x6a2e0670, 0x28e4, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
   9207 #endif
   9208 #else
   9209 typedef struct IAMVideoControlVtbl {
   9210     BEGIN_INTERFACE
   9211 
   9212     /*** IUnknown methods ***/
   9213     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9214         IAMVideoControl *This,
   9215         REFIID riid,
   9216         void **ppvObject);
   9217 
   9218     ULONG (STDMETHODCALLTYPE *AddRef)(
   9219         IAMVideoControl *This);
   9220 
   9221     ULONG (STDMETHODCALLTYPE *Release)(
   9222         IAMVideoControl *This);
   9223 
   9224     /*** IAMVideoControl methods ***/
   9225     HRESULT (STDMETHODCALLTYPE *GetCaps)(
   9226         IAMVideoControl *This,
   9227         IPin *pin,
   9228         LONG *flags);
   9229 
   9230     HRESULT (STDMETHODCALLTYPE *SetMode)(
   9231         IAMVideoControl *This,
   9232         IPin *pin,
   9233         LONG mode);
   9234 
   9235     HRESULT (STDMETHODCALLTYPE *GetMode)(
   9236         IAMVideoControl *This,
   9237         IPin *pin,
   9238         LONG *mode);
   9239 
   9240     HRESULT (STDMETHODCALLTYPE *GetCurrentActualFrameRate)(
   9241         IAMVideoControl *This,
   9242         IPin *pin,
   9243         LONGLONG *frame_rate);
   9244 
   9245     HRESULT (STDMETHODCALLTYPE *GetMaxAvailableFrameRate)(
   9246         IAMVideoControl *This,
   9247         IPin *pin,
   9248         LONG index,
   9249         SIZE dimensions,
   9250         LONGLONG *frame_rate);
   9251 
   9252     HRESULT (STDMETHODCALLTYPE *GetFrameRateList)(
   9253         IAMVideoControl *This,
   9254         IPin *pin,
   9255         LONG index,
   9256         SIZE dimensions,
   9257         LONG *list_size,
   9258         LONGLONG **frame_rate);
   9259 
   9260     END_INTERFACE
   9261 } IAMVideoControlVtbl;
   9262 
   9263 interface IAMVideoControl {
   9264     CONST_VTBL IAMVideoControlVtbl* lpVtbl;
   9265 };
   9266 
   9267 #ifdef COBJMACROS
   9268 #ifndef WIDL_C_INLINE_WRAPPERS
   9269 /*** IUnknown methods ***/
   9270 #define IAMVideoControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9271 #define IAMVideoControl_AddRef(This) (This)->lpVtbl->AddRef(This)
   9272 #define IAMVideoControl_Release(This) (This)->lpVtbl->Release(This)
   9273 /*** IAMVideoControl methods ***/
   9274 #define IAMVideoControl_GetCaps(This,pin,flags) (This)->lpVtbl->GetCaps(This,pin,flags)
   9275 #define IAMVideoControl_SetMode(This,pin,mode) (This)->lpVtbl->SetMode(This,pin,mode)
   9276 #define IAMVideoControl_GetMode(This,pin,mode) (This)->lpVtbl->GetMode(This,pin,mode)
   9277 #define IAMVideoControl_GetCurrentActualFrameRate(This,pin,frame_rate) (This)->lpVtbl->GetCurrentActualFrameRate(This,pin,frame_rate)
   9278 #define IAMVideoControl_GetMaxAvailableFrameRate(This,pin,index,dimensions,frame_rate) (This)->lpVtbl->GetMaxAvailableFrameRate(This,pin,index,dimensions,frame_rate)
   9279 #define IAMVideoControl_GetFrameRateList(This,pin,index,dimensions,list_size,frame_rate) (This)->lpVtbl->GetFrameRateList(This,pin,index,dimensions,list_size,frame_rate)
   9280 #else
   9281 /*** IUnknown methods ***/
   9282 static inline HRESULT IAMVideoControl_QueryInterface(IAMVideoControl* This,REFIID riid,void **ppvObject) {
   9283     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9284 }
   9285 static inline ULONG IAMVideoControl_AddRef(IAMVideoControl* This) {
   9286     return This->lpVtbl->AddRef(This);
   9287 }
   9288 static inline ULONG IAMVideoControl_Release(IAMVideoControl* This) {
   9289     return This->lpVtbl->Release(This);
   9290 }
   9291 /*** IAMVideoControl methods ***/
   9292 static inline HRESULT IAMVideoControl_GetCaps(IAMVideoControl* This,IPin *pin,LONG *flags) {
   9293     return This->lpVtbl->GetCaps(This,pin,flags);
   9294 }
   9295 static inline HRESULT IAMVideoControl_SetMode(IAMVideoControl* This,IPin *pin,LONG mode) {
   9296     return This->lpVtbl->SetMode(This,pin,mode);
   9297 }
   9298 static inline HRESULT IAMVideoControl_GetMode(IAMVideoControl* This,IPin *pin,LONG *mode) {
   9299     return This->lpVtbl->GetMode(This,pin,mode);
   9300 }
   9301 static inline HRESULT IAMVideoControl_GetCurrentActualFrameRate(IAMVideoControl* This,IPin *pin,LONGLONG *frame_rate) {
   9302     return This->lpVtbl->GetCurrentActualFrameRate(This,pin,frame_rate);
   9303 }
   9304 static inline HRESULT IAMVideoControl_GetMaxAvailableFrameRate(IAMVideoControl* This,IPin *pin,LONG index,SIZE dimensions,LONGLONG *frame_rate) {
   9305     return This->lpVtbl->GetMaxAvailableFrameRate(This,pin,index,dimensions,frame_rate);
   9306 }
   9307 static inline HRESULT IAMVideoControl_GetFrameRateList(IAMVideoControl* This,IPin *pin,LONG index,SIZE dimensions,LONG *list_size,LONGLONG **frame_rate) {
   9308     return This->lpVtbl->GetFrameRateList(This,pin,index,dimensions,list_size,frame_rate);
   9309 }
   9310 #endif
   9311 #endif
   9312 
   9313 #endif
   9314 
   9315 
   9316 #endif  /* __IAMVideoControl_INTERFACE_DEFINED__ */
   9317 
   9318 /*****************************************************************************
   9319  * IAMBufferNegotiation interface
   9320  */
   9321 #ifndef __IAMBufferNegotiation_INTERFACE_DEFINED__
   9322 #define __IAMBufferNegotiation_INTERFACE_DEFINED__
   9323 
   9324 DEFINE_GUID(IID_IAMBufferNegotiation, 0x56ed71a0, 0xaf5f, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
   9325 #if defined(__cplusplus) && !defined(CINTERFACE)
   9326 MIDL_INTERFACE("56ed71a0-af5f-11d0-b3f0-00aa003761c5")
   9327 IAMBufferNegotiation : public IUnknown
   9328 {
   9329     virtual HRESULT STDMETHODCALLTYPE SuggestAllocatorProperties(
   9330         const ALLOCATOR_PROPERTIES *prop) = 0;
   9331 
   9332     virtual HRESULT STDMETHODCALLTYPE GetAllocatorProperties(
   9333         ALLOCATOR_PROPERTIES *prop) = 0;
   9334 
   9335 };
   9336 #ifdef __CRT_UUID_DECL
   9337 __CRT_UUID_DECL(IAMBufferNegotiation, 0x56ed71a0, 0xaf5f, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5)
   9338 #endif
   9339 #else
   9340 typedef struct IAMBufferNegotiationVtbl {
   9341     BEGIN_INTERFACE
   9342 
   9343     /*** IUnknown methods ***/
   9344     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9345         IAMBufferNegotiation *This,
   9346         REFIID riid,
   9347         void **ppvObject);
   9348 
   9349     ULONG (STDMETHODCALLTYPE *AddRef)(
   9350         IAMBufferNegotiation *This);
   9351 
   9352     ULONG (STDMETHODCALLTYPE *Release)(
   9353         IAMBufferNegotiation *This);
   9354 
   9355     /*** IAMBufferNegotiation methods ***/
   9356     HRESULT (STDMETHODCALLTYPE *SuggestAllocatorProperties)(
   9357         IAMBufferNegotiation *This,
   9358         const ALLOCATOR_PROPERTIES *prop);
   9359 
   9360     HRESULT (STDMETHODCALLTYPE *GetAllocatorProperties)(
   9361         IAMBufferNegotiation *This,
   9362         ALLOCATOR_PROPERTIES *prop);
   9363 
   9364     END_INTERFACE
   9365 } IAMBufferNegotiationVtbl;
   9366 
   9367 interface IAMBufferNegotiation {
   9368     CONST_VTBL IAMBufferNegotiationVtbl* lpVtbl;
   9369 };
   9370 
   9371 #ifdef COBJMACROS
   9372 #ifndef WIDL_C_INLINE_WRAPPERS
   9373 /*** IUnknown methods ***/
   9374 #define IAMBufferNegotiation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9375 #define IAMBufferNegotiation_AddRef(This) (This)->lpVtbl->AddRef(This)
   9376 #define IAMBufferNegotiation_Release(This) (This)->lpVtbl->Release(This)
   9377 /*** IAMBufferNegotiation methods ***/
   9378 #define IAMBufferNegotiation_SuggestAllocatorProperties(This,prop) (This)->lpVtbl->SuggestAllocatorProperties(This,prop)
   9379 #define IAMBufferNegotiation_GetAllocatorProperties(This,prop) (This)->lpVtbl->GetAllocatorProperties(This,prop)
   9380 #else
   9381 /*** IUnknown methods ***/
   9382 static inline HRESULT IAMBufferNegotiation_QueryInterface(IAMBufferNegotiation* This,REFIID riid,void **ppvObject) {
   9383     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9384 }
   9385 static inline ULONG IAMBufferNegotiation_AddRef(IAMBufferNegotiation* This) {
   9386     return This->lpVtbl->AddRef(This);
   9387 }
   9388 static inline ULONG IAMBufferNegotiation_Release(IAMBufferNegotiation* This) {
   9389     return This->lpVtbl->Release(This);
   9390 }
   9391 /*** IAMBufferNegotiation methods ***/
   9392 static inline HRESULT IAMBufferNegotiation_SuggestAllocatorProperties(IAMBufferNegotiation* This,const ALLOCATOR_PROPERTIES *prop) {
   9393     return This->lpVtbl->SuggestAllocatorProperties(This,prop);
   9394 }
   9395 static inline HRESULT IAMBufferNegotiation_GetAllocatorProperties(IAMBufferNegotiation* This,ALLOCATOR_PROPERTIES *prop) {
   9396     return This->lpVtbl->GetAllocatorProperties(This,prop);
   9397 }
   9398 #endif
   9399 #endif
   9400 
   9401 #endif
   9402 
   9403 
   9404 #endif  /* __IAMBufferNegotiation_INTERFACE_DEFINED__ */
   9405 
   9406 /*****************************************************************************
   9407  * IAMDroppedFrames interface
   9408  */
   9409 #ifndef __IAMDroppedFrames_INTERFACE_DEFINED__
   9410 #define __IAMDroppedFrames_INTERFACE_DEFINED__
   9411 
   9412 DEFINE_GUID(IID_IAMDroppedFrames, 0xc6e13344, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
   9413 #if defined(__cplusplus) && !defined(CINTERFACE)
   9414 MIDL_INTERFACE("c6e13344-30ac-11d0-a18c-00a0c9118956")
   9415 IAMDroppedFrames : public IUnknown
   9416 {
   9417     virtual HRESULT STDMETHODCALLTYPE GetNumDropped(
   9418         LONG *number) = 0;
   9419 
   9420     virtual HRESULT STDMETHODCALLTYPE GetNumNotDropped(
   9421         LONG *number) = 0;
   9422 
   9423     virtual HRESULT STDMETHODCALLTYPE GetDroppedInfo(
   9424         LONG size,
   9425         LONG *array,
   9426         LONG *copied) = 0;
   9427 
   9428     virtual HRESULT STDMETHODCALLTYPE GetAverageFrameSize(
   9429         LONG *size) = 0;
   9430 
   9431 };
   9432 #ifdef __CRT_UUID_DECL
   9433 __CRT_UUID_DECL(IAMDroppedFrames, 0xc6e13344, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
   9434 #endif
   9435 #else
   9436 typedef struct IAMDroppedFramesVtbl {
   9437     BEGIN_INTERFACE
   9438 
   9439     /*** IUnknown methods ***/
   9440     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9441         IAMDroppedFrames *This,
   9442         REFIID riid,
   9443         void **ppvObject);
   9444 
   9445     ULONG (STDMETHODCALLTYPE *AddRef)(
   9446         IAMDroppedFrames *This);
   9447 
   9448     ULONG (STDMETHODCALLTYPE *Release)(
   9449         IAMDroppedFrames *This);
   9450 
   9451     /*** IAMDroppedFrames methods ***/
   9452     HRESULT (STDMETHODCALLTYPE *GetNumDropped)(
   9453         IAMDroppedFrames *This,
   9454         LONG *number);
   9455 
   9456     HRESULT (STDMETHODCALLTYPE *GetNumNotDropped)(
   9457         IAMDroppedFrames *This,
   9458         LONG *number);
   9459 
   9460     HRESULT (STDMETHODCALLTYPE *GetDroppedInfo)(
   9461         IAMDroppedFrames *This,
   9462         LONG size,
   9463         LONG *array,
   9464         LONG *copied);
   9465 
   9466     HRESULT (STDMETHODCALLTYPE *GetAverageFrameSize)(
   9467         IAMDroppedFrames *This,
   9468         LONG *size);
   9469 
   9470     END_INTERFACE
   9471 } IAMDroppedFramesVtbl;
   9472 
   9473 interface IAMDroppedFrames {
   9474     CONST_VTBL IAMDroppedFramesVtbl* lpVtbl;
   9475 };
   9476 
   9477 #ifdef COBJMACROS
   9478 #ifndef WIDL_C_INLINE_WRAPPERS
   9479 /*** IUnknown methods ***/
   9480 #define IAMDroppedFrames_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9481 #define IAMDroppedFrames_AddRef(This) (This)->lpVtbl->AddRef(This)
   9482 #define IAMDroppedFrames_Release(This) (This)->lpVtbl->Release(This)
   9483 /*** IAMDroppedFrames methods ***/
   9484 #define IAMDroppedFrames_GetNumDropped(This,number) (This)->lpVtbl->GetNumDropped(This,number)
   9485 #define IAMDroppedFrames_GetNumNotDropped(This,number) (This)->lpVtbl->GetNumNotDropped(This,number)
   9486 #define IAMDroppedFrames_GetDroppedInfo(This,size,array,copied) (This)->lpVtbl->GetDroppedInfo(This,size,array,copied)
   9487 #define IAMDroppedFrames_GetAverageFrameSize(This,size) (This)->lpVtbl->GetAverageFrameSize(This,size)
   9488 #else
   9489 /*** IUnknown methods ***/
   9490 static inline HRESULT IAMDroppedFrames_QueryInterface(IAMDroppedFrames* This,REFIID riid,void **ppvObject) {
   9491     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9492 }
   9493 static inline ULONG IAMDroppedFrames_AddRef(IAMDroppedFrames* This) {
   9494     return This->lpVtbl->AddRef(This);
   9495 }
   9496 static inline ULONG IAMDroppedFrames_Release(IAMDroppedFrames* This) {
   9497     return This->lpVtbl->Release(This);
   9498 }
   9499 /*** IAMDroppedFrames methods ***/
   9500 static inline HRESULT IAMDroppedFrames_GetNumDropped(IAMDroppedFrames* This,LONG *number) {
   9501     return This->lpVtbl->GetNumDropped(This,number);
   9502 }
   9503 static inline HRESULT IAMDroppedFrames_GetNumNotDropped(IAMDroppedFrames* This,LONG *number) {
   9504     return This->lpVtbl->GetNumNotDropped(This,number);
   9505 }
   9506 static inline HRESULT IAMDroppedFrames_GetDroppedInfo(IAMDroppedFrames* This,LONG size,LONG *array,LONG *copied) {
   9507     return This->lpVtbl->GetDroppedInfo(This,size,array,copied);
   9508 }
   9509 static inline HRESULT IAMDroppedFrames_GetAverageFrameSize(IAMDroppedFrames* This,LONG *size) {
   9510     return This->lpVtbl->GetAverageFrameSize(This,size);
   9511 }
   9512 #endif
   9513 #endif
   9514 
   9515 #endif
   9516 
   9517 
   9518 #endif  /* __IAMDroppedFrames_INTERFACE_DEFINED__ */
   9519 
   9520 /*****************************************************************************
   9521  * IAMLatency interface
   9522  */
   9523 #ifndef __IAMLatency_INTERFACE_DEFINED__
   9524 #define __IAMLatency_INTERFACE_DEFINED__
   9525 
   9526 DEFINE_GUID(IID_IAMLatency, 0x62ea93ba, 0xec62, 0x11d2, 0xb7,0x70, 0x00,0xc0,0x4f,0xb6,0xbd,0x3d);
   9527 #if defined(__cplusplus) && !defined(CINTERFACE)
   9528 MIDL_INTERFACE("62ea93ba-ec62-11d2-b770-00c04fb6bd3d")
   9529 IAMLatency : public IUnknown
   9530 {
   9531     virtual HRESULT STDMETHODCALLTYPE GetLatency(
   9532         REFERENCE_TIME *latency) = 0;
   9533 
   9534 };
   9535 #ifdef __CRT_UUID_DECL
   9536 __CRT_UUID_DECL(IAMLatency, 0x62ea93ba, 0xec62, 0x11d2, 0xb7,0x70, 0x00,0xc0,0x4f,0xb6,0xbd,0x3d)
   9537 #endif
   9538 #else
   9539 typedef struct IAMLatencyVtbl {
   9540     BEGIN_INTERFACE
   9541 
   9542     /*** IUnknown methods ***/
   9543     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9544         IAMLatency *This,
   9545         REFIID riid,
   9546         void **ppvObject);
   9547 
   9548     ULONG (STDMETHODCALLTYPE *AddRef)(
   9549         IAMLatency *This);
   9550 
   9551     ULONG (STDMETHODCALLTYPE *Release)(
   9552         IAMLatency *This);
   9553 
   9554     /*** IAMLatency methods ***/
   9555     HRESULT (STDMETHODCALLTYPE *GetLatency)(
   9556         IAMLatency *This,
   9557         REFERENCE_TIME *latency);
   9558 
   9559     END_INTERFACE
   9560 } IAMLatencyVtbl;
   9561 
   9562 interface IAMLatency {
   9563     CONST_VTBL IAMLatencyVtbl* lpVtbl;
   9564 };
   9565 
   9566 #ifdef COBJMACROS
   9567 #ifndef WIDL_C_INLINE_WRAPPERS
   9568 /*** IUnknown methods ***/
   9569 #define IAMLatency_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9570 #define IAMLatency_AddRef(This) (This)->lpVtbl->AddRef(This)
   9571 #define IAMLatency_Release(This) (This)->lpVtbl->Release(This)
   9572 /*** IAMLatency methods ***/
   9573 #define IAMLatency_GetLatency(This,latency) (This)->lpVtbl->GetLatency(This,latency)
   9574 #else
   9575 /*** IUnknown methods ***/
   9576 static inline HRESULT IAMLatency_QueryInterface(IAMLatency* This,REFIID riid,void **ppvObject) {
   9577     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9578 }
   9579 static inline ULONG IAMLatency_AddRef(IAMLatency* This) {
   9580     return This->lpVtbl->AddRef(This);
   9581 }
   9582 static inline ULONG IAMLatency_Release(IAMLatency* This) {
   9583     return This->lpVtbl->Release(This);
   9584 }
   9585 /*** IAMLatency methods ***/
   9586 static inline HRESULT IAMLatency_GetLatency(IAMLatency* This,REFERENCE_TIME *latency) {
   9587     return This->lpVtbl->GetLatency(This,latency);
   9588 }
   9589 #endif
   9590 #endif
   9591 
   9592 #endif
   9593 
   9594 
   9595 #endif  /* __IAMLatency_INTERFACE_DEFINED__ */
   9596 
   9597 /*****************************************************************************
   9598  * IAMPushSource interface
   9599  */
   9600 #ifndef __IAMPushSource_INTERFACE_DEFINED__
   9601 #define __IAMPushSource_INTERFACE_DEFINED__
   9602 
   9603 DEFINE_GUID(IID_IAMPushSource, 0xf185fe76, 0xe64e, 0x11d2, 0xb7,0x6e, 0x00,0xc0,0x4f,0xb6,0xbd,0x3d);
   9604 #if defined(__cplusplus) && !defined(CINTERFACE)
   9605 MIDL_INTERFACE("f185fe76-e64e-11d2-b76e-00c04fb6bd3d")
   9606 IAMPushSource : public IAMLatency
   9607 {
   9608     virtual HRESULT STDMETHODCALLTYPE GetPushSourceFlags(
   9609         ULONG *flags) = 0;
   9610 
   9611     virtual HRESULT STDMETHODCALLTYPE SetPushSourceFlags(
   9612         ULONG flags) = 0;
   9613 
   9614     virtual HRESULT STDMETHODCALLTYPE SetStreamOffset(
   9615         REFERENCE_TIME offset) = 0;
   9616 
   9617     virtual HRESULT STDMETHODCALLTYPE GetStreamOffset(
   9618         REFERENCE_TIME *offset) = 0;
   9619 
   9620     virtual HRESULT STDMETHODCALLTYPE GetMaxStreamOffset(
   9621         REFERENCE_TIME *offset) = 0;
   9622 
   9623     virtual HRESULT STDMETHODCALLTYPE SetMaxStreamOffset(
   9624         REFERENCE_TIME offset) = 0;
   9625 
   9626 };
   9627 #ifdef __CRT_UUID_DECL
   9628 __CRT_UUID_DECL(IAMPushSource, 0xf185fe76, 0xe64e, 0x11d2, 0xb7,0x6e, 0x00,0xc0,0x4f,0xb6,0xbd,0x3d)
   9629 #endif
   9630 #else
   9631 typedef struct IAMPushSourceVtbl {
   9632     BEGIN_INTERFACE
   9633 
   9634     /*** IUnknown methods ***/
   9635     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9636         IAMPushSource *This,
   9637         REFIID riid,
   9638         void **ppvObject);
   9639 
   9640     ULONG (STDMETHODCALLTYPE *AddRef)(
   9641         IAMPushSource *This);
   9642 
   9643     ULONG (STDMETHODCALLTYPE *Release)(
   9644         IAMPushSource *This);
   9645 
   9646     /*** IAMLatency methods ***/
   9647     HRESULT (STDMETHODCALLTYPE *GetLatency)(
   9648         IAMPushSource *This,
   9649         REFERENCE_TIME *latency);
   9650 
   9651     /*** IAMPushSource methods ***/
   9652     HRESULT (STDMETHODCALLTYPE *GetPushSourceFlags)(
   9653         IAMPushSource *This,
   9654         ULONG *flags);
   9655 
   9656     HRESULT (STDMETHODCALLTYPE *SetPushSourceFlags)(
   9657         IAMPushSource *This,
   9658         ULONG flags);
   9659 
   9660     HRESULT (STDMETHODCALLTYPE *SetStreamOffset)(
   9661         IAMPushSource *This,
   9662         REFERENCE_TIME offset);
   9663 
   9664     HRESULT (STDMETHODCALLTYPE *GetStreamOffset)(
   9665         IAMPushSource *This,
   9666         REFERENCE_TIME *offset);
   9667 
   9668     HRESULT (STDMETHODCALLTYPE *GetMaxStreamOffset)(
   9669         IAMPushSource *This,
   9670         REFERENCE_TIME *offset);
   9671 
   9672     HRESULT (STDMETHODCALLTYPE *SetMaxStreamOffset)(
   9673         IAMPushSource *This,
   9674         REFERENCE_TIME offset);
   9675 
   9676     END_INTERFACE
   9677 } IAMPushSourceVtbl;
   9678 
   9679 interface IAMPushSource {
   9680     CONST_VTBL IAMPushSourceVtbl* lpVtbl;
   9681 };
   9682 
   9683 #ifdef COBJMACROS
   9684 #ifndef WIDL_C_INLINE_WRAPPERS
   9685 /*** IUnknown methods ***/
   9686 #define IAMPushSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9687 #define IAMPushSource_AddRef(This) (This)->lpVtbl->AddRef(This)
   9688 #define IAMPushSource_Release(This) (This)->lpVtbl->Release(This)
   9689 /*** IAMLatency methods ***/
   9690 #define IAMPushSource_GetLatency(This,latency) (This)->lpVtbl->GetLatency(This,latency)
   9691 /*** IAMPushSource methods ***/
   9692 #define IAMPushSource_GetPushSourceFlags(This,flags) (This)->lpVtbl->GetPushSourceFlags(This,flags)
   9693 #define IAMPushSource_SetPushSourceFlags(This,flags) (This)->lpVtbl->SetPushSourceFlags(This,flags)
   9694 #define IAMPushSource_SetStreamOffset(This,offset) (This)->lpVtbl->SetStreamOffset(This,offset)
   9695 #define IAMPushSource_GetStreamOffset(This,offset) (This)->lpVtbl->GetStreamOffset(This,offset)
   9696 #define IAMPushSource_GetMaxStreamOffset(This,offset) (This)->lpVtbl->GetMaxStreamOffset(This,offset)
   9697 #define IAMPushSource_SetMaxStreamOffset(This,offset) (This)->lpVtbl->SetMaxStreamOffset(This,offset)
   9698 #else
   9699 /*** IUnknown methods ***/
   9700 static inline HRESULT IAMPushSource_QueryInterface(IAMPushSource* This,REFIID riid,void **ppvObject) {
   9701     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9702 }
   9703 static inline ULONG IAMPushSource_AddRef(IAMPushSource* This) {
   9704     return This->lpVtbl->AddRef(This);
   9705 }
   9706 static inline ULONG IAMPushSource_Release(IAMPushSource* This) {
   9707     return This->lpVtbl->Release(This);
   9708 }
   9709 /*** IAMLatency methods ***/
   9710 static inline HRESULT IAMPushSource_GetLatency(IAMPushSource* This,REFERENCE_TIME *latency) {
   9711     return This->lpVtbl->GetLatency(This,latency);
   9712 }
   9713 /*** IAMPushSource methods ***/
   9714 static inline HRESULT IAMPushSource_GetPushSourceFlags(IAMPushSource* This,ULONG *flags) {
   9715     return This->lpVtbl->GetPushSourceFlags(This,flags);
   9716 }
   9717 static inline HRESULT IAMPushSource_SetPushSourceFlags(IAMPushSource* This,ULONG flags) {
   9718     return This->lpVtbl->SetPushSourceFlags(This,flags);
   9719 }
   9720 static inline HRESULT IAMPushSource_SetStreamOffset(IAMPushSource* This,REFERENCE_TIME offset) {
   9721     return This->lpVtbl->SetStreamOffset(This,offset);
   9722 }
   9723 static inline HRESULT IAMPushSource_GetStreamOffset(IAMPushSource* This,REFERENCE_TIME *offset) {
   9724     return This->lpVtbl->GetStreamOffset(This,offset);
   9725 }
   9726 static inline HRESULT IAMPushSource_GetMaxStreamOffset(IAMPushSource* This,REFERENCE_TIME *offset) {
   9727     return This->lpVtbl->GetMaxStreamOffset(This,offset);
   9728 }
   9729 static inline HRESULT IAMPushSource_SetMaxStreamOffset(IAMPushSource* This,REFERENCE_TIME offset) {
   9730     return This->lpVtbl->SetMaxStreamOffset(This,offset);
   9731 }
   9732 #endif
   9733 #endif
   9734 
   9735 #endif
   9736 
   9737 
   9738 #endif  /* __IAMPushSource_INTERFACE_DEFINED__ */
   9739 
   9740 /*****************************************************************************
   9741  * IAMVideoCompression interface
   9742  */
   9743 #ifndef __IAMVideoCompression_INTERFACE_DEFINED__
   9744 #define __IAMVideoCompression_INTERFACE_DEFINED__
   9745 
   9746 DEFINE_GUID(IID_IAMVideoCompression, 0xc6e13343, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
   9747 #if defined(__cplusplus) && !defined(CINTERFACE)
   9748 MIDL_INTERFACE("c6e13343-30ac-11d0-a18c-00a0c9118956")
   9749 IAMVideoCompression : public IUnknown
   9750 {
   9751     virtual HRESULT STDMETHODCALLTYPE put_KeyFrameRate(
   9752         LONG frame_rate) = 0;
   9753 
   9754     virtual HRESULT STDMETHODCALLTYPE get_KeyFrameRate(
   9755         LONG *frame_rate) = 0;
   9756 
   9757     virtual HRESULT STDMETHODCALLTYPE put_PFramesPerKeyFrame(
   9758         LONG frame) = 0;
   9759 
   9760     virtual HRESULT STDMETHODCALLTYPE get_PFramesPerKeyFrame(
   9761         LONG *frame) = 0;
   9762 
   9763     virtual HRESULT STDMETHODCALLTYPE put_Quality(
   9764         double quality) = 0;
   9765 
   9766     virtual HRESULT STDMETHODCALLTYPE get_Quality(
   9767         double *quality) = 0;
   9768 
   9769     virtual HRESULT STDMETHODCALLTYPE put_WindowSize(
   9770         DWORDLONG size) = 0;
   9771 
   9772     virtual HRESULT STDMETHODCALLTYPE get_WindowSize(
   9773         DWORDLONG *size) = 0;
   9774 
   9775     virtual HRESULT STDMETHODCALLTYPE GetInfo(
   9776         LPWSTR version,
   9777         int *version_size,
   9778         LPWSTR description,
   9779         int *description_size,
   9780         LONG *frame_rate,
   9781         LONG *key,
   9782         double *quality,
   9783         LONG *capabilities) = 0;
   9784 
   9785     virtual HRESULT STDMETHODCALLTYPE OverrideKeyFrame(
   9786         LONG number) = 0;
   9787 
   9788     virtual HRESULT STDMETHODCALLTYPE OverrideFrameSize(
   9789         LONG number,
   9790         LONG size) = 0;
   9791 
   9792 };
   9793 #ifdef __CRT_UUID_DECL
   9794 __CRT_UUID_DECL(IAMVideoCompression, 0xc6e13343, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
   9795 #endif
   9796 #else
   9797 typedef struct IAMVideoCompressionVtbl {
   9798     BEGIN_INTERFACE
   9799 
   9800     /*** IUnknown methods ***/
   9801     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9802         IAMVideoCompression *This,
   9803         REFIID riid,
   9804         void **ppvObject);
   9805 
   9806     ULONG (STDMETHODCALLTYPE *AddRef)(
   9807         IAMVideoCompression *This);
   9808 
   9809     ULONG (STDMETHODCALLTYPE *Release)(
   9810         IAMVideoCompression *This);
   9811 
   9812     /*** IAMVideoCompression methods ***/
   9813     HRESULT (STDMETHODCALLTYPE *put_KeyFrameRate)(
   9814         IAMVideoCompression *This,
   9815         LONG frame_rate);
   9816 
   9817     HRESULT (STDMETHODCALLTYPE *get_KeyFrameRate)(
   9818         IAMVideoCompression *This,
   9819         LONG *frame_rate);
   9820 
   9821     HRESULT (STDMETHODCALLTYPE *put_PFramesPerKeyFrame)(
   9822         IAMVideoCompression *This,
   9823         LONG frame);
   9824 
   9825     HRESULT (STDMETHODCALLTYPE *get_PFramesPerKeyFrame)(
   9826         IAMVideoCompression *This,
   9827         LONG *frame);
   9828 
   9829     HRESULT (STDMETHODCALLTYPE *put_Quality)(
   9830         IAMVideoCompression *This,
   9831         double quality);
   9832 
   9833     HRESULT (STDMETHODCALLTYPE *get_Quality)(
   9834         IAMVideoCompression *This,
   9835         double *quality);
   9836 
   9837     HRESULT (STDMETHODCALLTYPE *put_WindowSize)(
   9838         IAMVideoCompression *This,
   9839         DWORDLONG size);
   9840 
   9841     HRESULT (STDMETHODCALLTYPE *get_WindowSize)(
   9842         IAMVideoCompression *This,
   9843         DWORDLONG *size);
   9844 
   9845     HRESULT (STDMETHODCALLTYPE *GetInfo)(
   9846         IAMVideoCompression *This,
   9847         LPWSTR version,
   9848         int *version_size,
   9849         LPWSTR description,
   9850         int *description_size,
   9851         LONG *frame_rate,
   9852         LONG *key,
   9853         double *quality,
   9854         LONG *capabilities);
   9855 
   9856     HRESULT (STDMETHODCALLTYPE *OverrideKeyFrame)(
   9857         IAMVideoCompression *This,
   9858         LONG number);
   9859 
   9860     HRESULT (STDMETHODCALLTYPE *OverrideFrameSize)(
   9861         IAMVideoCompression *This,
   9862         LONG number,
   9863         LONG size);
   9864 
   9865     END_INTERFACE
   9866 } IAMVideoCompressionVtbl;
   9867 
   9868 interface IAMVideoCompression {
   9869     CONST_VTBL IAMVideoCompressionVtbl* lpVtbl;
   9870 };
   9871 
   9872 #ifdef COBJMACROS
   9873 #ifndef WIDL_C_INLINE_WRAPPERS
   9874 /*** IUnknown methods ***/
   9875 #define IAMVideoCompression_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9876 #define IAMVideoCompression_AddRef(This) (This)->lpVtbl->AddRef(This)
   9877 #define IAMVideoCompression_Release(This) (This)->lpVtbl->Release(This)
   9878 /*** IAMVideoCompression methods ***/
   9879 #define IAMVideoCompression_put_KeyFrameRate(This,frame_rate) (This)->lpVtbl->put_KeyFrameRate(This,frame_rate)
   9880 #define IAMVideoCompression_get_KeyFrameRate(This,frame_rate) (This)->lpVtbl->get_KeyFrameRate(This,frame_rate)
   9881 #define IAMVideoCompression_put_PFramesPerKeyFrame(This,frame) (This)->lpVtbl->put_PFramesPerKeyFrame(This,frame)
   9882 #define IAMVideoCompression_get_PFramesPerKeyFrame(This,frame) (This)->lpVtbl->get_PFramesPerKeyFrame(This,frame)
   9883 #define IAMVideoCompression_put_Quality(This,quality) (This)->lpVtbl->put_Quality(This,quality)
   9884 #define IAMVideoCompression_get_Quality(This,quality) (This)->lpVtbl->get_Quality(This,quality)
   9885 #define IAMVideoCompression_put_WindowSize(This,size) (This)->lpVtbl->put_WindowSize(This,size)
   9886 #define IAMVideoCompression_get_WindowSize(This,size) (This)->lpVtbl->get_WindowSize(This,size)
   9887 #define IAMVideoCompression_GetInfo(This,version,version_size,description,description_size,frame_rate,key,quality,capabilities) (This)->lpVtbl->GetInfo(This,version,version_size,description,description_size,frame_rate,key,quality,capabilities)
   9888 #define IAMVideoCompression_OverrideKeyFrame(This,number) (This)->lpVtbl->OverrideKeyFrame(This,number)
   9889 #define IAMVideoCompression_OverrideFrameSize(This,number,size) (This)->lpVtbl->OverrideFrameSize(This,number,size)
   9890 #else
   9891 /*** IUnknown methods ***/
   9892 static inline HRESULT IAMVideoCompression_QueryInterface(IAMVideoCompression* This,REFIID riid,void **ppvObject) {
   9893     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9894 }
   9895 static inline ULONG IAMVideoCompression_AddRef(IAMVideoCompression* This) {
   9896     return This->lpVtbl->AddRef(This);
   9897 }
   9898 static inline ULONG IAMVideoCompression_Release(IAMVideoCompression* This) {
   9899     return This->lpVtbl->Release(This);
   9900 }
   9901 /*** IAMVideoCompression methods ***/
   9902 static inline HRESULT IAMVideoCompression_put_KeyFrameRate(IAMVideoCompression* This,LONG frame_rate) {
   9903     return This->lpVtbl->put_KeyFrameRate(This,frame_rate);
   9904 }
   9905 static inline HRESULT IAMVideoCompression_get_KeyFrameRate(IAMVideoCompression* This,LONG *frame_rate) {
   9906     return This->lpVtbl->get_KeyFrameRate(This,frame_rate);
   9907 }
   9908 static inline HRESULT IAMVideoCompression_put_PFramesPerKeyFrame(IAMVideoCompression* This,LONG frame) {
   9909     return This->lpVtbl->put_PFramesPerKeyFrame(This,frame);
   9910 }
   9911 static inline HRESULT IAMVideoCompression_get_PFramesPerKeyFrame(IAMVideoCompression* This,LONG *frame) {
   9912     return This->lpVtbl->get_PFramesPerKeyFrame(This,frame);
   9913 }
   9914 static inline HRESULT IAMVideoCompression_put_Quality(IAMVideoCompression* This,double quality) {
   9915     return This->lpVtbl->put_Quality(This,quality);
   9916 }
   9917 static inline HRESULT IAMVideoCompression_get_Quality(IAMVideoCompression* This,double *quality) {
   9918     return This->lpVtbl->get_Quality(This,quality);
   9919 }
   9920 static inline HRESULT IAMVideoCompression_put_WindowSize(IAMVideoCompression* This,DWORDLONG size) {
   9921     return This->lpVtbl->put_WindowSize(This,size);
   9922 }
   9923 static inline HRESULT IAMVideoCompression_get_WindowSize(IAMVideoCompression* This,DWORDLONG *size) {
   9924     return This->lpVtbl->get_WindowSize(This,size);
   9925 }
   9926 static inline HRESULT IAMVideoCompression_GetInfo(IAMVideoCompression* This,LPWSTR version,int *version_size,LPWSTR description,int *description_size,LONG *frame_rate,LONG *key,double *quality,LONG *capabilities) {
   9927     return This->lpVtbl->GetInfo(This,version,version_size,description,description_size,frame_rate,key,quality,capabilities);
   9928 }
   9929 static inline HRESULT IAMVideoCompression_OverrideKeyFrame(IAMVideoCompression* This,LONG number) {
   9930     return This->lpVtbl->OverrideKeyFrame(This,number);
   9931 }
   9932 static inline HRESULT IAMVideoCompression_OverrideFrameSize(IAMVideoCompression* This,LONG number,LONG size) {
   9933     return This->lpVtbl->OverrideFrameSize(This,number,size);
   9934 }
   9935 #endif
   9936 #endif
   9937 
   9938 #endif
   9939 
   9940 
   9941 #endif  /* __IAMVideoCompression_INTERFACE_DEFINED__ */
   9942 
   9943 /*****************************************************************************
   9944  * IAMCrossbar interface
   9945  */
   9946 #ifndef __IAMCrossbar_INTERFACE_DEFINED__
   9947 #define __IAMCrossbar_INTERFACE_DEFINED__
   9948 
   9949 DEFINE_GUID(IID_IAMCrossbar, 0xc6e13380, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
   9950 #if defined(__cplusplus) && !defined(CINTERFACE)
   9951 MIDL_INTERFACE("c6e13380-30ac-11d0-a18c-00a0c9118956")
   9952 IAMCrossbar : public IUnknown
   9953 {
   9954     virtual HRESULT STDMETHODCALLTYPE get_PinCounts(
   9955         LONG *output,
   9956         LONG *intput) = 0;
   9957 
   9958     virtual HRESULT STDMETHODCALLTYPE CanRoute(
   9959         LONG output,
   9960         LONG input) = 0;
   9961 
   9962     virtual HRESULT STDMETHODCALLTYPE Route(
   9963         LONG output,
   9964         LONG input) = 0;
   9965 
   9966     virtual HRESULT STDMETHODCALLTYPE get_IsRoutedTo(
   9967         LONG output,
   9968         LONG *input) = 0;
   9969 
   9970     virtual HRESULT STDMETHODCALLTYPE get_CrossbarPinInfo(
   9971         WINBOOL is_input,
   9972         LONG index,
   9973         LONG *related,
   9974         LONG *type) = 0;
   9975 
   9976 };
   9977 #ifdef __CRT_UUID_DECL
   9978 __CRT_UUID_DECL(IAMCrossbar, 0xc6e13380, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
   9979 #endif
   9980 #else
   9981 typedef struct IAMCrossbarVtbl {
   9982     BEGIN_INTERFACE
   9983 
   9984     /*** IUnknown methods ***/
   9985     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9986         IAMCrossbar *This,
   9987         REFIID riid,
   9988         void **ppvObject);
   9989 
   9990     ULONG (STDMETHODCALLTYPE *AddRef)(
   9991         IAMCrossbar *This);
   9992 
   9993     ULONG (STDMETHODCALLTYPE *Release)(
   9994         IAMCrossbar *This);
   9995 
   9996     /*** IAMCrossbar methods ***/
   9997     HRESULT (STDMETHODCALLTYPE *get_PinCounts)(
   9998         IAMCrossbar *This,
   9999         LONG *output,
  10000         LONG *intput);
  10001 
  10002     HRESULT (STDMETHODCALLTYPE *CanRoute)(
  10003         IAMCrossbar *This,
  10004         LONG output,
  10005         LONG input);
  10006 
  10007     HRESULT (STDMETHODCALLTYPE *Route)(
  10008         IAMCrossbar *This,
  10009         LONG output,
  10010         LONG input);
  10011 
  10012     HRESULT (STDMETHODCALLTYPE *get_IsRoutedTo)(
  10013         IAMCrossbar *This,
  10014         LONG output,
  10015         LONG *input);
  10016 
  10017     HRESULT (STDMETHODCALLTYPE *get_CrossbarPinInfo)(
  10018         IAMCrossbar *This,
  10019         WINBOOL is_input,
  10020         LONG index,
  10021         LONG *related,
  10022         LONG *type);
  10023 
  10024     END_INTERFACE
  10025 } IAMCrossbarVtbl;
  10026 
  10027 interface IAMCrossbar {
  10028     CONST_VTBL IAMCrossbarVtbl* lpVtbl;
  10029 };
  10030 
  10031 #ifdef COBJMACROS
  10032 #ifndef WIDL_C_INLINE_WRAPPERS
  10033 /*** IUnknown methods ***/
  10034 #define IAMCrossbar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10035 #define IAMCrossbar_AddRef(This) (This)->lpVtbl->AddRef(This)
  10036 #define IAMCrossbar_Release(This) (This)->lpVtbl->Release(This)
  10037 /*** IAMCrossbar methods ***/
  10038 #define IAMCrossbar_get_PinCounts(This,output,intput) (This)->lpVtbl->get_PinCounts(This,output,intput)
  10039 #define IAMCrossbar_CanRoute(This,output,input) (This)->lpVtbl->CanRoute(This,output,input)
  10040 #define IAMCrossbar_Route(This,output,input) (This)->lpVtbl->Route(This,output,input)
  10041 #define IAMCrossbar_get_IsRoutedTo(This,output,input) (This)->lpVtbl->get_IsRoutedTo(This,output,input)
  10042 #define IAMCrossbar_get_CrossbarPinInfo(This,is_input,index,related,type) (This)->lpVtbl->get_CrossbarPinInfo(This,is_input,index,related,type)
  10043 #else
  10044 /*** IUnknown methods ***/
  10045 static inline HRESULT IAMCrossbar_QueryInterface(IAMCrossbar* This,REFIID riid,void **ppvObject) {
  10046     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10047 }
  10048 static inline ULONG IAMCrossbar_AddRef(IAMCrossbar* This) {
  10049     return This->lpVtbl->AddRef(This);
  10050 }
  10051 static inline ULONG IAMCrossbar_Release(IAMCrossbar* This) {
  10052     return This->lpVtbl->Release(This);
  10053 }
  10054 /*** IAMCrossbar methods ***/
  10055 static inline HRESULT IAMCrossbar_get_PinCounts(IAMCrossbar* This,LONG *output,LONG *intput) {
  10056     return This->lpVtbl->get_PinCounts(This,output,intput);
  10057 }
  10058 static inline HRESULT IAMCrossbar_CanRoute(IAMCrossbar* This,LONG output,LONG input) {
  10059     return This->lpVtbl->CanRoute(This,output,input);
  10060 }
  10061 static inline HRESULT IAMCrossbar_Route(IAMCrossbar* This,LONG output,LONG input) {
  10062     return This->lpVtbl->Route(This,output,input);
  10063 }
  10064 static inline HRESULT IAMCrossbar_get_IsRoutedTo(IAMCrossbar* This,LONG output,LONG *input) {
  10065     return This->lpVtbl->get_IsRoutedTo(This,output,input);
  10066 }
  10067 static inline HRESULT IAMCrossbar_get_CrossbarPinInfo(IAMCrossbar* This,WINBOOL is_input,LONG index,LONG *related,LONG *type) {
  10068     return This->lpVtbl->get_CrossbarPinInfo(This,is_input,index,related,type);
  10069 }
  10070 #endif
  10071 #endif
  10072 
  10073 #endif
  10074 
  10075 
  10076 #endif  /* __IAMCrossbar_INTERFACE_DEFINED__ */
  10077 
  10078 typedef enum tagAMTunerEventType {
  10079     AMTUNER_EVENT_CHANGED = 0x1
  10080 } AMTunerEventType;
  10081 /*****************************************************************************
  10082  * IAMTunerNotification interface
  10083  */
  10084 #ifndef __IAMTunerNotification_INTERFACE_DEFINED__
  10085 #define __IAMTunerNotification_INTERFACE_DEFINED__
  10086 
  10087 DEFINE_GUID(IID_IAMTunerNotification, 0x211a8760, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39);
  10088 #if defined(__cplusplus) && !defined(CINTERFACE)
  10089 MIDL_INTERFACE("211a8760-03ac-11d1-8d13-00aa00bd8339")
  10090 IAMTunerNotification : public IUnknown
  10091 {
  10092     virtual HRESULT STDMETHODCALLTYPE OnEvent(
  10093         AMTunerEventType event) = 0;
  10094 
  10095 };
  10096 #ifdef __CRT_UUID_DECL
  10097 __CRT_UUID_DECL(IAMTunerNotification, 0x211a8760, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39)
  10098 #endif
  10099 #else
  10100 typedef struct IAMTunerNotificationVtbl {
  10101     BEGIN_INTERFACE
  10102 
  10103     /*** IUnknown methods ***/
  10104     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10105         IAMTunerNotification *This,
  10106         REFIID riid,
  10107         void **ppvObject);
  10108 
  10109     ULONG (STDMETHODCALLTYPE *AddRef)(
  10110         IAMTunerNotification *This);
  10111 
  10112     ULONG (STDMETHODCALLTYPE *Release)(
  10113         IAMTunerNotification *This);
  10114 
  10115     /*** IAMTunerNotification methods ***/
  10116     HRESULT (STDMETHODCALLTYPE *OnEvent)(
  10117         IAMTunerNotification *This,
  10118         AMTunerEventType event);
  10119 
  10120     END_INTERFACE
  10121 } IAMTunerNotificationVtbl;
  10122 
  10123 interface IAMTunerNotification {
  10124     CONST_VTBL IAMTunerNotificationVtbl* lpVtbl;
  10125 };
  10126 
  10127 #ifdef COBJMACROS
  10128 #ifndef WIDL_C_INLINE_WRAPPERS
  10129 /*** IUnknown methods ***/
  10130 #define IAMTunerNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10131 #define IAMTunerNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
  10132 #define IAMTunerNotification_Release(This) (This)->lpVtbl->Release(This)
  10133 /*** IAMTunerNotification methods ***/
  10134 #define IAMTunerNotification_OnEvent(This,event) (This)->lpVtbl->OnEvent(This,event)
  10135 #else
  10136 /*** IUnknown methods ***/
  10137 static inline HRESULT IAMTunerNotification_QueryInterface(IAMTunerNotification* This,REFIID riid,void **ppvObject) {
  10138     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10139 }
  10140 static inline ULONG IAMTunerNotification_AddRef(IAMTunerNotification* This) {
  10141     return This->lpVtbl->AddRef(This);
  10142 }
  10143 static inline ULONG IAMTunerNotification_Release(IAMTunerNotification* This) {
  10144     return This->lpVtbl->Release(This);
  10145 }
  10146 /*** IAMTunerNotification methods ***/
  10147 static inline HRESULT IAMTunerNotification_OnEvent(IAMTunerNotification* This,AMTunerEventType event) {
  10148     return This->lpVtbl->OnEvent(This,event);
  10149 }
  10150 #endif
  10151 #endif
  10152 
  10153 #endif
  10154 
  10155 
  10156 #endif  /* __IAMTunerNotification_INTERFACE_DEFINED__ */
  10157 
  10158 typedef enum tagAMTunerModeType {
  10159     AMTUNER_MODE_DEFAULT = 0x0,
  10160     AMTUNER_MODE_TV = 0x1,
  10161     AMTUNER_MODE_FM_RADIO = 0x2,
  10162     AMTUNER_MODE_AM_RADIO = 0x4,
  10163     AMTUNER_MODE_DSS = 0x8
  10164 } AMTunerModeType;
  10165 /*****************************************************************************
  10166  * IAMTuner interface
  10167  */
  10168 #ifndef __IAMTuner_INTERFACE_DEFINED__
  10169 #define __IAMTuner_INTERFACE_DEFINED__
  10170 
  10171 DEFINE_GUID(IID_IAMTuner, 0x211a8761, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39);
  10172 #if defined(__cplusplus) && !defined(CINTERFACE)
  10173 MIDL_INTERFACE("211a8761-03ac-11d1-8d13-00aa00bd8339")
  10174 IAMTuner : public IUnknown
  10175 {
  10176     virtual HRESULT STDMETHODCALLTYPE put_Channel(
  10177         LONG channel,
  10178         LONG video,
  10179         LONG audio) = 0;
  10180 
  10181     virtual HRESULT STDMETHODCALLTYPE get_Channel(
  10182         LONG *channel,
  10183         LONG *video,
  10184         LONG *audio) = 0;
  10185 
  10186     virtual HRESULT STDMETHODCALLTYPE ChannelMinMax(
  10187         LONG *min,
  10188         LONG *max) = 0;
  10189 
  10190     virtual HRESULT STDMETHODCALLTYPE put_CountryCode(
  10191         LONG country) = 0;
  10192 
  10193     virtual HRESULT STDMETHODCALLTYPE get_CountryCode(
  10194         LONG *country) = 0;
  10195 
  10196     virtual HRESULT STDMETHODCALLTYPE put_TuningSpace(
  10197         LONG tuning_space) = 0;
  10198 
  10199     virtual HRESULT STDMETHODCALLTYPE get_TuningSpace(
  10200         LONG *tuning_space) = 0;
  10201 
  10202     virtual HRESULT STDMETHODCALLTYPE Logon(
  10203         HANDLE user) = 0;
  10204 
  10205     virtual HRESULT STDMETHODCALLTYPE Logout(
  10206         ) = 0;
  10207 
  10208     virtual HRESULT STDMETHODCALLTYPE SignalPresent(
  10209         LONG *signal_strength) = 0;
  10210 
  10211     virtual HRESULT STDMETHODCALLTYPE put_Mode(
  10212         AMTunerModeType mode) = 0;
  10213 
  10214     virtual HRESULT STDMETHODCALLTYPE get_Mode(
  10215         AMTunerModeType *mode) = 0;
  10216 
  10217     virtual HRESULT STDMETHODCALLTYPE GetAvailableModes(
  10218         LONG *modes) = 0;
  10219 
  10220     virtual HRESULT STDMETHODCALLTYPE RegisterNotificationCallBack(
  10221         IAMTunerNotification *notify,
  10222         LONG events) = 0;
  10223 
  10224     virtual HRESULT STDMETHODCALLTYPE UnRegisterNotificationCallBack(
  10225         IAMTunerNotification *notify) = 0;
  10226 
  10227 };
  10228 #ifdef __CRT_UUID_DECL
  10229 __CRT_UUID_DECL(IAMTuner, 0x211a8761, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39)
  10230 #endif
  10231 #else
  10232 typedef struct IAMTunerVtbl {
  10233     BEGIN_INTERFACE
  10234 
  10235     /*** IUnknown methods ***/
  10236     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10237         IAMTuner *This,
  10238         REFIID riid,
  10239         void **ppvObject);
  10240 
  10241     ULONG (STDMETHODCALLTYPE *AddRef)(
  10242         IAMTuner *This);
  10243 
  10244     ULONG (STDMETHODCALLTYPE *Release)(
  10245         IAMTuner *This);
  10246 
  10247     /*** IAMTuner methods ***/
  10248     HRESULT (STDMETHODCALLTYPE *put_Channel)(
  10249         IAMTuner *This,
  10250         LONG channel,
  10251         LONG video,
  10252         LONG audio);
  10253 
  10254     HRESULT (STDMETHODCALLTYPE *get_Channel)(
  10255         IAMTuner *This,
  10256         LONG *channel,
  10257         LONG *video,
  10258         LONG *audio);
  10259 
  10260     HRESULT (STDMETHODCALLTYPE *ChannelMinMax)(
  10261         IAMTuner *This,
  10262         LONG *min,
  10263         LONG *max);
  10264 
  10265     HRESULT (STDMETHODCALLTYPE *put_CountryCode)(
  10266         IAMTuner *This,
  10267         LONG country);
  10268 
  10269     HRESULT (STDMETHODCALLTYPE *get_CountryCode)(
  10270         IAMTuner *This,
  10271         LONG *country);
  10272 
  10273     HRESULT (STDMETHODCALLTYPE *put_TuningSpace)(
  10274         IAMTuner *This,
  10275         LONG tuning_space);
  10276 
  10277     HRESULT (STDMETHODCALLTYPE *get_TuningSpace)(
  10278         IAMTuner *This,
  10279         LONG *tuning_space);
  10280 
  10281     HRESULT (STDMETHODCALLTYPE *Logon)(
  10282         IAMTuner *This,
  10283         HANDLE user);
  10284 
  10285     HRESULT (STDMETHODCALLTYPE *Logout)(
  10286         IAMTuner *This);
  10287 
  10288     HRESULT (STDMETHODCALLTYPE *SignalPresent)(
  10289         IAMTuner *This,
  10290         LONG *signal_strength);
  10291 
  10292     HRESULT (STDMETHODCALLTYPE *put_Mode)(
  10293         IAMTuner *This,
  10294         AMTunerModeType mode);
  10295 
  10296     HRESULT (STDMETHODCALLTYPE *get_Mode)(
  10297         IAMTuner *This,
  10298         AMTunerModeType *mode);
  10299 
  10300     HRESULT (STDMETHODCALLTYPE *GetAvailableModes)(
  10301         IAMTuner *This,
  10302         LONG *modes);
  10303 
  10304     HRESULT (STDMETHODCALLTYPE *RegisterNotificationCallBack)(
  10305         IAMTuner *This,
  10306         IAMTunerNotification *notify,
  10307         LONG events);
  10308 
  10309     HRESULT (STDMETHODCALLTYPE *UnRegisterNotificationCallBack)(
  10310         IAMTuner *This,
  10311         IAMTunerNotification *notify);
  10312 
  10313     END_INTERFACE
  10314 } IAMTunerVtbl;
  10315 
  10316 interface IAMTuner {
  10317     CONST_VTBL IAMTunerVtbl* lpVtbl;
  10318 };
  10319 
  10320 #ifdef COBJMACROS
  10321 #ifndef WIDL_C_INLINE_WRAPPERS
  10322 /*** IUnknown methods ***/
  10323 #define IAMTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10324 #define IAMTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
  10325 #define IAMTuner_Release(This) (This)->lpVtbl->Release(This)
  10326 /*** IAMTuner methods ***/
  10327 #define IAMTuner_put_Channel(This,channel,video,audio) (This)->lpVtbl->put_Channel(This,channel,video,audio)
  10328 #define IAMTuner_get_Channel(This,channel,video,audio) (This)->lpVtbl->get_Channel(This,channel,video,audio)
  10329 #define IAMTuner_ChannelMinMax(This,min,max) (This)->lpVtbl->ChannelMinMax(This,min,max)
  10330 #define IAMTuner_put_CountryCode(This,country) (This)->lpVtbl->put_CountryCode(This,country)
  10331 #define IAMTuner_get_CountryCode(This,country) (This)->lpVtbl->get_CountryCode(This,country)
  10332 #define IAMTuner_put_TuningSpace(This,tuning_space) (This)->lpVtbl->put_TuningSpace(This,tuning_space)
  10333 #define IAMTuner_get_TuningSpace(This,tuning_space) (This)->lpVtbl->get_TuningSpace(This,tuning_space)
  10334 #define IAMTuner_Logon(This,user) (This)->lpVtbl->Logon(This,user)
  10335 #define IAMTuner_Logout(This) (This)->lpVtbl->Logout(This)
  10336 #define IAMTuner_SignalPresent(This,signal_strength) (This)->lpVtbl->SignalPresent(This,signal_strength)
  10337 #define IAMTuner_put_Mode(This,mode) (This)->lpVtbl->put_Mode(This,mode)
  10338 #define IAMTuner_get_Mode(This,mode) (This)->lpVtbl->get_Mode(This,mode)
  10339 #define IAMTuner_GetAvailableModes(This,modes) (This)->lpVtbl->GetAvailableModes(This,modes)
  10340 #define IAMTuner_RegisterNotificationCallBack(This,notify,events) (This)->lpVtbl->RegisterNotificationCallBack(This,notify,events)
  10341 #define IAMTuner_UnRegisterNotificationCallBack(This,notify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,notify)
  10342 #else
  10343 /*** IUnknown methods ***/
  10344 static inline HRESULT IAMTuner_QueryInterface(IAMTuner* This,REFIID riid,void **ppvObject) {
  10345     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10346 }
  10347 static inline ULONG IAMTuner_AddRef(IAMTuner* This) {
  10348     return This->lpVtbl->AddRef(This);
  10349 }
  10350 static inline ULONG IAMTuner_Release(IAMTuner* This) {
  10351     return This->lpVtbl->Release(This);
  10352 }
  10353 /*** IAMTuner methods ***/
  10354 static inline HRESULT IAMTuner_put_Channel(IAMTuner* This,LONG channel,LONG video,LONG audio) {
  10355     return This->lpVtbl->put_Channel(This,channel,video,audio);
  10356 }
  10357 static inline HRESULT IAMTuner_get_Channel(IAMTuner* This,LONG *channel,LONG *video,LONG *audio) {
  10358     return This->lpVtbl->get_Channel(This,channel,video,audio);
  10359 }
  10360 static inline HRESULT IAMTuner_ChannelMinMax(IAMTuner* This,LONG *min,LONG *max) {
  10361     return This->lpVtbl->ChannelMinMax(This,min,max);
  10362 }
  10363 static inline HRESULT IAMTuner_put_CountryCode(IAMTuner* This,LONG country) {
  10364     return This->lpVtbl->put_CountryCode(This,country);
  10365 }
  10366 static inline HRESULT IAMTuner_get_CountryCode(IAMTuner* This,LONG *country) {
  10367     return This->lpVtbl->get_CountryCode(This,country);
  10368 }
  10369 static inline HRESULT IAMTuner_put_TuningSpace(IAMTuner* This,LONG tuning_space) {
  10370     return This->lpVtbl->put_TuningSpace(This,tuning_space);
  10371 }
  10372 static inline HRESULT IAMTuner_get_TuningSpace(IAMTuner* This,LONG *tuning_space) {
  10373     return This->lpVtbl->get_TuningSpace(This,tuning_space);
  10374 }
  10375 static inline HRESULT IAMTuner_Logon(IAMTuner* This,HANDLE user) {
  10376     return This->lpVtbl->Logon(This,user);
  10377 }
  10378 static inline HRESULT IAMTuner_Logout(IAMTuner* This) {
  10379     return This->lpVtbl->Logout(This);
  10380 }
  10381 static inline HRESULT IAMTuner_SignalPresent(IAMTuner* This,LONG *signal_strength) {
  10382     return This->lpVtbl->SignalPresent(This,signal_strength);
  10383 }
  10384 static inline HRESULT IAMTuner_put_Mode(IAMTuner* This,AMTunerModeType mode) {
  10385     return This->lpVtbl->put_Mode(This,mode);
  10386 }
  10387 static inline HRESULT IAMTuner_get_Mode(IAMTuner* This,AMTunerModeType *mode) {
  10388     return This->lpVtbl->get_Mode(This,mode);
  10389 }
  10390 static inline HRESULT IAMTuner_GetAvailableModes(IAMTuner* This,LONG *modes) {
  10391     return This->lpVtbl->GetAvailableModes(This,modes);
  10392 }
  10393 static inline HRESULT IAMTuner_RegisterNotificationCallBack(IAMTuner* This,IAMTunerNotification *notify,LONG events) {
  10394     return This->lpVtbl->RegisterNotificationCallBack(This,notify,events);
  10395 }
  10396 static inline HRESULT IAMTuner_UnRegisterNotificationCallBack(IAMTuner* This,IAMTunerNotification *notify) {
  10397     return This->lpVtbl->UnRegisterNotificationCallBack(This,notify);
  10398 }
  10399 #endif
  10400 #endif
  10401 
  10402 #endif
  10403 
  10404 
  10405 #endif  /* __IAMTuner_INTERFACE_DEFINED__ */
  10406 
  10407 /*****************************************************************************
  10408  * IAMTVTuner interface
  10409  */
  10410 #ifndef __IAMTVTuner_INTERFACE_DEFINED__
  10411 #define __IAMTVTuner_INTERFACE_DEFINED__
  10412 
  10413 DEFINE_GUID(IID_IAMTVTuner, 0x211a8766, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39);
  10414 #if defined(__cplusplus) && !defined(CINTERFACE)
  10415 MIDL_INTERFACE("211a8766-03ac-11d1-8d13-00aa00bd8339")
  10416 IAMTVTuner : public IAMTuner
  10417 {
  10418     virtual HRESULT STDMETHODCALLTYPE get_AvailableTVFormats(
  10419         LONG *standard) = 0;
  10420 
  10421     virtual HRESULT STDMETHODCALLTYPE get_TVFormat(
  10422         LONG *standard) = 0;
  10423 
  10424     virtual HRESULT STDMETHODCALLTYPE AutoTune(
  10425         LONG channel,
  10426         LONG *signal) = 0;
  10427 
  10428     virtual HRESULT STDMETHODCALLTYPE StoreAutoTune(
  10429         ) = 0;
  10430 
  10431     virtual HRESULT STDMETHODCALLTYPE get_NumInputConnections(
  10432         LONG *number) = 0;
  10433 
  10434     virtual HRESULT STDMETHODCALLTYPE put_InputType(
  10435         LONG index,
  10436         TunerInputType type) = 0;
  10437 
  10438     virtual HRESULT STDMETHODCALLTYPE get_InputType(
  10439         LONG index,
  10440         TunerInputType *type) = 0;
  10441 
  10442     virtual HRESULT STDMETHODCALLTYPE put_ConnectInput(
  10443         LONG index) = 0;
  10444 
  10445     virtual HRESULT STDMETHODCALLTYPE get_ConnectInput(
  10446         LONG *index) = 0;
  10447 
  10448     virtual HRESULT STDMETHODCALLTYPE get_VideoFrequency(
  10449         LONG *freq) = 0;
  10450 
  10451     virtual HRESULT STDMETHODCALLTYPE get_AudioFrequency(
  10452         LONG *freq) = 0;
  10453 
  10454 };
  10455 #ifdef __CRT_UUID_DECL
  10456 __CRT_UUID_DECL(IAMTVTuner, 0x211a8766, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39)
  10457 #endif
  10458 #else
  10459 typedef struct IAMTVTunerVtbl {
  10460     BEGIN_INTERFACE
  10461 
  10462     /*** IUnknown methods ***/
  10463     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10464         IAMTVTuner *This,
  10465         REFIID riid,
  10466         void **ppvObject);
  10467 
  10468     ULONG (STDMETHODCALLTYPE *AddRef)(
  10469         IAMTVTuner *This);
  10470 
  10471     ULONG (STDMETHODCALLTYPE *Release)(
  10472         IAMTVTuner *This);
  10473 
  10474     /*** IAMTuner methods ***/
  10475     HRESULT (STDMETHODCALLTYPE *put_Channel)(
  10476         IAMTVTuner *This,
  10477         LONG channel,
  10478         LONG video,
  10479         LONG audio);
  10480 
  10481     HRESULT (STDMETHODCALLTYPE *get_Channel)(
  10482         IAMTVTuner *This,
  10483         LONG *channel,
  10484         LONG *video,
  10485         LONG *audio);
  10486 
  10487     HRESULT (STDMETHODCALLTYPE *ChannelMinMax)(
  10488         IAMTVTuner *This,
  10489         LONG *min,
  10490         LONG *max);
  10491 
  10492     HRESULT (STDMETHODCALLTYPE *put_CountryCode)(
  10493         IAMTVTuner *This,
  10494         LONG country);
  10495 
  10496     HRESULT (STDMETHODCALLTYPE *get_CountryCode)(
  10497         IAMTVTuner *This,
  10498         LONG *country);
  10499 
  10500     HRESULT (STDMETHODCALLTYPE *put_TuningSpace)(
  10501         IAMTVTuner *This,
  10502         LONG tuning_space);
  10503 
  10504     HRESULT (STDMETHODCALLTYPE *get_TuningSpace)(
  10505         IAMTVTuner *This,
  10506         LONG *tuning_space);
  10507 
  10508     HRESULT (STDMETHODCALLTYPE *Logon)(
  10509         IAMTVTuner *This,
  10510         HANDLE user);
  10511 
  10512     HRESULT (STDMETHODCALLTYPE *Logout)(
  10513         IAMTVTuner *This);
  10514 
  10515     HRESULT (STDMETHODCALLTYPE *SignalPresent)(
  10516         IAMTVTuner *This,
  10517         LONG *signal_strength);
  10518 
  10519     HRESULT (STDMETHODCALLTYPE *put_Mode)(
  10520         IAMTVTuner *This,
  10521         AMTunerModeType mode);
  10522 
  10523     HRESULT (STDMETHODCALLTYPE *get_Mode)(
  10524         IAMTVTuner *This,
  10525         AMTunerModeType *mode);
  10526 
  10527     HRESULT (STDMETHODCALLTYPE *GetAvailableModes)(
  10528         IAMTVTuner *This,
  10529         LONG *modes);
  10530 
  10531     HRESULT (STDMETHODCALLTYPE *RegisterNotificationCallBack)(
  10532         IAMTVTuner *This,
  10533         IAMTunerNotification *notify,
  10534         LONG events);
  10535 
  10536     HRESULT (STDMETHODCALLTYPE *UnRegisterNotificationCallBack)(
  10537         IAMTVTuner *This,
  10538         IAMTunerNotification *notify);
  10539 
  10540     /*** IAMTVTuner methods ***/
  10541     HRESULT (STDMETHODCALLTYPE *get_AvailableTVFormats)(
  10542         IAMTVTuner *This,
  10543         LONG *standard);
  10544 
  10545     HRESULT (STDMETHODCALLTYPE *get_TVFormat)(
  10546         IAMTVTuner *This,
  10547         LONG *standard);
  10548 
  10549     HRESULT (STDMETHODCALLTYPE *AutoTune)(
  10550         IAMTVTuner *This,
  10551         LONG channel,
  10552         LONG *signal);
  10553 
  10554     HRESULT (STDMETHODCALLTYPE *StoreAutoTune)(
  10555         IAMTVTuner *This);
  10556 
  10557     HRESULT (STDMETHODCALLTYPE *get_NumInputConnections)(
  10558         IAMTVTuner *This,
  10559         LONG *number);
  10560 
  10561     HRESULT (STDMETHODCALLTYPE *put_InputType)(
  10562         IAMTVTuner *This,
  10563         LONG index,
  10564         TunerInputType type);
  10565 
  10566     HRESULT (STDMETHODCALLTYPE *get_InputType)(
  10567         IAMTVTuner *This,
  10568         LONG index,
  10569         TunerInputType *type);
  10570 
  10571     HRESULT (STDMETHODCALLTYPE *put_ConnectInput)(
  10572         IAMTVTuner *This,
  10573         LONG index);
  10574 
  10575     HRESULT (STDMETHODCALLTYPE *get_ConnectInput)(
  10576         IAMTVTuner *This,
  10577         LONG *index);
  10578 
  10579     HRESULT (STDMETHODCALLTYPE *get_VideoFrequency)(
  10580         IAMTVTuner *This,
  10581         LONG *freq);
  10582 
  10583     HRESULT (STDMETHODCALLTYPE *get_AudioFrequency)(
  10584         IAMTVTuner *This,
  10585         LONG *freq);
  10586 
  10587     END_INTERFACE
  10588 } IAMTVTunerVtbl;
  10589 
  10590 interface IAMTVTuner {
  10591     CONST_VTBL IAMTVTunerVtbl* lpVtbl;
  10592 };
  10593 
  10594 #ifdef COBJMACROS
  10595 #ifndef WIDL_C_INLINE_WRAPPERS
  10596 /*** IUnknown methods ***/
  10597 #define IAMTVTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10598 #define IAMTVTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
  10599 #define IAMTVTuner_Release(This) (This)->lpVtbl->Release(This)
  10600 /*** IAMTuner methods ***/
  10601 #define IAMTVTuner_put_Channel(This,channel,video,audio) (This)->lpVtbl->put_Channel(This,channel,video,audio)
  10602 #define IAMTVTuner_get_Channel(This,channel,video,audio) (This)->lpVtbl->get_Channel(This,channel,video,audio)
  10603 #define IAMTVTuner_ChannelMinMax(This,min,max) (This)->lpVtbl->ChannelMinMax(This,min,max)
  10604 #define IAMTVTuner_put_CountryCode(This,country) (This)->lpVtbl->put_CountryCode(This,country)
  10605 #define IAMTVTuner_get_CountryCode(This,country) (This)->lpVtbl->get_CountryCode(This,country)
  10606 #define IAMTVTuner_put_TuningSpace(This,tuning_space) (This)->lpVtbl->put_TuningSpace(This,tuning_space)
  10607 #define IAMTVTuner_get_TuningSpace(This,tuning_space) (This)->lpVtbl->get_TuningSpace(This,tuning_space)
  10608 #define IAMTVTuner_Logon(This,user) (This)->lpVtbl->Logon(This,user)
  10609 #define IAMTVTuner_Logout(This) (This)->lpVtbl->Logout(This)
  10610 #define IAMTVTuner_SignalPresent(This,signal_strength) (This)->lpVtbl->SignalPresent(This,signal_strength)
  10611 #define IAMTVTuner_put_Mode(This,mode) (This)->lpVtbl->put_Mode(This,mode)
  10612 #define IAMTVTuner_get_Mode(This,mode) (This)->lpVtbl->get_Mode(This,mode)
  10613 #define IAMTVTuner_GetAvailableModes(This,modes) (This)->lpVtbl->GetAvailableModes(This,modes)
  10614 #define IAMTVTuner_RegisterNotificationCallBack(This,notify,events) (This)->lpVtbl->RegisterNotificationCallBack(This,notify,events)
  10615 #define IAMTVTuner_UnRegisterNotificationCallBack(This,notify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,notify)
  10616 /*** IAMTVTuner methods ***/
  10617 #define IAMTVTuner_get_AvailableTVFormats(This,standard) (This)->lpVtbl->get_AvailableTVFormats(This,standard)
  10618 #define IAMTVTuner_get_TVFormat(This,standard) (This)->lpVtbl->get_TVFormat(This,standard)
  10619 #define IAMTVTuner_AutoTune(This,channel,signal) (This)->lpVtbl->AutoTune(This,channel,signal)
  10620 #define IAMTVTuner_StoreAutoTune(This) (This)->lpVtbl->StoreAutoTune(This)
  10621 #define IAMTVTuner_get_NumInputConnections(This,number) (This)->lpVtbl->get_NumInputConnections(This,number)
  10622 #define IAMTVTuner_put_InputType(This,index,type) (This)->lpVtbl->put_InputType(This,index,type)
  10623 #define IAMTVTuner_get_InputType(This,index,type) (This)->lpVtbl->get_InputType(This,index,type)
  10624 #define IAMTVTuner_put_ConnectInput(This,index) (This)->lpVtbl->put_ConnectInput(This,index)
  10625 #define IAMTVTuner_get_ConnectInput(This,index) (This)->lpVtbl->get_ConnectInput(This,index)
  10626 #define IAMTVTuner_get_VideoFrequency(This,freq) (This)->lpVtbl->get_VideoFrequency(This,freq)
  10627 #define IAMTVTuner_get_AudioFrequency(This,freq) (This)->lpVtbl->get_AudioFrequency(This,freq)
  10628 #else
  10629 /*** IUnknown methods ***/
  10630 static inline HRESULT IAMTVTuner_QueryInterface(IAMTVTuner* This,REFIID riid,void **ppvObject) {
  10631     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10632 }
  10633 static inline ULONG IAMTVTuner_AddRef(IAMTVTuner* This) {
  10634     return This->lpVtbl->AddRef(This);
  10635 }
  10636 static inline ULONG IAMTVTuner_Release(IAMTVTuner* This) {
  10637     return This->lpVtbl->Release(This);
  10638 }
  10639 /*** IAMTuner methods ***/
  10640 static inline HRESULT IAMTVTuner_put_Channel(IAMTVTuner* This,LONG channel,LONG video,LONG audio) {
  10641     return This->lpVtbl->put_Channel(This,channel,video,audio);
  10642 }
  10643 static inline HRESULT IAMTVTuner_get_Channel(IAMTVTuner* This,LONG *channel,LONG *video,LONG *audio) {
  10644     return This->lpVtbl->get_Channel(This,channel,video,audio);
  10645 }
  10646 static inline HRESULT IAMTVTuner_ChannelMinMax(IAMTVTuner* This,LONG *min,LONG *max) {
  10647     return This->lpVtbl->ChannelMinMax(This,min,max);
  10648 }
  10649 static inline HRESULT IAMTVTuner_put_CountryCode(IAMTVTuner* This,LONG country) {
  10650     return This->lpVtbl->put_CountryCode(This,country);
  10651 }
  10652 static inline HRESULT IAMTVTuner_get_CountryCode(IAMTVTuner* This,LONG *country) {
  10653     return This->lpVtbl->get_CountryCode(This,country);
  10654 }
  10655 static inline HRESULT IAMTVTuner_put_TuningSpace(IAMTVTuner* This,LONG tuning_space) {
  10656     return This->lpVtbl->put_TuningSpace(This,tuning_space);
  10657 }
  10658 static inline HRESULT IAMTVTuner_get_TuningSpace(IAMTVTuner* This,LONG *tuning_space) {
  10659     return This->lpVtbl->get_TuningSpace(This,tuning_space);
  10660 }
  10661 static inline HRESULT IAMTVTuner_Logon(IAMTVTuner* This,HANDLE user) {
  10662     return This->lpVtbl->Logon(This,user);
  10663 }
  10664 static inline HRESULT IAMTVTuner_Logout(IAMTVTuner* This) {
  10665     return This->lpVtbl->Logout(This);
  10666 }
  10667 static inline HRESULT IAMTVTuner_SignalPresent(IAMTVTuner* This,LONG *signal_strength) {
  10668     return This->lpVtbl->SignalPresent(This,signal_strength);
  10669 }
  10670 static inline HRESULT IAMTVTuner_put_Mode(IAMTVTuner* This,AMTunerModeType mode) {
  10671     return This->lpVtbl->put_Mode(This,mode);
  10672 }
  10673 static inline HRESULT IAMTVTuner_get_Mode(IAMTVTuner* This,AMTunerModeType *mode) {
  10674     return This->lpVtbl->get_Mode(This,mode);
  10675 }
  10676 static inline HRESULT IAMTVTuner_GetAvailableModes(IAMTVTuner* This,LONG *modes) {
  10677     return This->lpVtbl->GetAvailableModes(This,modes);
  10678 }
  10679 static inline HRESULT IAMTVTuner_RegisterNotificationCallBack(IAMTVTuner* This,IAMTunerNotification *notify,LONG events) {
  10680     return This->lpVtbl->RegisterNotificationCallBack(This,notify,events);
  10681 }
  10682 static inline HRESULT IAMTVTuner_UnRegisterNotificationCallBack(IAMTVTuner* This,IAMTunerNotification *notify) {
  10683     return This->lpVtbl->UnRegisterNotificationCallBack(This,notify);
  10684 }
  10685 /*** IAMTVTuner methods ***/
  10686 static inline HRESULT IAMTVTuner_get_AvailableTVFormats(IAMTVTuner* This,LONG *standard) {
  10687     return This->lpVtbl->get_AvailableTVFormats(This,standard);
  10688 }
  10689 static inline HRESULT IAMTVTuner_get_TVFormat(IAMTVTuner* This,LONG *standard) {
  10690     return This->lpVtbl->get_TVFormat(This,standard);
  10691 }
  10692 static inline HRESULT IAMTVTuner_AutoTune(IAMTVTuner* This,LONG channel,LONG *signal) {
  10693     return This->lpVtbl->AutoTune(This,channel,signal);
  10694 }
  10695 static inline HRESULT IAMTVTuner_StoreAutoTune(IAMTVTuner* This) {
  10696     return This->lpVtbl->StoreAutoTune(This);
  10697 }
  10698 static inline HRESULT IAMTVTuner_get_NumInputConnections(IAMTVTuner* This,LONG *number) {
  10699     return This->lpVtbl->get_NumInputConnections(This,number);
  10700 }
  10701 static inline HRESULT IAMTVTuner_put_InputType(IAMTVTuner* This,LONG index,TunerInputType type) {
  10702     return This->lpVtbl->put_InputType(This,index,type);
  10703 }
  10704 static inline HRESULT IAMTVTuner_get_InputType(IAMTVTuner* This,LONG index,TunerInputType *type) {
  10705     return This->lpVtbl->get_InputType(This,index,type);
  10706 }
  10707 static inline HRESULT IAMTVTuner_put_ConnectInput(IAMTVTuner* This,LONG index) {
  10708     return This->lpVtbl->put_ConnectInput(This,index);
  10709 }
  10710 static inline HRESULT IAMTVTuner_get_ConnectInput(IAMTVTuner* This,LONG *index) {
  10711     return This->lpVtbl->get_ConnectInput(This,index);
  10712 }
  10713 static inline HRESULT IAMTVTuner_get_VideoFrequency(IAMTVTuner* This,LONG *freq) {
  10714     return This->lpVtbl->get_VideoFrequency(This,freq);
  10715 }
  10716 static inline HRESULT IAMTVTuner_get_AudioFrequency(IAMTVTuner* This,LONG *freq) {
  10717     return This->lpVtbl->get_AudioFrequency(This,freq);
  10718 }
  10719 #endif
  10720 #endif
  10721 
  10722 #endif
  10723 
  10724 
  10725 #endif  /* __IAMTVTuner_INTERFACE_DEFINED__ */
  10726 
  10727 /*****************************************************************************
  10728  * IVideoFrameStep interface
  10729  */
  10730 #ifndef __IVideoFrameStep_INTERFACE_DEFINED__
  10731 #define __IVideoFrameStep_INTERFACE_DEFINED__
  10732 
  10733 DEFINE_GUID(IID_IVideoFrameStep, 0xe46a9787, 0x2b71, 0x444d, 0xa4,0xb5, 0x1f,0xab,0x7b,0x70,0x8d,0x6a);
  10734 #if defined(__cplusplus) && !defined(CINTERFACE)
  10735 MIDL_INTERFACE("e46a9787-2b71-444d-a4b5-1fab7b708d6a")
  10736 IVideoFrameStep : public IUnknown
  10737 {
  10738     virtual HRESULT STDMETHODCALLTYPE Step(
  10739         DWORD frame_count,
  10740         IUnknown *filter) = 0;
  10741 
  10742     virtual HRESULT STDMETHODCALLTYPE CanStep(
  10743         LONG multiple,
  10744         IUnknown *filter) = 0;
  10745 
  10746     virtual HRESULT STDMETHODCALLTYPE CancelStep(
  10747         ) = 0;
  10748 
  10749 };
  10750 #ifdef __CRT_UUID_DECL
  10751 __CRT_UUID_DECL(IVideoFrameStep, 0xe46a9787, 0x2b71, 0x444d, 0xa4,0xb5, 0x1f,0xab,0x7b,0x70,0x8d,0x6a)
  10752 #endif
  10753 #else
  10754 typedef struct IVideoFrameStepVtbl {
  10755     BEGIN_INTERFACE
  10756 
  10757     /*** IUnknown methods ***/
  10758     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10759         IVideoFrameStep *This,
  10760         REFIID riid,
  10761         void **ppvObject);
  10762 
  10763     ULONG (STDMETHODCALLTYPE *AddRef)(
  10764         IVideoFrameStep *This);
  10765 
  10766     ULONG (STDMETHODCALLTYPE *Release)(
  10767         IVideoFrameStep *This);
  10768 
  10769     /*** IVideoFrameStep methods ***/
  10770     HRESULT (STDMETHODCALLTYPE *Step)(
  10771         IVideoFrameStep *This,
  10772         DWORD frame_count,
  10773         IUnknown *filter);
  10774 
  10775     HRESULT (STDMETHODCALLTYPE *CanStep)(
  10776         IVideoFrameStep *This,
  10777         LONG multiple,
  10778         IUnknown *filter);
  10779 
  10780     HRESULT (STDMETHODCALLTYPE *CancelStep)(
  10781         IVideoFrameStep *This);
  10782 
  10783     END_INTERFACE
  10784 } IVideoFrameStepVtbl;
  10785 
  10786 interface IVideoFrameStep {
  10787     CONST_VTBL IVideoFrameStepVtbl* lpVtbl;
  10788 };
  10789 
  10790 #ifdef COBJMACROS
  10791 #ifndef WIDL_C_INLINE_WRAPPERS
  10792 /*** IUnknown methods ***/
  10793 #define IVideoFrameStep_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10794 #define IVideoFrameStep_AddRef(This) (This)->lpVtbl->AddRef(This)
  10795 #define IVideoFrameStep_Release(This) (This)->lpVtbl->Release(This)
  10796 /*** IVideoFrameStep methods ***/
  10797 #define IVideoFrameStep_Step(This,frame_count,filter) (This)->lpVtbl->Step(This,frame_count,filter)
  10798 #define IVideoFrameStep_CanStep(This,multiple,filter) (This)->lpVtbl->CanStep(This,multiple,filter)
  10799 #define IVideoFrameStep_CancelStep(This) (This)->lpVtbl->CancelStep(This)
  10800 #else
  10801 /*** IUnknown methods ***/
  10802 static inline HRESULT IVideoFrameStep_QueryInterface(IVideoFrameStep* This,REFIID riid,void **ppvObject) {
  10803     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10804 }
  10805 static inline ULONG IVideoFrameStep_AddRef(IVideoFrameStep* This) {
  10806     return This->lpVtbl->AddRef(This);
  10807 }
  10808 static inline ULONG IVideoFrameStep_Release(IVideoFrameStep* This) {
  10809     return This->lpVtbl->Release(This);
  10810 }
  10811 /*** IVideoFrameStep methods ***/
  10812 static inline HRESULT IVideoFrameStep_Step(IVideoFrameStep* This,DWORD frame_count,IUnknown *filter) {
  10813     return This->lpVtbl->Step(This,frame_count,filter);
  10814 }
  10815 static inline HRESULT IVideoFrameStep_CanStep(IVideoFrameStep* This,LONG multiple,IUnknown *filter) {
  10816     return This->lpVtbl->CanStep(This,multiple,filter);
  10817 }
  10818 static inline HRESULT IVideoFrameStep_CancelStep(IVideoFrameStep* This) {
  10819     return This->lpVtbl->CancelStep(This);
  10820 }
  10821 #endif
  10822 #endif
  10823 
  10824 #endif
  10825 
  10826 
  10827 #endif  /* __IVideoFrameStep_INTERFACE_DEFINED__ */
  10828 
  10829 #if (_WIN32_WINNT >= 0x0601)
  10830 /*****************************************************************************
  10831  * IAMAsyncReaderTimestampScaling interface
  10832  */
  10833 #ifndef __IAMAsyncReaderTimestampScaling_INTERFACE_DEFINED__
  10834 #define __IAMAsyncReaderTimestampScaling_INTERFACE_DEFINED__
  10835 
  10836 DEFINE_GUID(IID_IAMAsyncReaderTimestampScaling, 0xcf7b26fc, 0x9a00, 0x485b, 0x81,0x47, 0x3e,0x78,0x9d,0x5e,0x8f,0x67);
  10837 #if defined(__cplusplus) && !defined(CINTERFACE)
  10838 MIDL_INTERFACE("cf7b26fc-9a00-485b-8147-3e789d5e8f67")
  10839 IAMAsyncReaderTimestampScaling : public IUnknown
  10840 {
  10841     virtual HRESULT STDMETHODCALLTYPE GetTimestampMode(
  10842         WINBOOL *pfRaw) = 0;
  10843 
  10844     virtual HRESULT STDMETHODCALLTYPE SetTimestampMode(
  10845         WINBOOL fRaw) = 0;
  10846 
  10847 };
  10848 #ifdef __CRT_UUID_DECL
  10849 __CRT_UUID_DECL(IAMAsyncReaderTimestampScaling, 0xcf7b26fc, 0x9a00, 0x485b, 0x81,0x47, 0x3e,0x78,0x9d,0x5e,0x8f,0x67)
  10850 #endif
  10851 #else
  10852 typedef struct IAMAsyncReaderTimestampScalingVtbl {
  10853     BEGIN_INTERFACE
  10854 
  10855     /*** IUnknown methods ***/
  10856     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10857         IAMAsyncReaderTimestampScaling *This,
  10858         REFIID riid,
  10859         void **ppvObject);
  10860 
  10861     ULONG (STDMETHODCALLTYPE *AddRef)(
  10862         IAMAsyncReaderTimestampScaling *This);
  10863 
  10864     ULONG (STDMETHODCALLTYPE *Release)(
  10865         IAMAsyncReaderTimestampScaling *This);
  10866 
  10867     /*** IAMAsyncReaderTimestampScaling methods ***/
  10868     HRESULT (STDMETHODCALLTYPE *GetTimestampMode)(
  10869         IAMAsyncReaderTimestampScaling *This,
  10870         WINBOOL *pfRaw);
  10871 
  10872     HRESULT (STDMETHODCALLTYPE *SetTimestampMode)(
  10873         IAMAsyncReaderTimestampScaling *This,
  10874         WINBOOL fRaw);
  10875 
  10876     END_INTERFACE
  10877 } IAMAsyncReaderTimestampScalingVtbl;
  10878 
  10879 interface IAMAsyncReaderTimestampScaling {
  10880     CONST_VTBL IAMAsyncReaderTimestampScalingVtbl* lpVtbl;
  10881 };
  10882 
  10883 #ifdef COBJMACROS
  10884 #ifndef WIDL_C_INLINE_WRAPPERS
  10885 /*** IUnknown methods ***/
  10886 #define IAMAsyncReaderTimestampScaling_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10887 #define IAMAsyncReaderTimestampScaling_AddRef(This) (This)->lpVtbl->AddRef(This)
  10888 #define IAMAsyncReaderTimestampScaling_Release(This) (This)->lpVtbl->Release(This)
  10889 /*** IAMAsyncReaderTimestampScaling methods ***/
  10890 #define IAMAsyncReaderTimestampScaling_GetTimestampMode(This,pfRaw) (This)->lpVtbl->GetTimestampMode(This,pfRaw)
  10891 #define IAMAsyncReaderTimestampScaling_SetTimestampMode(This,fRaw) (This)->lpVtbl->SetTimestampMode(This,fRaw)
  10892 #else
  10893 /*** IUnknown methods ***/
  10894 static inline HRESULT IAMAsyncReaderTimestampScaling_QueryInterface(IAMAsyncReaderTimestampScaling* This,REFIID riid,void **ppvObject) {
  10895     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10896 }
  10897 static inline ULONG IAMAsyncReaderTimestampScaling_AddRef(IAMAsyncReaderTimestampScaling* This) {
  10898     return This->lpVtbl->AddRef(This);
  10899 }
  10900 static inline ULONG IAMAsyncReaderTimestampScaling_Release(IAMAsyncReaderTimestampScaling* This) {
  10901     return This->lpVtbl->Release(This);
  10902 }
  10903 /*** IAMAsyncReaderTimestampScaling methods ***/
  10904 static inline HRESULT IAMAsyncReaderTimestampScaling_GetTimestampMode(IAMAsyncReaderTimestampScaling* This,WINBOOL *pfRaw) {
  10905     return This->lpVtbl->GetTimestampMode(This,pfRaw);
  10906 }
  10907 static inline HRESULT IAMAsyncReaderTimestampScaling_SetTimestampMode(IAMAsyncReaderTimestampScaling* This,WINBOOL fRaw) {
  10908     return This->lpVtbl->SetTimestampMode(This,fRaw);
  10909 }
  10910 #endif
  10911 #endif
  10912 
  10913 #endif
  10914 
  10915 
  10916 #endif  /* __IAMAsyncReaderTimestampScaling_INTERFACE_DEFINED__ */
  10917 
  10918 /*****************************************************************************
  10919  * IAMPluginControl interface
  10920  */
  10921 #ifndef __IAMPluginControl_INTERFACE_DEFINED__
  10922 #define __IAMPluginControl_INTERFACE_DEFINED__
  10923 
  10924 DEFINE_GUID(IID_IAMPluginControl, 0x0e26a181, 0xf40c, 0x4635, 0x87,0x86, 0x97,0x62,0x84,0xb5,0x29,0x81);
  10925 #if defined(__cplusplus) && !defined(CINTERFACE)
  10926 MIDL_INTERFACE("0e26a181-f40c-4635-8786-976284b52981")
  10927 IAMPluginControl : public IUnknown
  10928 {
  10929     virtual HRESULT STDMETHODCALLTYPE GetPreferredClsid(
  10930         REFGUID subType,
  10931         CLSID *clsid) = 0;
  10932 
  10933     virtual HRESULT STDMETHODCALLTYPE GetPreferredClsidByIndex(
  10934         DWORD index,
  10935         GUID *subType,
  10936         CLSID *clsid) = 0;
  10937 
  10938     virtual HRESULT STDMETHODCALLTYPE SetPreferredClsid(
  10939         REFGUID subType,
  10940         const CLSID *clsid) = 0;
  10941 
  10942     virtual HRESULT STDMETHODCALLTYPE IsDisabled(
  10943         REFCLSID clsid) = 0;
  10944 
  10945     virtual HRESULT STDMETHODCALLTYPE GetDisabledByIndex(
  10946         DWORD index,
  10947         CLSID *clsid) = 0;
  10948 
  10949     virtual HRESULT STDMETHODCALLTYPE SetDisabled(
  10950         REFCLSID clsid,
  10951         WINBOOL disabled) = 0;
  10952 
  10953     virtual HRESULT STDMETHODCALLTYPE IsLegacyDisabled(
  10954         LPCWSTR dllName) = 0;
  10955 
  10956 };
  10957 #ifdef __CRT_UUID_DECL
  10958 __CRT_UUID_DECL(IAMPluginControl, 0x0e26a181, 0xf40c, 0x4635, 0x87,0x86, 0x97,0x62,0x84,0xb5,0x29,0x81)
  10959 #endif
  10960 #else
  10961 typedef struct IAMPluginControlVtbl {
  10962     BEGIN_INTERFACE
  10963 
  10964     /*** IUnknown methods ***/
  10965     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10966         IAMPluginControl *This,
  10967         REFIID riid,
  10968         void **ppvObject);
  10969 
  10970     ULONG (STDMETHODCALLTYPE *AddRef)(
  10971         IAMPluginControl *This);
  10972 
  10973     ULONG (STDMETHODCALLTYPE *Release)(
  10974         IAMPluginControl *This);
  10975 
  10976     /*** IAMPluginControl methods ***/
  10977     HRESULT (STDMETHODCALLTYPE *GetPreferredClsid)(
  10978         IAMPluginControl *This,
  10979         REFGUID subType,
  10980         CLSID *clsid);
  10981 
  10982     HRESULT (STDMETHODCALLTYPE *GetPreferredClsidByIndex)(
  10983         IAMPluginControl *This,
  10984         DWORD index,
  10985         GUID *subType,
  10986         CLSID *clsid);
  10987 
  10988     HRESULT (STDMETHODCALLTYPE *SetPreferredClsid)(
  10989         IAMPluginControl *This,
  10990         REFGUID subType,
  10991         const CLSID *clsid);
  10992 
  10993     HRESULT (STDMETHODCALLTYPE *IsDisabled)(
  10994         IAMPluginControl *This,
  10995         REFCLSID clsid);
  10996 
  10997     HRESULT (STDMETHODCALLTYPE *GetDisabledByIndex)(
  10998         IAMPluginControl *This,
  10999         DWORD index,
  11000         CLSID *clsid);
  11001 
  11002     HRESULT (STDMETHODCALLTYPE *SetDisabled)(
  11003         IAMPluginControl *This,
  11004         REFCLSID clsid,
  11005         WINBOOL disabled);
  11006 
  11007     HRESULT (STDMETHODCALLTYPE *IsLegacyDisabled)(
  11008         IAMPluginControl *This,
  11009         LPCWSTR dllName);
  11010 
  11011     END_INTERFACE
  11012 } IAMPluginControlVtbl;
  11013 
  11014 interface IAMPluginControl {
  11015     CONST_VTBL IAMPluginControlVtbl* lpVtbl;
  11016 };
  11017 
  11018 #ifdef COBJMACROS
  11019 #ifndef WIDL_C_INLINE_WRAPPERS
  11020 /*** IUnknown methods ***/
  11021 #define IAMPluginControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11022 #define IAMPluginControl_AddRef(This) (This)->lpVtbl->AddRef(This)
  11023 #define IAMPluginControl_Release(This) (This)->lpVtbl->Release(This)
  11024 /*** IAMPluginControl methods ***/
  11025 #define IAMPluginControl_GetPreferredClsid(This,subType,clsid) (This)->lpVtbl->GetPreferredClsid(This,subType,clsid)
  11026 #define IAMPluginControl_GetPreferredClsidByIndex(This,index,subType,clsid) (This)->lpVtbl->GetPreferredClsidByIndex(This,index,subType,clsid)
  11027 #define IAMPluginControl_SetPreferredClsid(This,subType,clsid) (This)->lpVtbl->SetPreferredClsid(This,subType,clsid)
  11028 #define IAMPluginControl_IsDisabled(This,clsid) (This)->lpVtbl->IsDisabled(This,clsid)
  11029 #define IAMPluginControl_GetDisabledByIndex(This,index,clsid) (This)->lpVtbl->GetDisabledByIndex(This,index,clsid)
  11030 #define IAMPluginControl_SetDisabled(This,clsid,disabled) (This)->lpVtbl->SetDisabled(This,clsid,disabled)
  11031 #define IAMPluginControl_IsLegacyDisabled(This,dllName) (This)->lpVtbl->IsLegacyDisabled(This,dllName)
  11032 #else
  11033 /*** IUnknown methods ***/
  11034 static inline HRESULT IAMPluginControl_QueryInterface(IAMPluginControl* This,REFIID riid,void **ppvObject) {
  11035     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11036 }
  11037 static inline ULONG IAMPluginControl_AddRef(IAMPluginControl* This) {
  11038     return This->lpVtbl->AddRef(This);
  11039 }
  11040 static inline ULONG IAMPluginControl_Release(IAMPluginControl* This) {
  11041     return This->lpVtbl->Release(This);
  11042 }
  11043 /*** IAMPluginControl methods ***/
  11044 static inline HRESULT IAMPluginControl_GetPreferredClsid(IAMPluginControl* This,REFGUID subType,CLSID *clsid) {
  11045     return This->lpVtbl->GetPreferredClsid(This,subType,clsid);
  11046 }
  11047 static inline HRESULT IAMPluginControl_GetPreferredClsidByIndex(IAMPluginControl* This,DWORD index,GUID *subType,CLSID *clsid) {
  11048     return This->lpVtbl->GetPreferredClsidByIndex(This,index,subType,clsid);
  11049 }
  11050 static inline HRESULT IAMPluginControl_SetPreferredClsid(IAMPluginControl* This,REFGUID subType,const CLSID *clsid) {
  11051     return This->lpVtbl->SetPreferredClsid(This,subType,clsid);
  11052 }
  11053 static inline HRESULT IAMPluginControl_IsDisabled(IAMPluginControl* This,REFCLSID clsid) {
  11054     return This->lpVtbl->IsDisabled(This,clsid);
  11055 }
  11056 static inline HRESULT IAMPluginControl_GetDisabledByIndex(IAMPluginControl* This,DWORD index,CLSID *clsid) {
  11057     return This->lpVtbl->GetDisabledByIndex(This,index,clsid);
  11058 }
  11059 static inline HRESULT IAMPluginControl_SetDisabled(IAMPluginControl* This,REFCLSID clsid,WINBOOL disabled) {
  11060     return This->lpVtbl->SetDisabled(This,clsid,disabled);
  11061 }
  11062 static inline HRESULT IAMPluginControl_IsLegacyDisabled(IAMPluginControl* This,LPCWSTR dllName) {
  11063     return This->lpVtbl->IsLegacyDisabled(This,dllName);
  11064 }
  11065 #endif
  11066 #endif
  11067 
  11068 #endif
  11069 
  11070 
  11071 #endif  /* __IAMPluginControl_INTERFACE_DEFINED__ */
  11072 
  11073 #endif /*(_WIN32_WINNT >= 0x0601)*/
  11074 #ifndef __IPinConnection_FWD_DEFINED__
  11075 #define __IPinConnection_FWD_DEFINED__
  11076 typedef interface IPinConnection IPinConnection;
  11077 #ifdef __cplusplus
  11078 interface IPinConnection;
  11079 #endif /* __cplusplus */
  11080 #endif
  11081 
  11082 #ifndef __IPinFlowControl_FWD_DEFINED__
  11083 #define __IPinFlowControl_FWD_DEFINED__
  11084 typedef interface IPinFlowControl IPinFlowControl;
  11085 #ifdef __cplusplus
  11086 interface IPinFlowControl;
  11087 #endif /* __cplusplus */
  11088 #endif
  11089 
  11090 #ifndef __IGraphConfig_FWD_DEFINED__
  11091 #define __IGraphConfig_FWD_DEFINED__
  11092 typedef interface IGraphConfig IGraphConfig;
  11093 #ifdef __cplusplus
  11094 interface IGraphConfig;
  11095 #endif /* __cplusplus */
  11096 #endif
  11097 
  11098 #ifndef __IGraphConfigCallback_FWD_DEFINED__
  11099 #define __IGraphConfigCallback_FWD_DEFINED__
  11100 typedef interface IGraphConfigCallback IGraphConfigCallback;
  11101 #ifdef __cplusplus
  11102 interface IGraphConfigCallback;
  11103 #endif /* __cplusplus */
  11104 #endif
  11105 
  11106 /*****************************************************************************
  11107  * IPinConnection interface
  11108  */
  11109 #ifndef __IPinConnection_INTERFACE_DEFINED__
  11110 #define __IPinConnection_INTERFACE_DEFINED__
  11111 
  11112 DEFINE_GUID(IID_IPinConnection, 0x4a9a62d3, 0x27d4, 0x403d, 0x91,0xe9, 0x89,0xf5,0x40,0xe5,0x55,0x34);
  11113 #if defined(__cplusplus) && !defined(CINTERFACE)
  11114 MIDL_INTERFACE("4a9a62d3-27d4-403d-91e9-89f540e55534")
  11115 IPinConnection : public IUnknown
  11116 {
  11117     virtual HRESULT STDMETHODCALLTYPE DynamicQueryAccept(
  11118         const AM_MEDIA_TYPE *pmt) = 0;
  11119 
  11120     virtual HRESULT STDMETHODCALLTYPE NotifyEndOfStream(
  11121         HANDLE hNotifyEvent) = 0;
  11122 
  11123     virtual HRESULT STDMETHODCALLTYPE IsEndPin(
  11124         ) = 0;
  11125 
  11126     virtual HRESULT STDMETHODCALLTYPE DynamicDisconnect(
  11127         ) = 0;
  11128 
  11129 };
  11130 #ifdef __CRT_UUID_DECL
  11131 __CRT_UUID_DECL(IPinConnection, 0x4a9a62d3, 0x27d4, 0x403d, 0x91,0xe9, 0x89,0xf5,0x40,0xe5,0x55,0x34)
  11132 #endif
  11133 #else
  11134 typedef struct IPinConnectionVtbl {
  11135     BEGIN_INTERFACE
  11136 
  11137     /*** IUnknown methods ***/
  11138     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11139         IPinConnection *This,
  11140         REFIID riid,
  11141         void **ppvObject);
  11142 
  11143     ULONG (STDMETHODCALLTYPE *AddRef)(
  11144         IPinConnection *This);
  11145 
  11146     ULONG (STDMETHODCALLTYPE *Release)(
  11147         IPinConnection *This);
  11148 
  11149     /*** IPinConnection methods ***/
  11150     HRESULT (STDMETHODCALLTYPE *DynamicQueryAccept)(
  11151         IPinConnection *This,
  11152         const AM_MEDIA_TYPE *pmt);
  11153 
  11154     HRESULT (STDMETHODCALLTYPE *NotifyEndOfStream)(
  11155         IPinConnection *This,
  11156         HANDLE hNotifyEvent);
  11157 
  11158     HRESULT (STDMETHODCALLTYPE *IsEndPin)(
  11159         IPinConnection *This);
  11160 
  11161     HRESULT (STDMETHODCALLTYPE *DynamicDisconnect)(
  11162         IPinConnection *This);
  11163 
  11164     END_INTERFACE
  11165 } IPinConnectionVtbl;
  11166 
  11167 interface IPinConnection {
  11168     CONST_VTBL IPinConnectionVtbl* lpVtbl;
  11169 };
  11170 
  11171 #ifdef COBJMACROS
  11172 #ifndef WIDL_C_INLINE_WRAPPERS
  11173 /*** IUnknown methods ***/
  11174 #define IPinConnection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11175 #define IPinConnection_AddRef(This) (This)->lpVtbl->AddRef(This)
  11176 #define IPinConnection_Release(This) (This)->lpVtbl->Release(This)
  11177 /*** IPinConnection methods ***/
  11178 #define IPinConnection_DynamicQueryAccept(This,pmt) (This)->lpVtbl->DynamicQueryAccept(This,pmt)
  11179 #define IPinConnection_NotifyEndOfStream(This,hNotifyEvent) (This)->lpVtbl->NotifyEndOfStream(This,hNotifyEvent)
  11180 #define IPinConnection_IsEndPin(This) (This)->lpVtbl->IsEndPin(This)
  11181 #define IPinConnection_DynamicDisconnect(This) (This)->lpVtbl->DynamicDisconnect(This)
  11182 #else
  11183 /*** IUnknown methods ***/
  11184 static inline HRESULT IPinConnection_QueryInterface(IPinConnection* This,REFIID riid,void **ppvObject) {
  11185     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11186 }
  11187 static inline ULONG IPinConnection_AddRef(IPinConnection* This) {
  11188     return This->lpVtbl->AddRef(This);
  11189 }
  11190 static inline ULONG IPinConnection_Release(IPinConnection* This) {
  11191     return This->lpVtbl->Release(This);
  11192 }
  11193 /*** IPinConnection methods ***/
  11194 static inline HRESULT IPinConnection_DynamicQueryAccept(IPinConnection* This,const AM_MEDIA_TYPE *pmt) {
  11195     return This->lpVtbl->DynamicQueryAccept(This,pmt);
  11196 }
  11197 static inline HRESULT IPinConnection_NotifyEndOfStream(IPinConnection* This,HANDLE hNotifyEvent) {
  11198     return This->lpVtbl->NotifyEndOfStream(This,hNotifyEvent);
  11199 }
  11200 static inline HRESULT IPinConnection_IsEndPin(IPinConnection* This) {
  11201     return This->lpVtbl->IsEndPin(This);
  11202 }
  11203 static inline HRESULT IPinConnection_DynamicDisconnect(IPinConnection* This) {
  11204     return This->lpVtbl->DynamicDisconnect(This);
  11205 }
  11206 #endif
  11207 #endif
  11208 
  11209 #endif
  11210 
  11211 
  11212 #endif  /* __IPinConnection_INTERFACE_DEFINED__ */
  11213 
  11214 /*****************************************************************************
  11215  * IPinFlowControl interface
  11216  */
  11217 #ifndef __IPinFlowControl_INTERFACE_DEFINED__
  11218 #define __IPinFlowControl_INTERFACE_DEFINED__
  11219 
  11220 DEFINE_GUID(IID_IPinFlowControl, 0xc56e9858, 0xdbf3, 0x4f6b, 0x81,0x19, 0x38,0x4a,0xf2,0x06,0x0d,0xeb);
  11221 #if defined(__cplusplus) && !defined(CINTERFACE)
  11222 MIDL_INTERFACE("c56e9858-dbf3-4f6b-8119-384af2060deb")
  11223 IPinFlowControl : public IUnknown
  11224 {
  11225     virtual HRESULT STDMETHODCALLTYPE Block(
  11226         DWORD dwBlockFlags,
  11227         HANDLE hEvent) = 0;
  11228 
  11229 };
  11230 #ifdef __CRT_UUID_DECL
  11231 __CRT_UUID_DECL(IPinFlowControl, 0xc56e9858, 0xdbf3, 0x4f6b, 0x81,0x19, 0x38,0x4a,0xf2,0x06,0x0d,0xeb)
  11232 #endif
  11233 #else
  11234 typedef struct IPinFlowControlVtbl {
  11235     BEGIN_INTERFACE
  11236 
  11237     /*** IUnknown methods ***/
  11238     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11239         IPinFlowControl *This,
  11240         REFIID riid,
  11241         void **ppvObject);
  11242 
  11243     ULONG (STDMETHODCALLTYPE *AddRef)(
  11244         IPinFlowControl *This);
  11245 
  11246     ULONG (STDMETHODCALLTYPE *Release)(
  11247         IPinFlowControl *This);
  11248 
  11249     /*** IPinFlowControl methods ***/
  11250     HRESULT (STDMETHODCALLTYPE *Block)(
  11251         IPinFlowControl *This,
  11252         DWORD dwBlockFlags,
  11253         HANDLE hEvent);
  11254 
  11255     END_INTERFACE
  11256 } IPinFlowControlVtbl;
  11257 
  11258 interface IPinFlowControl {
  11259     CONST_VTBL IPinFlowControlVtbl* lpVtbl;
  11260 };
  11261 
  11262 #ifdef COBJMACROS
  11263 #ifndef WIDL_C_INLINE_WRAPPERS
  11264 /*** IUnknown methods ***/
  11265 #define IPinFlowControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11266 #define IPinFlowControl_AddRef(This) (This)->lpVtbl->AddRef(This)
  11267 #define IPinFlowControl_Release(This) (This)->lpVtbl->Release(This)
  11268 /*** IPinFlowControl methods ***/
  11269 #define IPinFlowControl_Block(This,dwBlockFlags,hEvent) (This)->lpVtbl->Block(This,dwBlockFlags,hEvent)
  11270 #else
  11271 /*** IUnknown methods ***/
  11272 static inline HRESULT IPinFlowControl_QueryInterface(IPinFlowControl* This,REFIID riid,void **ppvObject) {
  11273     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11274 }
  11275 static inline ULONG IPinFlowControl_AddRef(IPinFlowControl* This) {
  11276     return This->lpVtbl->AddRef(This);
  11277 }
  11278 static inline ULONG IPinFlowControl_Release(IPinFlowControl* This) {
  11279     return This->lpVtbl->Release(This);
  11280 }
  11281 /*** IPinFlowControl methods ***/
  11282 static inline HRESULT IPinFlowControl_Block(IPinFlowControl* This,DWORD dwBlockFlags,HANDLE hEvent) {
  11283     return This->lpVtbl->Block(This,dwBlockFlags,hEvent);
  11284 }
  11285 #endif
  11286 #endif
  11287 
  11288 #endif
  11289 
  11290 
  11291 #endif  /* __IPinFlowControl_INTERFACE_DEFINED__ */
  11292 
  11293 enum _AM_PIN_FLOW_CONTROL_BLOCK_FLAGS {
  11294     AM_PIN_FLOW_CONTROL_BLOCK = 0x1
  11295 };
  11296 typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS {
  11297     AM_GRAPH_CONFIG_RECONNECT_DIRECTCONNECT = 0x1,
  11298     AM_GRAPH_CONFIG_RECONNECT_CACHE_REMOVED_FILTERS = 0x2,
  11299     AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS = 0x4
  11300 } AM_GRAPH_CONFIG_RECONNECT_FLAGS;
  11301 enum _REM_FILTER_FLAGS {
  11302     REMFILTERF_LEAVECONNECTED = 0x1
  11303 };
  11304 typedef enum _AM_FILTER_FLAGS {
  11305     AM_FILTER_FLAGS_REMOVABLE = 0x1
  11306 } AM_FILTER_FLAGS;
  11307 /*****************************************************************************
  11308  * IGraphConfig interface
  11309  */
  11310 #ifndef __IGraphConfig_INTERFACE_DEFINED__
  11311 #define __IGraphConfig_INTERFACE_DEFINED__
  11312 
  11313 DEFINE_GUID(IID_IGraphConfig, 0x03a1eb8e, 0x32bf, 0x4245, 0x85,0x02, 0x11,0x4d,0x08,0xa9,0xcb,0x88);
  11314 #if defined(__cplusplus) && !defined(CINTERFACE)
  11315 MIDL_INTERFACE("03a1eb8e-32bf-4245-8502-114d08a9cb88")
  11316 IGraphConfig : public IUnknown
  11317 {
  11318     virtual HRESULT STDMETHODCALLTYPE Reconnect(
  11319         IPin *pOutputPin,
  11320         IPin *pInputPin,
  11321         const AM_MEDIA_TYPE *pmtFirstConnection,
  11322         IBaseFilter *pUsingFilter,
  11323         HANDLE hAbortEvent,
  11324         DWORD dwFlags) = 0;
  11325 
  11326     virtual HRESULT STDMETHODCALLTYPE Reconfigure(
  11327         IGraphConfigCallback *pCallback,
  11328         PVOID pvContext,
  11329         DWORD dwFlags,
  11330         HANDLE hAbortEvent) = 0;
  11331 
  11332     virtual HRESULT STDMETHODCALLTYPE AddFilterToCache(
  11333         IBaseFilter *pFilter) = 0;
  11334 
  11335     virtual HRESULT STDMETHODCALLTYPE EnumCacheFilter(
  11336         IEnumFilters **pEnum) = 0;
  11337 
  11338     virtual HRESULT STDMETHODCALLTYPE RemoveFilterFromCache(
  11339         IBaseFilter *pFilter) = 0;
  11340 
  11341     virtual HRESULT STDMETHODCALLTYPE GetStartTime(
  11342         REFERENCE_TIME *prtStart) = 0;
  11343 
  11344     virtual HRESULT STDMETHODCALLTYPE PushThroughData(
  11345         IPin *pOutputPin,
  11346         IPinConnection *pConnection,
  11347         HANDLE hEventAbort) = 0;
  11348 
  11349     virtual HRESULT STDMETHODCALLTYPE SetFilterFlags(
  11350         IBaseFilter *pFilter,
  11351         DWORD dwFlags) = 0;
  11352 
  11353     virtual HRESULT STDMETHODCALLTYPE GetFilterFlags(
  11354         IBaseFilter *pFilter,
  11355         DWORD *pdwFlags) = 0;
  11356 
  11357     virtual HRESULT STDMETHODCALLTYPE RemoveFilterEx(
  11358         IBaseFilter *pFilter,
  11359         DWORD Flags) = 0;
  11360 
  11361 };
  11362 #ifdef __CRT_UUID_DECL
  11363 __CRT_UUID_DECL(IGraphConfig, 0x03a1eb8e, 0x32bf, 0x4245, 0x85,0x02, 0x11,0x4d,0x08,0xa9,0xcb,0x88)
  11364 #endif
  11365 #else
  11366 typedef struct IGraphConfigVtbl {
  11367     BEGIN_INTERFACE
  11368 
  11369     /*** IUnknown methods ***/
  11370     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11371         IGraphConfig *This,
  11372         REFIID riid,
  11373         void **ppvObject);
  11374 
  11375     ULONG (STDMETHODCALLTYPE *AddRef)(
  11376         IGraphConfig *This);
  11377 
  11378     ULONG (STDMETHODCALLTYPE *Release)(
  11379         IGraphConfig *This);
  11380 
  11381     /*** IGraphConfig methods ***/
  11382     HRESULT (STDMETHODCALLTYPE *Reconnect)(
  11383         IGraphConfig *This,
  11384         IPin *pOutputPin,
  11385         IPin *pInputPin,
  11386         const AM_MEDIA_TYPE *pmtFirstConnection,
  11387         IBaseFilter *pUsingFilter,
  11388         HANDLE hAbortEvent,
  11389         DWORD dwFlags);
  11390 
  11391     HRESULT (STDMETHODCALLTYPE *Reconfigure)(
  11392         IGraphConfig *This,
  11393         IGraphConfigCallback *pCallback,
  11394         PVOID pvContext,
  11395         DWORD dwFlags,
  11396         HANDLE hAbortEvent);
  11397 
  11398     HRESULT (STDMETHODCALLTYPE *AddFilterToCache)(
  11399         IGraphConfig *This,
  11400         IBaseFilter *pFilter);
  11401 
  11402     HRESULT (STDMETHODCALLTYPE *EnumCacheFilter)(
  11403         IGraphConfig *This,
  11404         IEnumFilters **pEnum);
  11405 
  11406     HRESULT (STDMETHODCALLTYPE *RemoveFilterFromCache)(
  11407         IGraphConfig *This,
  11408         IBaseFilter *pFilter);
  11409 
  11410     HRESULT (STDMETHODCALLTYPE *GetStartTime)(
  11411         IGraphConfig *This,
  11412         REFERENCE_TIME *prtStart);
  11413 
  11414     HRESULT (STDMETHODCALLTYPE *PushThroughData)(
  11415         IGraphConfig *This,
  11416         IPin *pOutputPin,
  11417         IPinConnection *pConnection,
  11418         HANDLE hEventAbort);
  11419 
  11420     HRESULT (STDMETHODCALLTYPE *SetFilterFlags)(
  11421         IGraphConfig *This,
  11422         IBaseFilter *pFilter,
  11423         DWORD dwFlags);
  11424 
  11425     HRESULT (STDMETHODCALLTYPE *GetFilterFlags)(
  11426         IGraphConfig *This,
  11427         IBaseFilter *pFilter,
  11428         DWORD *pdwFlags);
  11429 
  11430     HRESULT (STDMETHODCALLTYPE *RemoveFilterEx)(
  11431         IGraphConfig *This,
  11432         IBaseFilter *pFilter,
  11433         DWORD Flags);
  11434 
  11435     END_INTERFACE
  11436 } IGraphConfigVtbl;
  11437 
  11438 interface IGraphConfig {
  11439     CONST_VTBL IGraphConfigVtbl* lpVtbl;
  11440 };
  11441 
  11442 #ifdef COBJMACROS
  11443 #ifndef WIDL_C_INLINE_WRAPPERS
  11444 /*** IUnknown methods ***/
  11445 #define IGraphConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11446 #define IGraphConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
  11447 #define IGraphConfig_Release(This) (This)->lpVtbl->Release(This)
  11448 /*** IGraphConfig methods ***/
  11449 #define IGraphConfig_Reconnect(This,pOutputPin,pInputPin,pmtFirstConnection,pUsingFilter,hAbortEvent,dwFlags) (This)->lpVtbl->Reconnect(This,pOutputPin,pInputPin,pmtFirstConnection,pUsingFilter,hAbortEvent,dwFlags)
  11450 #define IGraphConfig_Reconfigure(This,pCallback,pvContext,dwFlags,hAbortEvent) (This)->lpVtbl->Reconfigure(This,pCallback,pvContext,dwFlags,hAbortEvent)
  11451 #define IGraphConfig_AddFilterToCache(This,pFilter) (This)->lpVtbl->AddFilterToCache(This,pFilter)
  11452 #define IGraphConfig_EnumCacheFilter(This,pEnum) (This)->lpVtbl->EnumCacheFilter(This,pEnum)
  11453 #define IGraphConfig_RemoveFilterFromCache(This,pFilter) (This)->lpVtbl->RemoveFilterFromCache(This,pFilter)
  11454 #define IGraphConfig_GetStartTime(This,prtStart) (This)->lpVtbl->GetStartTime(This,prtStart)
  11455 #define IGraphConfig_PushThroughData(This,pOutputPin,pConnection,hEventAbort) (This)->lpVtbl->PushThroughData(This,pOutputPin,pConnection,hEventAbort)
  11456 #define IGraphConfig_SetFilterFlags(This,pFilter,dwFlags) (This)->lpVtbl->SetFilterFlags(This,pFilter,dwFlags)
  11457 #define IGraphConfig_GetFilterFlags(This,pFilter,pdwFlags) (This)->lpVtbl->GetFilterFlags(This,pFilter,pdwFlags)
  11458 #define IGraphConfig_RemoveFilterEx(This,pFilter,Flags) (This)->lpVtbl->RemoveFilterEx(This,pFilter,Flags)
  11459 #else
  11460 /*** IUnknown methods ***/
  11461 static inline HRESULT IGraphConfig_QueryInterface(IGraphConfig* This,REFIID riid,void **ppvObject) {
  11462     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11463 }
  11464 static inline ULONG IGraphConfig_AddRef(IGraphConfig* This) {
  11465     return This->lpVtbl->AddRef(This);
  11466 }
  11467 static inline ULONG IGraphConfig_Release(IGraphConfig* This) {
  11468     return This->lpVtbl->Release(This);
  11469 }
  11470 /*** IGraphConfig methods ***/
  11471 static inline HRESULT IGraphConfig_Reconnect(IGraphConfig* This,IPin *pOutputPin,IPin *pInputPin,const AM_MEDIA_TYPE *pmtFirstConnection,IBaseFilter *pUsingFilter,HANDLE hAbortEvent,DWORD dwFlags) {
  11472     return This->lpVtbl->Reconnect(This,pOutputPin,pInputPin,pmtFirstConnection,pUsingFilter,hAbortEvent,dwFlags);
  11473 }
  11474 static inline HRESULT IGraphConfig_Reconfigure(IGraphConfig* This,IGraphConfigCallback *pCallback,PVOID pvContext,DWORD dwFlags,HANDLE hAbortEvent) {
  11475     return This->lpVtbl->Reconfigure(This,pCallback,pvContext,dwFlags,hAbortEvent);
  11476 }
  11477 static inline HRESULT IGraphConfig_AddFilterToCache(IGraphConfig* This,IBaseFilter *pFilter) {
  11478     return This->lpVtbl->AddFilterToCache(This,pFilter);
  11479 }
  11480 static inline HRESULT IGraphConfig_EnumCacheFilter(IGraphConfig* This,IEnumFilters **pEnum) {
  11481     return This->lpVtbl->EnumCacheFilter(This,pEnum);
  11482 }
  11483 static inline HRESULT IGraphConfig_RemoveFilterFromCache(IGraphConfig* This,IBaseFilter *pFilter) {
  11484     return This->lpVtbl->RemoveFilterFromCache(This,pFilter);
  11485 }
  11486 static inline HRESULT IGraphConfig_GetStartTime(IGraphConfig* This,REFERENCE_TIME *prtStart) {
  11487     return This->lpVtbl->GetStartTime(This,prtStart);
  11488 }
  11489 static inline HRESULT IGraphConfig_PushThroughData(IGraphConfig* This,IPin *pOutputPin,IPinConnection *pConnection,HANDLE hEventAbort) {
  11490     return This->lpVtbl->PushThroughData(This,pOutputPin,pConnection,hEventAbort);
  11491 }
  11492 static inline HRESULT IGraphConfig_SetFilterFlags(IGraphConfig* This,IBaseFilter *pFilter,DWORD dwFlags) {
  11493     return This->lpVtbl->SetFilterFlags(This,pFilter,dwFlags);
  11494 }
  11495 static inline HRESULT IGraphConfig_GetFilterFlags(IGraphConfig* This,IBaseFilter *pFilter,DWORD *pdwFlags) {
  11496     return This->lpVtbl->GetFilterFlags(This,pFilter,pdwFlags);
  11497 }
  11498 static inline HRESULT IGraphConfig_RemoveFilterEx(IGraphConfig* This,IBaseFilter *pFilter,DWORD Flags) {
  11499     return This->lpVtbl->RemoveFilterEx(This,pFilter,Flags);
  11500 }
  11501 #endif
  11502 #endif
  11503 
  11504 #endif
  11505 
  11506 
  11507 #endif  /* __IGraphConfig_INTERFACE_DEFINED__ */
  11508 
  11509 /*****************************************************************************
  11510  * IGraphConfigCallback interface
  11511  */
  11512 #ifndef __IGraphConfigCallback_INTERFACE_DEFINED__
  11513 #define __IGraphConfigCallback_INTERFACE_DEFINED__
  11514 
  11515 DEFINE_GUID(IID_IGraphConfigCallback, 0xade0fd60, 0xd19d, 0x11d2, 0xab,0xf6, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
  11516 #if defined(__cplusplus) && !defined(CINTERFACE)
  11517 MIDL_INTERFACE("ade0fd60-d19d-11d2-abf6-00a0c905f375")
  11518 IGraphConfigCallback : public IUnknown
  11519 {
  11520     virtual HRESULT STDMETHODCALLTYPE Reconfigure(
  11521         PVOID pvContext,
  11522         DWORD dwFlags) = 0;
  11523 
  11524 };
  11525 #ifdef __CRT_UUID_DECL
  11526 __CRT_UUID_DECL(IGraphConfigCallback, 0xade0fd60, 0xd19d, 0x11d2, 0xab,0xf6, 0x00,0xa0,0xc9,0x05,0xf3,0x75)
  11527 #endif
  11528 #else
  11529 typedef struct IGraphConfigCallbackVtbl {
  11530     BEGIN_INTERFACE
  11531 
  11532     /*** IUnknown methods ***/
  11533     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11534         IGraphConfigCallback *This,
  11535         REFIID riid,
  11536         void **ppvObject);
  11537 
  11538     ULONG (STDMETHODCALLTYPE *AddRef)(
  11539         IGraphConfigCallback *This);
  11540 
  11541     ULONG (STDMETHODCALLTYPE *Release)(
  11542         IGraphConfigCallback *This);
  11543 
  11544     /*** IGraphConfigCallback methods ***/
  11545     HRESULT (STDMETHODCALLTYPE *Reconfigure)(
  11546         IGraphConfigCallback *This,
  11547         PVOID pvContext,
  11548         DWORD dwFlags);
  11549 
  11550     END_INTERFACE
  11551 } IGraphConfigCallbackVtbl;
  11552 
  11553 interface IGraphConfigCallback {
  11554     CONST_VTBL IGraphConfigCallbackVtbl* lpVtbl;
  11555 };
  11556 
  11557 #ifdef COBJMACROS
  11558 #ifndef WIDL_C_INLINE_WRAPPERS
  11559 /*** IUnknown methods ***/
  11560 #define IGraphConfigCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11561 #define IGraphConfigCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
  11562 #define IGraphConfigCallback_Release(This) (This)->lpVtbl->Release(This)
  11563 /*** IGraphConfigCallback methods ***/
  11564 #define IGraphConfigCallback_Reconfigure(This,pvContext,dwFlags) (This)->lpVtbl->Reconfigure(This,pvContext,dwFlags)
  11565 #else
  11566 /*** IUnknown methods ***/
  11567 static inline HRESULT IGraphConfigCallback_QueryInterface(IGraphConfigCallback* This,REFIID riid,void **ppvObject) {
  11568     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11569 }
  11570 static inline ULONG IGraphConfigCallback_AddRef(IGraphConfigCallback* This) {
  11571     return This->lpVtbl->AddRef(This);
  11572 }
  11573 static inline ULONG IGraphConfigCallback_Release(IGraphConfigCallback* This) {
  11574     return This->lpVtbl->Release(This);
  11575 }
  11576 /*** IGraphConfigCallback methods ***/
  11577 static inline HRESULT IGraphConfigCallback_Reconfigure(IGraphConfigCallback* This,PVOID pvContext,DWORD dwFlags) {
  11578     return This->lpVtbl->Reconfigure(This,pvContext,dwFlags);
  11579 }
  11580 #endif
  11581 #endif
  11582 
  11583 #endif
  11584 
  11585 
  11586 #endif  /* __IGraphConfigCallback_INTERFACE_DEFINED__ */
  11587 
  11588 /*****************************************************************************
  11589  * IFilterChain interface
  11590  */
  11591 #ifndef __IFilterChain_INTERFACE_DEFINED__
  11592 #define __IFilterChain_INTERFACE_DEFINED__
  11593 
  11594 DEFINE_GUID(IID_IFilterChain, 0xdcfbdcf6, 0x0dc2, 0x45f5, 0x9a,0xb2, 0x7c,0x33,0x0e,0xa0,0x9c,0x29);
  11595 #if defined(__cplusplus) && !defined(CINTERFACE)
  11596 MIDL_INTERFACE("dcfbdcf6-0dc2-45f5-9ab2-7c330ea09c29")
  11597 IFilterChain : public IUnknown
  11598 {
  11599     virtual HRESULT STDMETHODCALLTYPE StartChain(
  11600         IBaseFilter *pStartFilter,
  11601         IBaseFilter *pEndFilter) = 0;
  11602 
  11603     virtual HRESULT STDMETHODCALLTYPE PauseChain(
  11604         IBaseFilter *pStartFilter,
  11605         IBaseFilter *pEndFilter) = 0;
  11606 
  11607     virtual HRESULT STDMETHODCALLTYPE StopChain(
  11608         IBaseFilter *pStartFilter,
  11609         IBaseFilter *pEndFilter) = 0;
  11610 
  11611     virtual HRESULT STDMETHODCALLTYPE RemoveChain(
  11612         IBaseFilter *pStartFilter,
  11613         IBaseFilter *pEndFilter) = 0;
  11614 
  11615 };
  11616 #ifdef __CRT_UUID_DECL
  11617 __CRT_UUID_DECL(IFilterChain, 0xdcfbdcf6, 0x0dc2, 0x45f5, 0x9a,0xb2, 0x7c,0x33,0x0e,0xa0,0x9c,0x29)
  11618 #endif
  11619 #else
  11620 typedef struct IFilterChainVtbl {
  11621     BEGIN_INTERFACE
  11622 
  11623     /*** IUnknown methods ***/
  11624     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11625         IFilterChain *This,
  11626         REFIID riid,
  11627         void **ppvObject);
  11628 
  11629     ULONG (STDMETHODCALLTYPE *AddRef)(
  11630         IFilterChain *This);
  11631 
  11632     ULONG (STDMETHODCALLTYPE *Release)(
  11633         IFilterChain *This);
  11634 
  11635     /*** IFilterChain methods ***/
  11636     HRESULT (STDMETHODCALLTYPE *StartChain)(
  11637         IFilterChain *This,
  11638         IBaseFilter *pStartFilter,
  11639         IBaseFilter *pEndFilter);
  11640 
  11641     HRESULT (STDMETHODCALLTYPE *PauseChain)(
  11642         IFilterChain *This,
  11643         IBaseFilter *pStartFilter,
  11644         IBaseFilter *pEndFilter);
  11645 
  11646     HRESULT (STDMETHODCALLTYPE *StopChain)(
  11647         IFilterChain *This,
  11648         IBaseFilter *pStartFilter,
  11649         IBaseFilter *pEndFilter);
  11650 
  11651     HRESULT (STDMETHODCALLTYPE *RemoveChain)(
  11652         IFilterChain *This,
  11653         IBaseFilter *pStartFilter,
  11654         IBaseFilter *pEndFilter);
  11655 
  11656     END_INTERFACE
  11657 } IFilterChainVtbl;
  11658 
  11659 interface IFilterChain {
  11660     CONST_VTBL IFilterChainVtbl* lpVtbl;
  11661 };
  11662 
  11663 #ifdef COBJMACROS
  11664 #ifndef WIDL_C_INLINE_WRAPPERS
  11665 /*** IUnknown methods ***/
  11666 #define IFilterChain_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11667 #define IFilterChain_AddRef(This) (This)->lpVtbl->AddRef(This)
  11668 #define IFilterChain_Release(This) (This)->lpVtbl->Release(This)
  11669 /*** IFilterChain methods ***/
  11670 #define IFilterChain_StartChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->StartChain(This,pStartFilter,pEndFilter)
  11671 #define IFilterChain_PauseChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->PauseChain(This,pStartFilter,pEndFilter)
  11672 #define IFilterChain_StopChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->StopChain(This,pStartFilter,pEndFilter)
  11673 #define IFilterChain_RemoveChain(This,pStartFilter,pEndFilter) (This)->lpVtbl->RemoveChain(This,pStartFilter,pEndFilter)
  11674 #else
  11675 /*** IUnknown methods ***/
  11676 static inline HRESULT IFilterChain_QueryInterface(IFilterChain* This,REFIID riid,void **ppvObject) {
  11677     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11678 }
  11679 static inline ULONG IFilterChain_AddRef(IFilterChain* This) {
  11680     return This->lpVtbl->AddRef(This);
  11681 }
  11682 static inline ULONG IFilterChain_Release(IFilterChain* This) {
  11683     return This->lpVtbl->Release(This);
  11684 }
  11685 /*** IFilterChain methods ***/
  11686 static inline HRESULT IFilterChain_StartChain(IFilterChain* This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) {
  11687     return This->lpVtbl->StartChain(This,pStartFilter,pEndFilter);
  11688 }
  11689 static inline HRESULT IFilterChain_PauseChain(IFilterChain* This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) {
  11690     return This->lpVtbl->PauseChain(This,pStartFilter,pEndFilter);
  11691 }
  11692 static inline HRESULT IFilterChain_StopChain(IFilterChain* This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) {
  11693     return This->lpVtbl->StopChain(This,pStartFilter,pEndFilter);
  11694 }
  11695 static inline HRESULT IFilterChain_RemoveChain(IFilterChain* This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) {
  11696     return This->lpVtbl->RemoveChain(This,pStartFilter,pEndFilter);
  11697 }
  11698 #endif
  11699 #endif
  11700 
  11701 #endif
  11702 
  11703 
  11704 #endif  /* __IFilterChain_INTERFACE_DEFINED__ */
  11705 
  11706 #ifndef __IReferenceClock2_FWD_DEFINED__
  11707 #define __IReferenceClock2_FWD_DEFINED__
  11708 typedef struct IReferenceClock2 IReferenceClock2;
  11709 #endif
  11710 #ifndef __IDistributorNotify_FWD_DEFINED__
  11711 #define __IDistributorNotify_FWD_DEFINED__
  11712 typedef struct IDistributorNotify IDistributorNotify;
  11713 #endif
  11714 
  11715 #ifndef __IAMVfwCompressDialogs_FWD_DEFINED__
  11716 #define __IAMVfwCompressDialogs_FWD_DEFINED__
  11717 typedef struct IAMVfwCompressDialogs IAMVfwCompressDialogs;
  11718 #endif
  11719 
  11720 #ifndef __IAMAudioInputMixer_FWD_DEFINED__
  11721 #define __IAMAudioInputMixer_FWD_DEFINED__
  11722 typedef struct IAMAudioInputMixer IAMAudioInputMixer;
  11723 #endif
  11724 
  11725 #ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
  11726 #define __IAMAnalogVideoDecoder_FWD_DEFINED__
  11727 typedef struct IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
  11728 #endif
  11729 
  11730 #ifndef __IBPCSatelliteTuner_FWD_DEFINED__
  11731 #define __IBPCSatelliteTuner_FWD_DEFINED__
  11732 typedef struct IBPCSatelliteTuner IBPCSatelliteTuner;
  11733 #endif
  11734 
  11735 #ifndef __IAMTVAudio_FWD_DEFINED__
  11736 #define __IAMTVAudio_FWD_DEFINED__
  11737 typedef struct IAMTVAudio IAMTVAudio;
  11738 #endif
  11739 
  11740 #ifndef __IAMTVAudioNotification_FWD_DEFINED__
  11741 #define __IAMTVAudioNotification_FWD_DEFINED__
  11742 typedef struct IAMTVAudioNotification IAMTVAudioNotification;
  11743 #endif
  11744 
  11745 #ifndef __IAMAnalogVideoEncoder_FWD_DEFINED__
  11746 #define __IAMAnalogVideoEncoder_FWD_DEFINED__
  11747 typedef struct IAMAnalogVideoEncoder IAMAnalogVideoEncoder;
  11748 #endif
  11749 
  11750 #ifndef __IAMPhysicalPinInfo_FWD_DEFINED__
  11751 #define __IAMPhysicalPinInfo_FWD_DEFINED__
  11752 typedef struct IAMPhysicalPinInfo IAMPhysicalPinInfo;
  11753 #endif
  11754 
  11755 #ifndef __IAMExtDevice_FWD_DEFINED__
  11756 #define __IAMExtDevice_FWD_DEFINED__
  11757 typedef struct IAMExtDevice IAMExtDevice;
  11758 #endif
  11759 
  11760 #ifndef __IAMExtTransport_FWD_DEFINED__
  11761 #define __IAMExtTransport_FWD_DEFINED__
  11762 typedef struct IAMExtTransport IAMExtTransport;
  11763 #endif
  11764 
  11765 #ifndef __IAMTimecodeReader_FWD_DEFINED__
  11766 #define __IAMTimecodeReader_FWD_DEFINED__
  11767 typedef struct IAMTimecodeReader IAMTimecodeReader;
  11768 #endif
  11769 
  11770 #ifndef __IAMTimecodeGenerator_FWD_DEFINED__
  11771 #define __IAMTimecodeGenerator_FWD_DEFINED__
  11772 typedef struct IAMTimecodeGenerator IAMTimecodeGenerator;
  11773 #endif
  11774 
  11775 #ifndef __IAMTimecodeDisplay_FWD_DEFINED__
  11776 #define __IAMTimecodeDisplay_FWD_DEFINED__
  11777 typedef struct IAMTimecodeDisplay IAMTimecodeDisplay;
  11778 #endif
  11779 
  11780 #ifndef __IAMDevMemoryAllocator_FWD_DEFINED__
  11781 #define __IAMDevMemoryAllocator_FWD_DEFINED__
  11782 typedef struct IAMDevMemoryAllocator IAMDevMemoryAllocator;
  11783 #endif
  11784 
  11785 #ifndef __IAMDevMemoryControl_FWD_DEFINED__
  11786 #define __IAMDevMemoryControl_FWD_DEFINED__
  11787 typedef struct IAMDevMemoryControl IAMDevMemoryControl;
  11788 #endif
  11789 
  11790 #ifndef __IAMStreamSelect_FWD_DEFINED__
  11791 #define __IAMStreamSelect_FWD_DEFINED__
  11792 typedef struct IAMStreamSelect IAMStreamSelect;
  11793 #endif
  11794 
  11795 #ifndef __IAMResourceControl_FWD_DEFINED__
  11796 #define __IAMResourceControl_FWD_DEFINED__
  11797 typedef struct IAMResourceControl IAMResourceControl;
  11798 #endif
  11799 
  11800 #ifndef __IAMClockAdjust_FWD_DEFINED__
  11801 #define __IAMClockAdjust_FWD_DEFINED__
  11802 typedef struct IAMClockAdjust IAMClockAdjust;
  11803 #endif
  11804 
  11805 #ifndef __IDrawVideoImage_FWD_DEFINED__
  11806 #define __IDrawVideoImage_FWD_DEFINED__
  11807 typedef struct IDrawVideoImage IDrawVideoImage;
  11808 #endif
  11809 
  11810 #ifndef __IDecimateVideoImage_FWD_DEFINED__
  11811 #define __IDecimateVideoImage_FWD_DEFINED__
  11812 typedef struct IDecimateVideoImage IDecimateVideoImage;
  11813 #endif
  11814 
  11815 #ifndef __IAMVideoDecimationProperties_FWD_DEFINED__
  11816 #define __IAMVideoDecimationProperties_FWD_DEFINED__
  11817 typedef struct IAMVideoDecimationProperties IAMVideoDecimationProperties;
  11818 #endif
  11819 
  11820 #ifndef __IAMDeviceRemoval_FWD_DEFINED__
  11821 #define __IAMDeviceRemoval_FWD_DEFINED__
  11822 typedef struct IAMDeviceRemoval IAMDeviceRemoval;
  11823 #endif
  11824 
  11825 #ifndef __IDVEnc_FWD_DEFINED__
  11826 #define __IDVEnc_FWD_DEFINED__
  11827 typedef struct IDVEnc IDVEnc;
  11828 #endif
  11829 
  11830 #ifndef __IIPDVDec_FWD_DEFINED__
  11831 #define __IIPDVDec_FWD_DEFINED__
  11832 typedef struct IIPDVDec IIPDVDec;
  11833 #endif
  11834 
  11835 #ifndef __IDVRGB219_FWD_DEFINED__
  11836 #define __IDVRGB219_FWD_DEFINED__
  11837 typedef struct IDVRGB219 IDVRGB219;
  11838 #endif
  11839 
  11840 #ifndef __IDVSplitter_FWD_DEFINED__
  11841 #define __IDVSplitter_FWD_DEFINED__
  11842 typedef struct IDVSplitter IDVSplitter;
  11843 #endif
  11844 
  11845 #ifndef __IAMAudioRendererStats_FWD_DEFINED__
  11846 #define __IAMAudioRendererStats_FWD_DEFINED__
  11847 typedef struct IAMAudioRendererStats IAMAudioRendererStats;
  11848 #endif
  11849 
  11850 #ifndef __IAMGraphStreams_FWD_DEFINED__
  11851 #define __IAMGraphStreams_FWD_DEFINED__
  11852 typedef struct IAMGraphStreams IAMGraphStreams;
  11853 #endif
  11854 
  11855 #ifndef __IAMOverlayFX_FWD_DEFINED__
  11856 #define __IAMOverlayFX_FWD_DEFINED__
  11857 typedef struct IAMOverlayFX IAMOverlayFX;
  11858 #endif
  11859 
  11860 #ifndef __IAMOpenProgress_FWD_DEFINED__
  11861 #define __IAMOpenProgress_FWD_DEFINED__
  11862 typedef struct IAMOpenProgress IAMOpenProgress;
  11863 #endif
  11864 
  11865 #ifndef __IMpeg2Demultiplexer_FWD_DEFINED__
  11866 #define __IMpeg2Demultiplexer_FWD_DEFINED__
  11867 typedef struct IMpeg2Demultiplexer IMpeg2Demultiplexer;
  11868 #endif
  11869 
  11870 #ifndef __IEnumStreamIdMap_FWD_DEFINED__
  11871 #define __IEnumStreamIdMap_FWD_DEFINED__
  11872 typedef struct IEnumStreamIdMap IEnumStreamIdMap;
  11873 #endif
  11874 
  11875 #ifndef __IMPEG2StreamIdMap_FWD_DEFINED__
  11876 #define __IMPEG2StreamIdMap_FWD_DEFINED__
  11877 typedef struct IMPEG2StreamIdMap IMPEG2StreamIdMap;
  11878 #endif
  11879 
  11880 #ifndef __IRegisterServiceProvider_FWD_DEFINED__
  11881 #define __IRegisterServiceProvider_FWD_DEFINED__
  11882 typedef struct IRegisterServiceProvider IRegisterServiceProvider;
  11883 #endif
  11884 
  11885 #ifndef __ICodecAPI_FWD_DEFINED__
  11886 #define __ICodecAPI_FWD_DEFINED__
  11887 typedef struct ICodecAPI ICodecAPI;
  11888 #endif
  11889 
  11890 #ifndef __IGetCapabilitiesKey_FWD_DEFINED__
  11891 #define __IGetCapabilitiesKey_FWD_DEFINED__
  11892 typedef struct IGetCapabilitiesKey IGetCapabilitiesKey;
  11893 #endif
  11894 
  11895 #ifndef __IEncoderAPI_FWD_DEFINED__
  11896 #define __IEncoderAPI_FWD_DEFINED__
  11897 typedef struct IEncoderAPI IEncoderAPI;
  11898 #endif
  11899 
  11900 #ifndef __IVideoEncoder_FWD_DEFINED__
  11901 #define __IVideoEncoder_FWD_DEFINED__
  11902 typedef struct IVideoEncoder IVideoEncoder;
  11903 #endif
  11904 
  11905 #ifndef __IAMDecoderCaps_FWD_DEFINED__
  11906 #define __IAMDecoderCaps_FWD_DEFINED__
  11907 typedef struct IAMDecoderCaps IAMDecoderCaps;
  11908 #endif
  11909 
  11910 #ifndef __IDvdControl_FWD_DEFINED__
  11911 #define __IDvdControl_FWD_DEFINED__
  11912 typedef struct IDvdControl IDvdControl;
  11913 #endif
  11914 
  11915 #ifndef __IDvdInfo_FWD_DEFINED__
  11916 #define __IDvdInfo_FWD_DEFINED__
  11917 typedef struct IDvdInfo IDvdInfo;
  11918 #endif
  11919 
  11920 #ifndef __IDvdCmd_FWD_DEFINED__
  11921 #define __IDvdCmd_FWD_DEFINED__
  11922 typedef struct IDvdCmd IDvdCmd;
  11923 #endif
  11924 
  11925 #ifndef __IDvdState_FWD_DEFINED__
  11926 #define __IDvdState_FWD_DEFINED__
  11927 typedef struct IDvdState IDvdState;
  11928 #endif
  11929 
  11930 #ifndef __IDvdControl2_FWD_DEFINED__
  11931 #define __IDvdControl2_FWD_DEFINED__
  11932 typedef struct IDvdControl2 IDvdControl2;
  11933 #endif
  11934 
  11935 #ifndef __IDvdInfo2_FWD_DEFINED__
  11936 #define __IDvdInfo2_FWD_DEFINED__
  11937 typedef struct IDvdInfo2 IDvdInfo2;
  11938 #endif
  11939 
  11940 #ifndef __IDvdGraphBuilder_FWD_DEFINED__
  11941 #define __IDvdGraphBuilder_FWD_DEFINED__
  11942 typedef struct IDvdGraphBuilder IDvdGraphBuilder;
  11943 #endif
  11944 
  11945 #ifndef __IDDrawExclModeVideo_FWD_DEFINED__
  11946 #define __IDDrawExclModeVideo_FWD_DEFINED__
  11947 typedef struct IDDrawExclModeVideo IDDrawExclModeVideo;
  11948 #endif
  11949 
  11950 #ifndef __IDDrawExclModeVideoCallback_FWD_DEFINED__
  11951 #define __IDDrawExclModeVideoCallback_FWD_DEFINED__
  11952 typedef struct IDDrawExclModeVideoCallback IDDrawExclModeVideoCallback;
  11953 #endif
  11954 
  11955 #ifndef __IVMRImagePresenter_FWD_DEFINED__
  11956 #define __IVMRImagePresenter_FWD_DEFINED__
  11957 typedef struct IVMRImagePresenter IVMRImagePresenter;
  11958 #endif
  11959 
  11960 #ifndef __IVMRSurfaceAllocator_FWD_DEFINED__
  11961 #define __IVMRSurfaceAllocator_FWD_DEFINED__
  11962 typedef struct IVMRSurfaceAllocator IVMRSurfaceAllocator;
  11963 #endif
  11964 
  11965 #ifndef __IVMRSurfaceAllocatorNotify_FWD_DEFINED__
  11966 #define __IVMRSurfaceAllocatorNotify_FWD_DEFINED__
  11967 typedef struct IVMRSurfaceAllocatorNotify IVMRSurfaceAllocatorNotify;
  11968 #endif
  11969 
  11970 #ifndef __IVMRWindowlessControl_FWD_DEFINED__
  11971 #define __IVMRWindowlessControl_FWD_DEFINED__
  11972 typedef struct IVMRWindowlessControl IVMRWindowlessControl;
  11973 #endif
  11974 
  11975 #ifndef __IVMRMixerControl_FWD_DEFINED__
  11976 #define __IVMRMixerControl_FWD_DEFINED__
  11977 typedef struct IVMRMixerControl IVMRMixerControl;
  11978 #endif
  11979 
  11980 #ifndef __IVMRMonitorConfig_FWD_DEFINED__
  11981 #define __IVMRMonitorConfig_FWD_DEFINED__
  11982 typedef struct IVMRMonitorConfig IVMRMonitorConfig;
  11983 #endif
  11984 
  11985 #ifndef __IVMRFilterConfig_FWD_DEFINED__
  11986 #define __IVMRFilterConfig_FWD_DEFINED__
  11987 typedef struct IVMRFilterConfig IVMRFilterConfig;
  11988 #endif
  11989 
  11990 #ifndef __IVMRAspectRatioControl_FWD_DEFINED__
  11991 #define __IVMRAspectRatioControl_FWD_DEFINED__
  11992 typedef struct IVMRAspectRatioControl IVMRAspectRatioControl;
  11993 #endif
  11994 
  11995 #ifndef __IVMRDeinterlaceControl_FWD_DEFINED__
  11996 #define __IVMRDeinterlaceControl_FWD_DEFINED__
  11997 typedef struct IVMRDeinterlaceControl IVMRDeinterlaceControl;
  11998 #endif
  11999 
  12000 #ifndef __IVMRMixerBitmap_FWD_DEFINED__
  12001 #define __IVMRMixerBitmap_FWD_DEFINED__
  12002 typedef struct IVMRMixerBitmap IVMRMixerBitmap;
  12003 #endif
  12004 
  12005 #ifndef __IVMRImageCompositor_FWD_DEFINED__
  12006 #define __IVMRImageCompositor_FWD_DEFINED__
  12007 typedef struct IVMRImageCompositor IVMRImageCompositor;
  12008 #endif
  12009 
  12010 #ifndef __IVMRVideoStreamControl_FWD_DEFINED__
  12011 #define __IVMRVideoStreamControl_FWD_DEFINED__
  12012 typedef struct IVMRVideoStreamControl IVMRVideoStreamControl;
  12013 #endif
  12014 
  12015 #ifndef __IVMRSurface_FWD_DEFINED__
  12016 #define __IVMRSurface_FWD_DEFINED__
  12017 typedef struct IVMRSurface IVMRSurface;
  12018 #endif
  12019 
  12020 #ifndef __IVMRImagePresenterConfig_FWD_DEFINED__
  12021 #define __IVMRImagePresenterConfig_FWD_DEFINED__
  12022 typedef struct IVMRImagePresenterConfig IVMRImagePresenterConfig;
  12023 #endif
  12024 
  12025 #ifndef __IVMRImagePresenterExclModeConfig_FWD_DEFINED__
  12026 #define __IVMRImagePresenterExclModeConfig_FWD_DEFINED__
  12027 typedef struct IVMRImagePresenterExclModeConfig IVMRImagePresenterExclModeConfig;
  12028 #endif
  12029 
  12030 #ifndef __IVPManager_FWD_DEFINED__
  12031 #define __IVPManager_FWD_DEFINED__
  12032 typedef struct IVPManager IVPManager;
  12033 #endif
  12034 
  12035 #ifndef __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
  12036 #define __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
  12037 typedef struct IAMAsyncReaderTimestampScaling IAMAsyncReaderTimestampScaling;
  12038 #endif
  12039 
  12040 #ifndef __IAMPluginControl_FWD_DEFINED__
  12041 #define __IAMPluginControl_FWD_DEFINED__
  12042 typedef struct IAMPluginControl IAMPluginControl;
  12043 #endif
  12044 
  12045 #include "ocidl.h"
  12046 
  12047   extern RPC_IF_HANDLE __MIDL_itf_strmif_0125_v0_0_c_ifspec;
  12048   extern RPC_IF_HANDLE __MIDL_itf_strmif_0125_v0_0_s_ifspec;
  12049 #ifndef __IReferenceClock2_INTERFACE_DEFINED__
  12050 #define __IReferenceClock2_INTERFACE_DEFINED__
  12051   EXTERN_C const IID IID_IReferenceClock2;
  12052 #if defined(__cplusplus) && !defined(CINTERFACE)
  12053   struct IReferenceClock2 : public IReferenceClock {
  12054   };
  12055 #else
  12056   typedef struct IReferenceClock2Vtbl {
  12057     BEGIN_INTERFACE
  12058       HRESULT (WINAPI *QueryInterface)(IReferenceClock2 *This,REFIID riid,void **ppvObject);
  12059       ULONG (WINAPI *AddRef)(IReferenceClock2 *This);
  12060       ULONG (WINAPI *Release)(IReferenceClock2 *This);
  12061       HRESULT (WINAPI *GetTime)(IReferenceClock2 *This,REFERENCE_TIME *pTime);
  12062       HRESULT (WINAPI *AdviseTime)(IReferenceClock2 *This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie);
  12063       HRESULT (WINAPI *AdvisePeriodic)(IReferenceClock2 *This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie);
  12064       HRESULT (WINAPI *Unadvise)(IReferenceClock2 *This,DWORD_PTR dwAdviseCookie);
  12065     END_INTERFACE
  12066   } IReferenceClock2Vtbl;
  12067   struct IReferenceClock2 {
  12068     CONST_VTBL struct IReferenceClock2Vtbl *lpVtbl;
  12069   };
  12070 #ifdef COBJMACROS
  12071 #define IReferenceClock2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12072 #define IReferenceClock2_AddRef(This) (This)->lpVtbl->AddRef(This)
  12073 #define IReferenceClock2_Release(This) (This)->lpVtbl->Release(This)
  12074 #define IReferenceClock2_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
  12075 #define IReferenceClock2_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
  12076 #define IReferenceClock2_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
  12077 #define IReferenceClock2_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
  12078 #endif
  12079 #endif
  12080 #endif
  12081 
  12082   typedef IReferenceClock2 *PREFERENCECLOCK2;
  12083 
  12084 #ifndef __IDistributorNotify_INTERFACE_DEFINED__
  12085 #define __IDistributorNotify_INTERFACE_DEFINED__
  12086   EXTERN_C const IID IID_IDistributorNotify;
  12087 #if defined(__cplusplus) && !defined(CINTERFACE)
  12088   struct IDistributorNotify : public IUnknown {
  12089   public:
  12090     virtual HRESULT WINAPI Stop(void) = 0;
  12091     virtual HRESULT WINAPI Pause(void) = 0;
  12092     virtual HRESULT WINAPI Run(REFERENCE_TIME tStart) = 0;
  12093     virtual HRESULT WINAPI SetSyncSource(IReferenceClock *pClock) = 0;
  12094     virtual HRESULT WINAPI NotifyGraphChange(void) = 0;
  12095   };
  12096 #else
  12097   typedef struct IDistributorNotifyVtbl {
  12098     BEGIN_INTERFACE
  12099       HRESULT (WINAPI *QueryInterface)(IDistributorNotify *This,REFIID riid,void **ppvObject);
  12100       ULONG (WINAPI *AddRef)(IDistributorNotify *This);
  12101       ULONG (WINAPI *Release)(IDistributorNotify *This);
  12102       HRESULT (WINAPI *Stop)(IDistributorNotify *This);
  12103       HRESULT (WINAPI *Pause)(IDistributorNotify *This);
  12104       HRESULT (WINAPI *Run)(IDistributorNotify *This,REFERENCE_TIME tStart);
  12105       HRESULT (WINAPI *SetSyncSource)(IDistributorNotify *This,IReferenceClock *pClock);
  12106       HRESULT (WINAPI *NotifyGraphChange)(IDistributorNotify *This);
  12107     END_INTERFACE
  12108   } IDistributorNotifyVtbl;
  12109   struct IDistributorNotify {
  12110     CONST_VTBL struct IDistributorNotifyVtbl *lpVtbl;
  12111   };
  12112 #ifdef COBJMACROS
  12113 #define IDistributorNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12114 #define IDistributorNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
  12115 #define IDistributorNotify_Release(This) (This)->lpVtbl->Release(This)
  12116 #define IDistributorNotify_Stop(This) (This)->lpVtbl->Stop(This)
  12117 #define IDistributorNotify_Pause(This) (This)->lpVtbl->Pause(This)
  12118 #define IDistributorNotify_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
  12119 #define IDistributorNotify_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
  12120 #define IDistributorNotify_NotifyGraphChange(This) (This)->lpVtbl->NotifyGraphChange(This)
  12121 #endif
  12122 #endif
  12123   HRESULT WINAPI IDistributorNotify_Stop_Proxy(IDistributorNotify *This);
  12124   void __RPC_STUB IDistributorNotify_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12125   HRESULT WINAPI IDistributorNotify_Pause_Proxy(IDistributorNotify *This);
  12126   void __RPC_STUB IDistributorNotify_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12127   HRESULT WINAPI IDistributorNotify_Run_Proxy(IDistributorNotify *This,REFERENCE_TIME tStart);
  12128   void __RPC_STUB IDistributorNotify_Run_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12129   HRESULT WINAPI IDistributorNotify_SetSyncSource_Proxy(IDistributorNotify *This,IReferenceClock *pClock);
  12130   void __RPC_STUB IDistributorNotify_SetSyncSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12131   HRESULT WINAPI IDistributorNotify_NotifyGraphChange_Proxy(IDistributorNotify *This);
  12132   void __RPC_STUB IDistributorNotify_NotifyGraphChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12133 #endif
  12134 
  12135   typedef enum __MIDL___MIDL_itf_strmif_0167_0001 {
  12136     CompressionCaps_CanQuality = 0x1,CompressionCaps_CanCrunch = 0x2,CompressionCaps_CanKeyFrame = 0x4,CompressionCaps_CanBFrame = 0x8,
  12137     CompressionCaps_CanWindow = 0x10
  12138   } CompressionCaps;
  12139 
  12140   extern RPC_IF_HANDLE __MIDL_itf_strmif_0167_v0_0_c_ifspec;
  12141   extern RPC_IF_HANDLE __MIDL_itf_strmif_0167_v0_0_s_ifspec;
  12142 
  12143   typedef enum __MIDL___MIDL_itf_strmif_0168_0001 {
  12144     VfwCaptureDialog_Source = 0x1,VfwCaptureDialog_Format = 0x2,VfwCaptureDialog_Display = 0x4
  12145   } VfwCaptureDialogs;
  12146 
  12147   typedef enum __MIDL___MIDL_itf_strmif_0168_0002 {
  12148     VfwCompressDialog_Config = 0x1,VfwCompressDialog_About = 0x2,VfwCompressDialog_QueryConfig = 0x4,VfwCompressDialog_QueryAbout = 0x8
  12149   } VfwCompressDialogs;
  12150 
  12151 #ifndef __IAMVfwCompressDialogs_INTERFACE_DEFINED__
  12152 #define __IAMVfwCompressDialogs_INTERFACE_DEFINED__
  12153   EXTERN_C const IID IID_IAMVfwCompressDialogs;
  12154 #if defined(__cplusplus) && !defined(CINTERFACE)
  12155   struct IAMVfwCompressDialogs : public IUnknown {
  12156   public:
  12157     virtual HRESULT WINAPI ShowDialog(int iDialog,HWND hwnd) = 0;
  12158     virtual HRESULT WINAPI GetState(LPVOID pState,int *pcbState) = 0;
  12159     virtual HRESULT WINAPI SetState(LPVOID pState,int cbState) = 0;
  12160     virtual HRESULT WINAPI SendDriverMessage(int uMsg,LONG dw1,LONG dw2) = 0;
  12161   };
  12162 #else
  12163   typedef struct IAMVfwCompressDialogsVtbl {
  12164     BEGIN_INTERFACE
  12165       HRESULT (WINAPI *QueryInterface)(IAMVfwCompressDialogs *This,REFIID riid,void **ppvObject);
  12166       ULONG (WINAPI *AddRef)(IAMVfwCompressDialogs *This);
  12167       ULONG (WINAPI *Release)(IAMVfwCompressDialogs *This);
  12168       HRESULT (WINAPI *ShowDialog)(IAMVfwCompressDialogs *This,int iDialog,HWND hwnd);
  12169       HRESULT (WINAPI *GetState)(IAMVfwCompressDialogs *This,LPVOID pState,int *pcbState);
  12170       HRESULT (WINAPI *SetState)(IAMVfwCompressDialogs *This,LPVOID pState,int cbState);
  12171       HRESULT (WINAPI *SendDriverMessage)(IAMVfwCompressDialogs *This,int uMsg,LONG dw1,LONG dw2);
  12172     END_INTERFACE
  12173   } IAMVfwCompressDialogsVtbl;
  12174   struct IAMVfwCompressDialogs {
  12175     CONST_VTBL struct IAMVfwCompressDialogsVtbl *lpVtbl;
  12176   };
  12177 #ifdef COBJMACROS
  12178 #define IAMVfwCompressDialogs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12179 #define IAMVfwCompressDialogs_AddRef(This) (This)->lpVtbl->AddRef(This)
  12180 #define IAMVfwCompressDialogs_Release(This) (This)->lpVtbl->Release(This)
  12181 #define IAMVfwCompressDialogs_ShowDialog(This,iDialog,hwnd) (This)->lpVtbl->ShowDialog(This,iDialog,hwnd)
  12182 #define IAMVfwCompressDialogs_GetState(This,pState,pcbState) (This)->lpVtbl->GetState(This,pState,pcbState)
  12183 #define IAMVfwCompressDialogs_SetState(This,pState,cbState) (This)->lpVtbl->SetState(This,pState,cbState)
  12184 #define IAMVfwCompressDialogs_SendDriverMessage(This,uMsg,dw1,dw2) (This)->lpVtbl->SendDriverMessage(This,uMsg,dw1,dw2)
  12185 #endif
  12186 #endif
  12187   HRESULT WINAPI IAMVfwCompressDialogs_ShowDialog_Proxy(IAMVfwCompressDialogs *This,int iDialog,HWND hwnd);
  12188   void __RPC_STUB IAMVfwCompressDialogs_ShowDialog_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12189   HRESULT WINAPI IAMVfwCompressDialogs_GetState_Proxy(IAMVfwCompressDialogs *This,LPVOID pState,int *pcbState);
  12190   void __RPC_STUB IAMVfwCompressDialogs_GetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12191   HRESULT WINAPI IAMVfwCompressDialogs_SetState_Proxy(IAMVfwCompressDialogs *This,LPVOID pState,int cbState);
  12192   void __RPC_STUB IAMVfwCompressDialogs_SetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12193   HRESULT WINAPI IAMVfwCompressDialogs_SendDriverMessage_Proxy(IAMVfwCompressDialogs *This,int uMsg,LONG dw1,LONG dw2);
  12194   void __RPC_STUB IAMVfwCompressDialogs_SendDriverMessage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12195 #endif
  12196 
  12197 #define AMF_AUTOMATICGAIN -1.0
  12198 
  12199   extern RPC_IF_HANDLE __MIDL_itf_strmif_0171_v0_0_c_ifspec;
  12200   extern RPC_IF_HANDLE __MIDL_itf_strmif_0171_v0_0_s_ifspec;
  12201 #ifndef __IAMAudioInputMixer_INTERFACE_DEFINED__
  12202 #define __IAMAudioInputMixer_INTERFACE_DEFINED__
  12203   EXTERN_C const IID IID_IAMAudioInputMixer;
  12204 #if defined(__cplusplus) && !defined(CINTERFACE)
  12205   struct IAMAudioInputMixer : public IUnknown {
  12206   public:
  12207     virtual HRESULT WINAPI put_Enable(WINBOOL fEnable) = 0;
  12208     virtual HRESULT WINAPI get_Enable(WINBOOL *pfEnable) = 0;
  12209     virtual HRESULT WINAPI put_Mono(WINBOOL fMono) = 0;
  12210     virtual HRESULT WINAPI get_Mono(WINBOOL *pfMono) = 0;
  12211     virtual HRESULT WINAPI put_MixLevel(double Level) = 0;
  12212     virtual HRESULT WINAPI get_MixLevel(double *pLevel) = 0;
  12213     virtual HRESULT WINAPI put_Pan(double Pan) = 0;
  12214     virtual HRESULT WINAPI get_Pan(double *pPan) = 0;
  12215     virtual HRESULT WINAPI put_Loudness(WINBOOL fLoudness) = 0;
  12216     virtual HRESULT WINAPI get_Loudness(WINBOOL *pfLoudness) = 0;
  12217     virtual HRESULT WINAPI put_Treble(double Treble) = 0;
  12218     virtual HRESULT WINAPI get_Treble(double *pTreble) = 0;
  12219     virtual HRESULT WINAPI get_TrebleRange(double *pRange) = 0;
  12220     virtual HRESULT WINAPI put_Bass(double Bass) = 0;
  12221     virtual HRESULT WINAPI get_Bass(double *pBass) = 0;
  12222     virtual HRESULT WINAPI get_BassRange(double *pRange) = 0;
  12223   };
  12224 #else
  12225   typedef struct IAMAudioInputMixerVtbl {
  12226     BEGIN_INTERFACE
  12227       HRESULT (WINAPI *QueryInterface)(IAMAudioInputMixer *This,REFIID riid,void **ppvObject);
  12228       ULONG (WINAPI *AddRef)(IAMAudioInputMixer *This);
  12229       ULONG (WINAPI *Release)(IAMAudioInputMixer *This);
  12230       HRESULT (WINAPI *put_Enable)(IAMAudioInputMixer *This,WINBOOL fEnable);
  12231       HRESULT (WINAPI *get_Enable)(IAMAudioInputMixer *This,WINBOOL *pfEnable);
  12232       HRESULT (WINAPI *put_Mono)(IAMAudioInputMixer *This,WINBOOL fMono);
  12233       HRESULT (WINAPI *get_Mono)(IAMAudioInputMixer *This,WINBOOL *pfMono);
  12234       HRESULT (WINAPI *put_MixLevel)(IAMAudioInputMixer *This,double Level);
  12235       HRESULT (WINAPI *get_MixLevel)(IAMAudioInputMixer *This,double *pLevel);
  12236       HRESULT (WINAPI *put_Pan)(IAMAudioInputMixer *This,double Pan);
  12237       HRESULT (WINAPI *get_Pan)(IAMAudioInputMixer *This,double *pPan);
  12238       HRESULT (WINAPI *put_Loudness)(IAMAudioInputMixer *This,WINBOOL fLoudness);
  12239       HRESULT (WINAPI *get_Loudness)(IAMAudioInputMixer *This,WINBOOL *pfLoudness);
  12240       HRESULT (WINAPI *put_Treble)(IAMAudioInputMixer *This,double Treble);
  12241       HRESULT (WINAPI *get_Treble)(IAMAudioInputMixer *This,double *pTreble);
  12242       HRESULT (WINAPI *get_TrebleRange)(IAMAudioInputMixer *This,double *pRange);
  12243       HRESULT (WINAPI *put_Bass)(IAMAudioInputMixer *This,double Bass);
  12244       HRESULT (WINAPI *get_Bass)(IAMAudioInputMixer *This,double *pBass);
  12245       HRESULT (WINAPI *get_BassRange)(IAMAudioInputMixer *This,double *pRange);
  12246     END_INTERFACE
  12247   } IAMAudioInputMixerVtbl;
  12248   struct IAMAudioInputMixer {
  12249     CONST_VTBL struct IAMAudioInputMixerVtbl *lpVtbl;
  12250   };
  12251 #ifdef COBJMACROS
  12252 #define IAMAudioInputMixer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12253 #define IAMAudioInputMixer_AddRef(This) (This)->lpVtbl->AddRef(This)
  12254 #define IAMAudioInputMixer_Release(This) (This)->lpVtbl->Release(This)
  12255 #define IAMAudioInputMixer_put_Enable(This,fEnable) (This)->lpVtbl->put_Enable(This,fEnable)
  12256 #define IAMAudioInputMixer_get_Enable(This,pfEnable) (This)->lpVtbl->get_Enable(This,pfEnable)
  12257 #define IAMAudioInputMixer_put_Mono(This,fMono) (This)->lpVtbl->put_Mono(This,fMono)
  12258 #define IAMAudioInputMixer_get_Mono(This,pfMono) (This)->lpVtbl->get_Mono(This,pfMono)
  12259 #define IAMAudioInputMixer_put_MixLevel(This,Level) (This)->lpVtbl->put_MixLevel(This,Level)
  12260 #define IAMAudioInputMixer_get_MixLevel(This,pLevel) (This)->lpVtbl->get_MixLevel(This,pLevel)
  12261 #define IAMAudioInputMixer_put_Pan(This,Pan) (This)->lpVtbl->put_Pan(This,Pan)
  12262 #define IAMAudioInputMixer_get_Pan(This,pPan) (This)->lpVtbl->get_Pan(This,pPan)
  12263 #define IAMAudioInputMixer_put_Loudness(This,fLoudness) (This)->lpVtbl->put_Loudness(This,fLoudness)
  12264 #define IAMAudioInputMixer_get_Loudness(This,pfLoudness) (This)->lpVtbl->get_Loudness(This,pfLoudness)
  12265 #define IAMAudioInputMixer_put_Treble(This,Treble) (This)->lpVtbl->put_Treble(This,Treble)
  12266 #define IAMAudioInputMixer_get_Treble(This,pTreble) (This)->lpVtbl->get_Treble(This,pTreble)
  12267 #define IAMAudioInputMixer_get_TrebleRange(This,pRange) (This)->lpVtbl->get_TrebleRange(This,pRange)
  12268 #define IAMAudioInputMixer_put_Bass(This,Bass) (This)->lpVtbl->put_Bass(This,Bass)
  12269 #define IAMAudioInputMixer_get_Bass(This,pBass) (This)->lpVtbl->get_Bass(This,pBass)
  12270 #define IAMAudioInputMixer_get_BassRange(This,pRange) (This)->lpVtbl->get_BassRange(This,pRange)
  12271 #endif
  12272 #endif
  12273   HRESULT WINAPI IAMAudioInputMixer_put_Enable_Proxy(IAMAudioInputMixer *This,WINBOOL fEnable);
  12274   void __RPC_STUB IAMAudioInputMixer_put_Enable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12275   HRESULT WINAPI IAMAudioInputMixer_get_Enable_Proxy(IAMAudioInputMixer *This,WINBOOL *pfEnable);
  12276   void __RPC_STUB IAMAudioInputMixer_get_Enable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12277   HRESULT WINAPI IAMAudioInputMixer_put_Mono_Proxy(IAMAudioInputMixer *This,WINBOOL fMono);
  12278   void __RPC_STUB IAMAudioInputMixer_put_Mono_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12279   HRESULT WINAPI IAMAudioInputMixer_get_Mono_Proxy(IAMAudioInputMixer *This,WINBOOL *pfMono);
  12280   void __RPC_STUB IAMAudioInputMixer_get_Mono_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12281   HRESULT WINAPI IAMAudioInputMixer_put_MixLevel_Proxy(IAMAudioInputMixer *This,double Level);
  12282   void __RPC_STUB IAMAudioInputMixer_put_MixLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12283   HRESULT WINAPI IAMAudioInputMixer_get_MixLevel_Proxy(IAMAudioInputMixer *This,double *pLevel);
  12284   void __RPC_STUB IAMAudioInputMixer_get_MixLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12285   HRESULT WINAPI IAMAudioInputMixer_put_Pan_Proxy(IAMAudioInputMixer *This,double Pan);
  12286   void __RPC_STUB IAMAudioInputMixer_put_Pan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12287   HRESULT WINAPI IAMAudioInputMixer_get_Pan_Proxy(IAMAudioInputMixer *This,double *pPan);
  12288   void __RPC_STUB IAMAudioInputMixer_get_Pan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12289   HRESULT WINAPI IAMAudioInputMixer_put_Loudness_Proxy(IAMAudioInputMixer *This,WINBOOL fLoudness);
  12290   void __RPC_STUB IAMAudioInputMixer_put_Loudness_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12291   HRESULT WINAPI IAMAudioInputMixer_get_Loudness_Proxy(IAMAudioInputMixer *This,WINBOOL *pfLoudness);
  12292   void __RPC_STUB IAMAudioInputMixer_get_Loudness_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12293   HRESULT WINAPI IAMAudioInputMixer_put_Treble_Proxy(IAMAudioInputMixer *This,double Treble);
  12294   void __RPC_STUB IAMAudioInputMixer_put_Treble_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12295   HRESULT WINAPI IAMAudioInputMixer_get_Treble_Proxy(IAMAudioInputMixer *This,double *pTreble);
  12296   void __RPC_STUB IAMAudioInputMixer_get_Treble_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12297   HRESULT WINAPI IAMAudioInputMixer_get_TrebleRange_Proxy(IAMAudioInputMixer *This,double *pRange);
  12298   void __RPC_STUB IAMAudioInputMixer_get_TrebleRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12299   HRESULT WINAPI IAMAudioInputMixer_put_Bass_Proxy(IAMAudioInputMixer *This,double Bass);
  12300   void __RPC_STUB IAMAudioInputMixer_put_Bass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12301   HRESULT WINAPI IAMAudioInputMixer_get_Bass_Proxy(IAMAudioInputMixer *This,double *pBass);
  12302   void __RPC_STUB IAMAudioInputMixer_get_Bass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12303   HRESULT WINAPI IAMAudioInputMixer_get_BassRange_Proxy(IAMAudioInputMixer *This,double *pRange);
  12304   void __RPC_STUB IAMAudioInputMixer_get_BassRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12305 #endif
  12306 
  12307 #define AnalogVideo_NTSC_Mask 0x00000007
  12308 #define AnalogVideo_PAL_Mask 0x00100FF0
  12309 #define AnalogVideo_SECAM_Mask 0x000FF000
  12310 
  12311   typedef enum __MIDL___MIDL_itf_strmif_0173_0001 {
  12312     VideoCopyProtectionMacrovisionBasic = 0,VideoCopyProtectionMacrovisionCBI = VideoCopyProtectionMacrovisionBasic + 1
  12313   } VideoCopyProtectionType;
  12314 
  12315   typedef enum tagPhysicalConnectorType {
  12316     PhysConn_Video_Tuner = 1,
  12317     PhysConn_Video_Composite,PhysConn_Video_SVideo,PhysConn_Video_RGB,
  12318     PhysConn_Video_YRYBY,PhysConn_Video_SerialDigital,PhysConn_Video_ParallelDigital,
  12319     PhysConn_Video_SCSI,PhysConn_Video_AUX,PhysConn_Video_1394,PhysConn_Video_USB,
  12320     PhysConn_Video_VideoDecoder,PhysConn_Video_VideoEncoder,PhysConn_Video_SCART,PhysConn_Video_Black,
  12321     PhysConn_Audio_Tuner = 0x1000,PhysConn_Audio_Line = 0x1001,PhysConn_Audio_Mic = 0x1002,
  12322     PhysConn_Audio_AESDigital = 0x1003,PhysConn_Audio_SPDIFDigital = 0x1004,
  12323     PhysConn_Audio_SCSI = 0x1005,PhysConn_Audio_AUX = 0x1006,PhysConn_Audio_1394 = 0x1007,
  12324     PhysConn_Audio_USB = 0x1008,PhysConn_Audio_AudioDecoder = 0x1009
  12325   } PhysicalConnectorType;
  12326 
  12327   extern RPC_IF_HANDLE __MIDL_itf_strmif_0173_v0_0_c_ifspec;
  12328   extern RPC_IF_HANDLE __MIDL_itf_strmif_0173_v0_0_s_ifspec;
  12329 #ifndef __IAMAnalogVideoDecoder_INTERFACE_DEFINED__
  12330 #define __IAMAnalogVideoDecoder_INTERFACE_DEFINED__
  12331   EXTERN_C const IID IID_IAMAnalogVideoDecoder;
  12332 #if defined(__cplusplus) && !defined(CINTERFACE)
  12333   struct IAMAnalogVideoDecoder : public IUnknown {
  12334   public:
  12335     virtual HRESULT WINAPI get_AvailableTVFormats(LONG *lAnalogVideoStandard) = 0;
  12336     virtual HRESULT WINAPI put_TVFormat(LONG lAnalogVideoStandard) = 0;
  12337     virtual HRESULT WINAPI get_TVFormat(LONG *plAnalogVideoStandard) = 0;
  12338     virtual HRESULT WINAPI get_HorizontalLocked(LONG *plLocked) = 0;
  12339     virtual HRESULT WINAPI put_VCRHorizontalLocking(LONG lVCRHorizontalLocking) = 0;
  12340     virtual HRESULT WINAPI get_VCRHorizontalLocking(LONG *plVCRHorizontalLocking) = 0;
  12341     virtual HRESULT WINAPI get_NumberOfLines(LONG *plNumberOfLines) = 0;
  12342     virtual HRESULT WINAPI put_OutputEnable(LONG lOutputEnable) = 0;
  12343     virtual HRESULT WINAPI get_OutputEnable(LONG *plOutputEnable) = 0;
  12344   };
  12345 #else
  12346   typedef struct IAMAnalogVideoDecoderVtbl {
  12347     BEGIN_INTERFACE
  12348       HRESULT (WINAPI *QueryInterface)(IAMAnalogVideoDecoder *This,REFIID riid,void **ppvObject);
  12349       ULONG (WINAPI *AddRef)(IAMAnalogVideoDecoder *This);
  12350       ULONG (WINAPI *Release)(IAMAnalogVideoDecoder *This);
  12351       HRESULT (WINAPI *get_AvailableTVFormats)(IAMAnalogVideoDecoder *This,LONG *lAnalogVideoStandard);
  12352       HRESULT (WINAPI *put_TVFormat)(IAMAnalogVideoDecoder *This,LONG lAnalogVideoStandard);
  12353       HRESULT (WINAPI *get_TVFormat)(IAMAnalogVideoDecoder *This,LONG *plAnalogVideoStandard);
  12354       HRESULT (WINAPI *get_HorizontalLocked)(IAMAnalogVideoDecoder *This,LONG *plLocked);
  12355       HRESULT (WINAPI *put_VCRHorizontalLocking)(IAMAnalogVideoDecoder *This,LONG lVCRHorizontalLocking);
  12356       HRESULT (WINAPI *get_VCRHorizontalLocking)(IAMAnalogVideoDecoder *This,LONG *plVCRHorizontalLocking);
  12357       HRESULT (WINAPI *get_NumberOfLines)(IAMAnalogVideoDecoder *This,LONG *plNumberOfLines);
  12358       HRESULT (WINAPI *put_OutputEnable)(IAMAnalogVideoDecoder *This,LONG lOutputEnable);
  12359       HRESULT (WINAPI *get_OutputEnable)(IAMAnalogVideoDecoder *This,LONG *plOutputEnable);
  12360     END_INTERFACE
  12361   } IAMAnalogVideoDecoderVtbl;
  12362   struct IAMAnalogVideoDecoder {
  12363     CONST_VTBL struct IAMAnalogVideoDecoderVtbl *lpVtbl;
  12364   };
  12365 #ifdef COBJMACROS
  12366 #define IAMAnalogVideoDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12367 #define IAMAnalogVideoDecoder_AddRef(This) (This)->lpVtbl->AddRef(This)
  12368 #define IAMAnalogVideoDecoder_Release(This) (This)->lpVtbl->Release(This)
  12369 #define IAMAnalogVideoDecoder_get_AvailableTVFormats(This,lAnalogVideoStandard) (This)->lpVtbl->get_AvailableTVFormats(This,lAnalogVideoStandard)
  12370 #define IAMAnalogVideoDecoder_put_TVFormat(This,lAnalogVideoStandard) (This)->lpVtbl->put_TVFormat(This,lAnalogVideoStandard)
  12371 #define IAMAnalogVideoDecoder_get_TVFormat(This,plAnalogVideoStandard) (This)->lpVtbl->get_TVFormat(This,plAnalogVideoStandard)
  12372 #define IAMAnalogVideoDecoder_get_HorizontalLocked(This,plLocked) (This)->lpVtbl->get_HorizontalLocked(This,plLocked)
  12373 #define IAMAnalogVideoDecoder_put_VCRHorizontalLocking(This,lVCRHorizontalLocking) (This)->lpVtbl->put_VCRHorizontalLocking(This,lVCRHorizontalLocking)
  12374 #define IAMAnalogVideoDecoder_get_VCRHorizontalLocking(This,plVCRHorizontalLocking) (This)->lpVtbl->get_VCRHorizontalLocking(This,plVCRHorizontalLocking)
  12375 #define IAMAnalogVideoDecoder_get_NumberOfLines(This,plNumberOfLines) (This)->lpVtbl->get_NumberOfLines(This,plNumberOfLines)
  12376 #define IAMAnalogVideoDecoder_put_OutputEnable(This,lOutputEnable) (This)->lpVtbl->put_OutputEnable(This,lOutputEnable)
  12377 #define IAMAnalogVideoDecoder_get_OutputEnable(This,plOutputEnable) (This)->lpVtbl->get_OutputEnable(This,plOutputEnable)
  12378 #endif
  12379 #endif
  12380   HRESULT WINAPI IAMAnalogVideoDecoder_get_AvailableTVFormats_Proxy(IAMAnalogVideoDecoder *This,LONG *lAnalogVideoStandard);
  12381   void __RPC_STUB IAMAnalogVideoDecoder_get_AvailableTVFormats_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12382   HRESULT WINAPI IAMAnalogVideoDecoder_put_TVFormat_Proxy(IAMAnalogVideoDecoder *This,LONG lAnalogVideoStandard);
  12383   void __RPC_STUB IAMAnalogVideoDecoder_put_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12384   HRESULT WINAPI IAMAnalogVideoDecoder_get_TVFormat_Proxy(IAMAnalogVideoDecoder *This,LONG *plAnalogVideoStandard);
  12385   void __RPC_STUB IAMAnalogVideoDecoder_get_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12386   HRESULT WINAPI IAMAnalogVideoDecoder_get_HorizontalLocked_Proxy(IAMAnalogVideoDecoder *This,LONG *plLocked);
  12387   void __RPC_STUB IAMAnalogVideoDecoder_get_HorizontalLocked_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12388   HRESULT WINAPI IAMAnalogVideoDecoder_put_VCRHorizontalLocking_Proxy(IAMAnalogVideoDecoder *This,LONG lVCRHorizontalLocking);
  12389   void __RPC_STUB IAMAnalogVideoDecoder_put_VCRHorizontalLocking_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12390   HRESULT WINAPI IAMAnalogVideoDecoder_get_VCRHorizontalLocking_Proxy(IAMAnalogVideoDecoder *This,LONG *plVCRHorizontalLocking);
  12391   void __RPC_STUB IAMAnalogVideoDecoder_get_VCRHorizontalLocking_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12392   HRESULT WINAPI IAMAnalogVideoDecoder_get_NumberOfLines_Proxy(IAMAnalogVideoDecoder *This,LONG *plNumberOfLines);
  12393   void __RPC_STUB IAMAnalogVideoDecoder_get_NumberOfLines_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12394   HRESULT WINAPI IAMAnalogVideoDecoder_put_OutputEnable_Proxy(IAMAnalogVideoDecoder *This,LONG lOutputEnable);
  12395   void __RPC_STUB IAMAnalogVideoDecoder_put_OutputEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12396   HRESULT WINAPI IAMAnalogVideoDecoder_get_OutputEnable_Proxy(IAMAnalogVideoDecoder *This,LONG *plOutputEnable);
  12397   void __RPC_STUB IAMAnalogVideoDecoder_get_OutputEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12398 #endif
  12399 
  12400   typedef enum tagCameraControlProperty {
  12401     CameraControl_Pan = 0,
  12402     CameraControl_Tilt,CameraControl_Roll,CameraControl_Zoom,CameraControl_Exposure,
  12403     CameraControl_Iris,CameraControl_Focus
  12404   } CameraControlProperty;
  12405 
  12406   typedef enum tagCameraControlFlags {
  12407     CameraControl_Flags_Auto = 0x1,CameraControl_Flags_Manual = 0x2
  12408   } CameraControlFlags;
  12409 
  12410   extern RPC_IF_HANDLE __MIDL_itf_strmif_0175_v0_0_c_ifspec;
  12411   extern RPC_IF_HANDLE __MIDL_itf_strmif_0175_v0_0_s_ifspec;
  12412 
  12413   typedef enum tagVideoControlFlags {
  12414     VideoControlFlag_FlipHorizontal = 0x1,VideoControlFlag_FlipVertical = 0x2,VideoControlFlag_ExternalTriggerEnable = 0x4,VideoControlFlag_Trigger = 0x8
  12415   } VideoControlFlags;
  12416 
  12417   extern RPC_IF_HANDLE __MIDL_itf_strmif_0176_v0_0_c_ifspec;
  12418   extern RPC_IF_HANDLE __MIDL_itf_strmif_0176_v0_0_s_ifspec;
  12419 
  12420   typedef enum tagAMTunerSubChannel {
  12421     AMTUNER_SUBCHAN_NO_TUNE = -2,AMTUNER_SUBCHAN_DEFAULT = -1
  12422   } AMTunerSubChannel;
  12423 
  12424   typedef enum tagAMTunerSignalStrength {
  12425     AMTUNER_HASNOSIGNALSTRENGTH = -1,AMTUNER_NOSIGNAL = 0,AMTUNER_SIGNALPRESENT = 1
  12426   } AMTunerSignalStrength;
  12427 
  12428   extern RPC_IF_HANDLE __MIDL_itf_strmif_0178_v0_0_c_ifspec;
  12429   extern RPC_IF_HANDLE __MIDL_itf_strmif_0178_v0_0_s_ifspec;
  12430 
  12431 #ifndef __IBPCSatelliteTuner_INTERFACE_DEFINED__
  12432 #define __IBPCSatelliteTuner_INTERFACE_DEFINED__
  12433   EXTERN_C const IID IID_IBPCSatelliteTuner;
  12434 #if defined(__cplusplus) && !defined(CINTERFACE)
  12435   struct IBPCSatelliteTuner : public IAMTuner {
  12436   public:
  12437     virtual HRESULT WINAPI get_DefaultSubChannelTypes(LONG *plDefaultVideoType,LONG *plDefaultAudioType) = 0;
  12438     virtual HRESULT WINAPI put_DefaultSubChannelTypes(LONG lDefaultVideoType,LONG lDefaultAudioType) = 0;
  12439     virtual HRESULT WINAPI IsTapingPermitted(void) = 0;
  12440   };
  12441 #else
  12442   typedef struct IBPCSatelliteTunerVtbl {
  12443     BEGIN_INTERFACE
  12444       HRESULT (WINAPI *QueryInterface)(IBPCSatelliteTuner *This,REFIID riid,void **ppvObject);
  12445       ULONG (WINAPI *AddRef)(IBPCSatelliteTuner *This);
  12446       ULONG (WINAPI *Release)(IBPCSatelliteTuner *This);
  12447       HRESULT (WINAPI *put_Channel)(IBPCSatelliteTuner *This,LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel);
  12448       HRESULT (WINAPI *get_Channel)(IBPCSatelliteTuner *This,LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel);
  12449       HRESULT (WINAPI *ChannelMinMax)(IBPCSatelliteTuner *This,LONG *lChannelMin,LONG *lChannelMax);
  12450       HRESULT (WINAPI *put_CountryCode)(IBPCSatelliteTuner *This,LONG lCountryCode);
  12451       HRESULT (WINAPI *get_CountryCode)(IBPCSatelliteTuner *This,LONG *plCountryCode);
  12452       HRESULT (WINAPI *put_TuningSpace)(IBPCSatelliteTuner *This,LONG lTuningSpace);
  12453       HRESULT (WINAPI *get_TuningSpace)(IBPCSatelliteTuner *This,LONG *plTuningSpace);
  12454       HRESULT (WINAPI *Logon)(IBPCSatelliteTuner *This,HANDLE hCurrentUser);
  12455       HRESULT (WINAPI *Logout)(IBPCSatelliteTuner *This);
  12456       HRESULT (WINAPI *SignalPresent)(IBPCSatelliteTuner *This,LONG *plSignalStrength);
  12457       HRESULT (WINAPI *put_Mode)(IBPCSatelliteTuner *This,AMTunerModeType lMode);
  12458       HRESULT (WINAPI *get_Mode)(IBPCSatelliteTuner *This,AMTunerModeType *plMode);
  12459       HRESULT (WINAPI *GetAvailableModes)(IBPCSatelliteTuner *This,LONG *plModes);
  12460       HRESULT (WINAPI *RegisterNotificationCallBack)(IBPCSatelliteTuner *This,IAMTunerNotification *pNotify,LONG lEvents);
  12461       HRESULT (WINAPI *UnRegisterNotificationCallBack)(IBPCSatelliteTuner *This,IAMTunerNotification *pNotify);
  12462       HRESULT (WINAPI *get_DefaultSubChannelTypes)(IBPCSatelliteTuner *This,LONG *plDefaultVideoType,LONG *plDefaultAudioType);
  12463       HRESULT (WINAPI *put_DefaultSubChannelTypes)(IBPCSatelliteTuner *This,LONG lDefaultVideoType,LONG lDefaultAudioType);
  12464       HRESULT (WINAPI *IsTapingPermitted)(IBPCSatelliteTuner *This);
  12465     END_INTERFACE
  12466   } IBPCSatelliteTunerVtbl;
  12467   struct IBPCSatelliteTuner {
  12468     CONST_VTBL struct IBPCSatelliteTunerVtbl *lpVtbl;
  12469   };
  12470 #ifdef COBJMACROS
  12471 #define IBPCSatelliteTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12472 #define IBPCSatelliteTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
  12473 #define IBPCSatelliteTuner_Release(This) (This)->lpVtbl->Release(This)
  12474 #define IBPCSatelliteTuner_put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel) (This)->lpVtbl->put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel)
  12475 #define IBPCSatelliteTuner_get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel) (This)->lpVtbl->get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel)
  12476 #define IBPCSatelliteTuner_ChannelMinMax(This,lChannelMin,lChannelMax) (This)->lpVtbl->ChannelMinMax(This,lChannelMin,lChannelMax)
  12477 #define IBPCSatelliteTuner_put_CountryCode(This,lCountryCode) (This)->lpVtbl->put_CountryCode(This,lCountryCode)
  12478 #define IBPCSatelliteTuner_get_CountryCode(This,plCountryCode) (This)->lpVtbl->get_CountryCode(This,plCountryCode)
  12479 #define IBPCSatelliteTuner_put_TuningSpace(This,lTuningSpace) (This)->lpVtbl->put_TuningSpace(This,lTuningSpace)
  12480 #define IBPCSatelliteTuner_get_TuningSpace(This,plTuningSpace) (This)->lpVtbl->get_TuningSpace(This,plTuningSpace)
  12481 #define IBPCSatelliteTuner_Logon(This,hCurrentUser) (This)->lpVtbl->Logon(This,hCurrentUser)
  12482 #define IBPCSatelliteTuner_Logout(This) (This)->lpVtbl->Logout(This)
  12483 #define IBPCSatelliteTuner_SignalPresent(This,plSignalStrength) (This)->lpVtbl->SignalPresent(This,plSignalStrength)
  12484 #define IBPCSatelliteTuner_put_Mode(This,lMode) (This)->lpVtbl->put_Mode(This,lMode)
  12485 #define IBPCSatelliteTuner_get_Mode(This,plMode) (This)->lpVtbl->get_Mode(This,plMode)
  12486 #define IBPCSatelliteTuner_GetAvailableModes(This,plModes) (This)->lpVtbl->GetAvailableModes(This,plModes)
  12487 #define IBPCSatelliteTuner_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
  12488 #define IBPCSatelliteTuner_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
  12489 #define IBPCSatelliteTuner_get_DefaultSubChannelTypes(This,plDefaultVideoType,plDefaultAudioType) (This)->lpVtbl->get_DefaultSubChannelTypes(This,plDefaultVideoType,plDefaultAudioType)
  12490 #define IBPCSatelliteTuner_put_DefaultSubChannelTypes(This,lDefaultVideoType,lDefaultAudioType) (This)->lpVtbl->put_DefaultSubChannelTypes(This,lDefaultVideoType,lDefaultAudioType)
  12491 #define IBPCSatelliteTuner_IsTapingPermitted(This) (This)->lpVtbl->IsTapingPermitted(This)
  12492 #endif
  12493 #endif
  12494   HRESULT WINAPI IBPCSatelliteTuner_get_DefaultSubChannelTypes_Proxy(IBPCSatelliteTuner *This,LONG *plDefaultVideoType,LONG *plDefaultAudioType);
  12495   void __RPC_STUB IBPCSatelliteTuner_get_DefaultSubChannelTypes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12496   HRESULT WINAPI IBPCSatelliteTuner_put_DefaultSubChannelTypes_Proxy(IBPCSatelliteTuner *This,LONG lDefaultVideoType,LONG lDefaultAudioType);
  12497   void __RPC_STUB IBPCSatelliteTuner_put_DefaultSubChannelTypes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12498   HRESULT WINAPI IBPCSatelliteTuner_IsTapingPermitted_Proxy(IBPCSatelliteTuner *This);
  12499   void __RPC_STUB IBPCSatelliteTuner_IsTapingPermitted_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12500 #endif
  12501 
  12502   typedef enum tagAMTVAudioEventType {
  12503     AMTVAUDIO_EVENT_CHANGED = 0x1
  12504   } AMTVAudioEventType;
  12505 
  12506   extern RPC_IF_HANDLE __MIDL_itf_strmif_0182_v0_0_c_ifspec;
  12507   extern RPC_IF_HANDLE __MIDL_itf_strmif_0182_v0_0_s_ifspec;
  12508 #ifndef __IAMTVAudio_INTERFACE_DEFINED__
  12509 #define __IAMTVAudio_INTERFACE_DEFINED__
  12510   EXTERN_C const IID IID_IAMTVAudio;
  12511 #if defined(__cplusplus) && !defined(CINTERFACE)
  12512   struct IAMTVAudio : public IUnknown {
  12513   public:
  12514     virtual HRESULT WINAPI GetHardwareSupportedTVAudioModes(LONG *plModes) = 0;
  12515     virtual HRESULT WINAPI GetAvailableTVAudioModes(LONG *plModes) = 0;
  12516     virtual HRESULT WINAPI get_TVAudioMode(LONG *plMode) = 0;
  12517     virtual HRESULT WINAPI put_TVAudioMode(LONG lMode) = 0;
  12518     virtual HRESULT WINAPI RegisterNotificationCallBack(IAMTunerNotification *pNotify,LONG lEvents) = 0;
  12519     virtual HRESULT WINAPI UnRegisterNotificationCallBack(IAMTunerNotification *pNotify) = 0;
  12520   };
  12521 #else
  12522   typedef struct IAMTVAudioVtbl {
  12523     BEGIN_INTERFACE
  12524       HRESULT (WINAPI *QueryInterface)(IAMTVAudio *This,REFIID riid,void **ppvObject);
  12525       ULONG (WINAPI *AddRef)(IAMTVAudio *This);
  12526       ULONG (WINAPI *Release)(IAMTVAudio *This);
  12527       HRESULT (WINAPI *GetHardwareSupportedTVAudioModes)(IAMTVAudio *This,LONG *plModes);
  12528       HRESULT (WINAPI *GetAvailableTVAudioModes)(IAMTVAudio *This,LONG *plModes);
  12529       HRESULT (WINAPI *get_TVAudioMode)(IAMTVAudio *This,LONG *plMode);
  12530       HRESULT (WINAPI *put_TVAudioMode)(IAMTVAudio *This,LONG lMode);
  12531       HRESULT (WINAPI *RegisterNotificationCallBack)(IAMTVAudio *This,IAMTunerNotification *pNotify,LONG lEvents);
  12532       HRESULT (WINAPI *UnRegisterNotificationCallBack)(IAMTVAudio *This,IAMTunerNotification *pNotify);
  12533     END_INTERFACE
  12534   } IAMTVAudioVtbl;
  12535   struct IAMTVAudio {
  12536     CONST_VTBL struct IAMTVAudioVtbl *lpVtbl;
  12537   };
  12538 #ifdef COBJMACROS
  12539 #define IAMTVAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12540 #define IAMTVAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
  12541 #define IAMTVAudio_Release(This) (This)->lpVtbl->Release(This)
  12542 #define IAMTVAudio_GetHardwareSupportedTVAudioModes(This,plModes) (This)->lpVtbl->GetHardwareSupportedTVAudioModes(This,plModes)
  12543 #define IAMTVAudio_GetAvailableTVAudioModes(This,plModes) (This)->lpVtbl->GetAvailableTVAudioModes(This,plModes)
  12544 #define IAMTVAudio_get_TVAudioMode(This,plMode) (This)->lpVtbl->get_TVAudioMode(This,plMode)
  12545 #define IAMTVAudio_put_TVAudioMode(This,lMode) (This)->lpVtbl->put_TVAudioMode(This,lMode)
  12546 #define IAMTVAudio_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
  12547 #define IAMTVAudio_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
  12548 #endif
  12549 #endif
  12550   HRESULT WINAPI IAMTVAudio_GetHardwareSupportedTVAudioModes_Proxy(IAMTVAudio *This,LONG *plModes);
  12551   void __RPC_STUB IAMTVAudio_GetHardwareSupportedTVAudioModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12552   HRESULT WINAPI IAMTVAudio_GetAvailableTVAudioModes_Proxy(IAMTVAudio *This,LONG *plModes);
  12553   void __RPC_STUB IAMTVAudio_GetAvailableTVAudioModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12554   HRESULT WINAPI IAMTVAudio_get_TVAudioMode_Proxy(IAMTVAudio *This,LONG *plMode);
  12555   void __RPC_STUB IAMTVAudio_get_TVAudioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12556   HRESULT WINAPI IAMTVAudio_put_TVAudioMode_Proxy(IAMTVAudio *This,LONG lMode);
  12557   void __RPC_STUB IAMTVAudio_put_TVAudioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12558   HRESULT WINAPI IAMTVAudio_RegisterNotificationCallBack_Proxy(IAMTVAudio *This,IAMTunerNotification *pNotify,LONG lEvents);
  12559   void __RPC_STUB IAMTVAudio_RegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12560   HRESULT WINAPI IAMTVAudio_UnRegisterNotificationCallBack_Proxy(IAMTVAudio *This,IAMTunerNotification *pNotify);
  12561   void __RPC_STUB IAMTVAudio_UnRegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12562 #endif
  12563 
  12564 #ifndef __IAMTVAudioNotification_INTERFACE_DEFINED__
  12565 #define __IAMTVAudioNotification_INTERFACE_DEFINED__
  12566   EXTERN_C const IID IID_IAMTVAudioNotification;
  12567 #if defined(__cplusplus) && !defined(CINTERFACE)
  12568   struct IAMTVAudioNotification : public IUnknown {
  12569   public:
  12570     virtual HRESULT WINAPI OnEvent(AMTVAudioEventType Event) = 0;
  12571   };
  12572 #else
  12573   typedef struct IAMTVAudioNotificationVtbl {
  12574     BEGIN_INTERFACE
  12575       HRESULT (WINAPI *QueryInterface)(IAMTVAudioNotification *This,REFIID riid,void **ppvObject);
  12576       ULONG (WINAPI *AddRef)(IAMTVAudioNotification *This);
  12577       ULONG (WINAPI *Release)(IAMTVAudioNotification *This);
  12578       HRESULT (WINAPI *OnEvent)(IAMTVAudioNotification *This,AMTVAudioEventType Event);
  12579     END_INTERFACE
  12580   } IAMTVAudioNotificationVtbl;
  12581   struct IAMTVAudioNotification {
  12582     CONST_VTBL struct IAMTVAudioNotificationVtbl *lpVtbl;
  12583   };
  12584 #ifdef COBJMACROS
  12585 #define IAMTVAudioNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12586 #define IAMTVAudioNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
  12587 #define IAMTVAudioNotification_Release(This) (This)->lpVtbl->Release(This)
  12588 #define IAMTVAudioNotification_OnEvent(This,Event) (This)->lpVtbl->OnEvent(This,Event)
  12589 #endif
  12590 #endif
  12591   HRESULT WINAPI IAMTVAudioNotification_OnEvent_Proxy(IAMTVAudioNotification *This,AMTVAudioEventType Event);
  12592   void __RPC_STUB IAMTVAudioNotification_OnEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12593 #endif
  12594 
  12595 #ifndef __IAMAnalogVideoEncoder_INTERFACE_DEFINED__
  12596 #define __IAMAnalogVideoEncoder_INTERFACE_DEFINED__
  12597   EXTERN_C const IID IID_IAMAnalogVideoEncoder;
  12598 #if defined(__cplusplus) && !defined(CINTERFACE)
  12599   struct IAMAnalogVideoEncoder : public IUnknown {
  12600   public:
  12601     virtual HRESULT WINAPI get_AvailableTVFormats(LONG *lAnalogVideoStandard) = 0;
  12602     virtual HRESULT WINAPI put_TVFormat(LONG lAnalogVideoStandard) = 0;
  12603     virtual HRESULT WINAPI get_TVFormat(LONG *plAnalogVideoStandard) = 0;
  12604     virtual HRESULT WINAPI put_CopyProtection(LONG lVideoCopyProtection) = 0;
  12605     virtual HRESULT WINAPI get_CopyProtection(LONG *lVideoCopyProtection) = 0;
  12606     virtual HRESULT WINAPI put_CCEnable(LONG lCCEnable) = 0;
  12607     virtual HRESULT WINAPI get_CCEnable(LONG *lCCEnable) = 0;
  12608   };
  12609 #else
  12610   typedef struct IAMAnalogVideoEncoderVtbl {
  12611     BEGIN_INTERFACE
  12612       HRESULT (WINAPI *QueryInterface)(IAMAnalogVideoEncoder *This,REFIID riid,void **ppvObject);
  12613       ULONG (WINAPI *AddRef)(IAMAnalogVideoEncoder *This);
  12614       ULONG (WINAPI *Release)(IAMAnalogVideoEncoder *This);
  12615       HRESULT (WINAPI *get_AvailableTVFormats)(IAMAnalogVideoEncoder *This,LONG *lAnalogVideoStandard);
  12616       HRESULT (WINAPI *put_TVFormat)(IAMAnalogVideoEncoder *This,LONG lAnalogVideoStandard);
  12617       HRESULT (WINAPI *get_TVFormat)(IAMAnalogVideoEncoder *This,LONG *plAnalogVideoStandard);
  12618       HRESULT (WINAPI *put_CopyProtection)(IAMAnalogVideoEncoder *This,LONG lVideoCopyProtection);
  12619       HRESULT (WINAPI *get_CopyProtection)(IAMAnalogVideoEncoder *This,LONG *lVideoCopyProtection);
  12620       HRESULT (WINAPI *put_CCEnable)(IAMAnalogVideoEncoder *This,LONG lCCEnable);
  12621       HRESULT (WINAPI *get_CCEnable)(IAMAnalogVideoEncoder *This,LONG *lCCEnable);
  12622     END_INTERFACE
  12623   } IAMAnalogVideoEncoderVtbl;
  12624   struct IAMAnalogVideoEncoder {
  12625     CONST_VTBL struct IAMAnalogVideoEncoderVtbl *lpVtbl;
  12626   };
  12627 #ifdef COBJMACROS
  12628 #define IAMAnalogVideoEncoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12629 #define IAMAnalogVideoEncoder_AddRef(This) (This)->lpVtbl->AddRef(This)
  12630 #define IAMAnalogVideoEncoder_Release(This) (This)->lpVtbl->Release(This)
  12631 #define IAMAnalogVideoEncoder_get_AvailableTVFormats(This,lAnalogVideoStandard) (This)->lpVtbl->get_AvailableTVFormats(This,lAnalogVideoStandard)
  12632 #define IAMAnalogVideoEncoder_put_TVFormat(This,lAnalogVideoStandard) (This)->lpVtbl->put_TVFormat(This,lAnalogVideoStandard)
  12633 #define IAMAnalogVideoEncoder_get_TVFormat(This,plAnalogVideoStandard) (This)->lpVtbl->get_TVFormat(This,plAnalogVideoStandard)
  12634 #define IAMAnalogVideoEncoder_put_CopyProtection(This,lVideoCopyProtection) (This)->lpVtbl->put_CopyProtection(This,lVideoCopyProtection)
  12635 #define IAMAnalogVideoEncoder_get_CopyProtection(This,lVideoCopyProtection) (This)->lpVtbl->get_CopyProtection(This,lVideoCopyProtection)
  12636 #define IAMAnalogVideoEncoder_put_CCEnable(This,lCCEnable) (This)->lpVtbl->put_CCEnable(This,lCCEnable)
  12637 #define IAMAnalogVideoEncoder_get_CCEnable(This,lCCEnable) (This)->lpVtbl->get_CCEnable(This,lCCEnable)
  12638 #endif
  12639 #endif
  12640   HRESULT WINAPI IAMAnalogVideoEncoder_get_AvailableTVFormats_Proxy(IAMAnalogVideoEncoder *This,LONG *lAnalogVideoStandard);
  12641   void __RPC_STUB IAMAnalogVideoEncoder_get_AvailableTVFormats_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12642   HRESULT WINAPI IAMAnalogVideoEncoder_put_TVFormat_Proxy(IAMAnalogVideoEncoder *This,LONG lAnalogVideoStandard);
  12643   void __RPC_STUB IAMAnalogVideoEncoder_put_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12644   HRESULT WINAPI IAMAnalogVideoEncoder_get_TVFormat_Proxy(IAMAnalogVideoEncoder *This,LONG *plAnalogVideoStandard);
  12645   void __RPC_STUB IAMAnalogVideoEncoder_get_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12646   HRESULT WINAPI IAMAnalogVideoEncoder_put_CopyProtection_Proxy(IAMAnalogVideoEncoder *This,LONG lVideoCopyProtection);
  12647   void __RPC_STUB IAMAnalogVideoEncoder_put_CopyProtection_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12648   HRESULT WINAPI IAMAnalogVideoEncoder_get_CopyProtection_Proxy(IAMAnalogVideoEncoder *This,LONG *lVideoCopyProtection);
  12649   void __RPC_STUB IAMAnalogVideoEncoder_get_CopyProtection_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12650   HRESULT WINAPI IAMAnalogVideoEncoder_put_CCEnable_Proxy(IAMAnalogVideoEncoder *This,LONG lCCEnable);
  12651   void __RPC_STUB IAMAnalogVideoEncoder_put_CCEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12652   HRESULT WINAPI IAMAnalogVideoEncoder_get_CCEnable_Proxy(IAMAnalogVideoEncoder *This,LONG *lCCEnable);
  12653   void __RPC_STUB IAMAnalogVideoEncoder_get_CCEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12654 #endif
  12655 
  12656 #ifndef __IAMPhysicalPinInfo_INTERFACE_DEFINED__
  12657 #define __IAMPhysicalPinInfo_INTERFACE_DEFINED__
  12658   EXTERN_C const IID IID_IAMPhysicalPinInfo;
  12659 #if defined(__cplusplus) && !defined(CINTERFACE)
  12660   struct IAMPhysicalPinInfo : public IUnknown {
  12661   public:
  12662     virtual HRESULT WINAPI GetPhysicalType(LONG *pType,LPOLESTR *ppszType) = 0;
  12663   };
  12664 #else
  12665   typedef struct IAMPhysicalPinInfoVtbl {
  12666     BEGIN_INTERFACE
  12667       HRESULT (WINAPI *QueryInterface)(IAMPhysicalPinInfo *This,REFIID riid,void **ppvObject);
  12668       ULONG (WINAPI *AddRef)(IAMPhysicalPinInfo *This);
  12669       ULONG (WINAPI *Release)(IAMPhysicalPinInfo *This);
  12670       HRESULT (WINAPI *GetPhysicalType)(IAMPhysicalPinInfo *This,LONG *pType,LPOLESTR *ppszType);
  12671     END_INTERFACE
  12672   } IAMPhysicalPinInfoVtbl;
  12673   struct IAMPhysicalPinInfo {
  12674     CONST_VTBL struct IAMPhysicalPinInfoVtbl *lpVtbl;
  12675   };
  12676 #ifdef COBJMACROS
  12677 #define IAMPhysicalPinInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12678 #define IAMPhysicalPinInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  12679 #define IAMPhysicalPinInfo_Release(This) (This)->lpVtbl->Release(This)
  12680 #define IAMPhysicalPinInfo_GetPhysicalType(This,pType,ppszType) (This)->lpVtbl->GetPhysicalType(This,pType,ppszType)
  12681 #endif
  12682 #endif
  12683   HRESULT WINAPI IAMPhysicalPinInfo_GetPhysicalType_Proxy(IAMPhysicalPinInfo *This,LONG *pType,LPOLESTR *ppszType);
  12684   void __RPC_STUB IAMPhysicalPinInfo_GetPhysicalType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12685 #endif
  12686 
  12687   typedef IAMPhysicalPinInfo *PAMPHYSICALPININFO;
  12688 
  12689   extern RPC_IF_HANDLE __MIDL_itf_strmif_0338_v0_0_c_ifspec;
  12690   extern RPC_IF_HANDLE __MIDL_itf_strmif_0338_v0_0_s_ifspec;
  12691 #ifndef __IAMExtDevice_INTERFACE_DEFINED__
  12692 #define __IAMExtDevice_INTERFACE_DEFINED__
  12693   EXTERN_C const IID IID_IAMExtDevice;
  12694 #if defined(__cplusplus) && !defined(CINTERFACE)
  12695   struct IAMExtDevice : public IUnknown {
  12696   public:
  12697     virtual HRESULT WINAPI GetCapability(LONG Capability,LONG *pValue,double *pdblValue) = 0;
  12698     virtual HRESULT WINAPI get_ExternalDeviceID(LPOLESTR *ppszData) = 0;
  12699     virtual HRESULT WINAPI get_ExternalDeviceVersion(LPOLESTR *ppszData) = 0;
  12700     virtual HRESULT WINAPI put_DevicePower(LONG PowerMode) = 0;
  12701     virtual HRESULT WINAPI get_DevicePower(LONG *pPowerMode) = 0;
  12702     virtual HRESULT WINAPI Calibrate(HEVENT hEvent,LONG Mode,LONG *pStatus) = 0;
  12703     virtual HRESULT WINAPI put_DevicePort(LONG DevicePort) = 0;
  12704     virtual HRESULT WINAPI get_DevicePort(LONG *pDevicePort) = 0;
  12705   };
  12706 #else
  12707   typedef struct IAMExtDeviceVtbl {
  12708     BEGIN_INTERFACE
  12709       HRESULT (WINAPI *QueryInterface)(IAMExtDevice *This,REFIID riid,void **ppvObject);
  12710       ULONG (WINAPI *AddRef)(IAMExtDevice *This);
  12711       ULONG (WINAPI *Release)(IAMExtDevice *This);
  12712       HRESULT (WINAPI *GetCapability)(IAMExtDevice *This,LONG Capability,LONG *pValue,double *pdblValue);
  12713       HRESULT (WINAPI *get_ExternalDeviceID)(IAMExtDevice *This,LPOLESTR *ppszData);
  12714       HRESULT (WINAPI *get_ExternalDeviceVersion)(IAMExtDevice *This,LPOLESTR *ppszData);
  12715       HRESULT (WINAPI *put_DevicePower)(IAMExtDevice *This,LONG PowerMode);
  12716       HRESULT (WINAPI *get_DevicePower)(IAMExtDevice *This,LONG *pPowerMode);
  12717       HRESULT (WINAPI *Calibrate)(IAMExtDevice *This,HEVENT hEvent,LONG Mode,LONG *pStatus);
  12718       HRESULT (WINAPI *put_DevicePort)(IAMExtDevice *This,LONG DevicePort);
  12719       HRESULT (WINAPI *get_DevicePort)(IAMExtDevice *This,LONG *pDevicePort);
  12720     END_INTERFACE
  12721   } IAMExtDeviceVtbl;
  12722   struct IAMExtDevice {
  12723     CONST_VTBL struct IAMExtDeviceVtbl *lpVtbl;
  12724   };
  12725 #ifdef COBJMACROS
  12726 #define IAMExtDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12727 #define IAMExtDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
  12728 #define IAMExtDevice_Release(This) (This)->lpVtbl->Release(This)
  12729 #define IAMExtDevice_GetCapability(This,Capability,pValue,pdblValue) (This)->lpVtbl->GetCapability(This,Capability,pValue,pdblValue)
  12730 #define IAMExtDevice_get_ExternalDeviceID(This,ppszData) (This)->lpVtbl->get_ExternalDeviceID(This,ppszData)
  12731 #define IAMExtDevice_get_ExternalDeviceVersion(This,ppszData) (This)->lpVtbl->get_ExternalDeviceVersion(This,ppszData)
  12732 #define IAMExtDevice_put_DevicePower(This,PowerMode) (This)->lpVtbl->put_DevicePower(This,PowerMode)
  12733 #define IAMExtDevice_get_DevicePower(This,pPowerMode) (This)->lpVtbl->get_DevicePower(This,pPowerMode)
  12734 #define IAMExtDevice_Calibrate(This,hEvent,Mode,pStatus) (This)->lpVtbl->Calibrate(This,hEvent,Mode,pStatus)
  12735 #define IAMExtDevice_put_DevicePort(This,DevicePort) (This)->lpVtbl->put_DevicePort(This,DevicePort)
  12736 #define IAMExtDevice_get_DevicePort(This,pDevicePort) (This)->lpVtbl->get_DevicePort(This,pDevicePort)
  12737 #endif
  12738 #endif
  12739   HRESULT WINAPI IAMExtDevice_GetCapability_Proxy(IAMExtDevice *This,LONG Capability,LONG *pValue,double *pdblValue);
  12740   void __RPC_STUB IAMExtDevice_GetCapability_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12741   HRESULT WINAPI IAMExtDevice_get_ExternalDeviceID_Proxy(IAMExtDevice *This,LPOLESTR *ppszData);
  12742   void __RPC_STUB IAMExtDevice_get_ExternalDeviceID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12743   HRESULT WINAPI IAMExtDevice_get_ExternalDeviceVersion_Proxy(IAMExtDevice *This,LPOLESTR *ppszData);
  12744   void __RPC_STUB IAMExtDevice_get_ExternalDeviceVersion_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12745   HRESULT WINAPI IAMExtDevice_put_DevicePower_Proxy(IAMExtDevice *This,LONG PowerMode);
  12746   void __RPC_STUB IAMExtDevice_put_DevicePower_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12747   HRESULT WINAPI IAMExtDevice_get_DevicePower_Proxy(IAMExtDevice *This,LONG *pPowerMode);
  12748   void __RPC_STUB IAMExtDevice_get_DevicePower_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12749   HRESULT WINAPI IAMExtDevice_Calibrate_Proxy(IAMExtDevice *This,HEVENT hEvent,LONG Mode,LONG *pStatus);
  12750   void __RPC_STUB IAMExtDevice_Calibrate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12751   HRESULT WINAPI IAMExtDevice_put_DevicePort_Proxy(IAMExtDevice *This,LONG DevicePort);
  12752   void __RPC_STUB IAMExtDevice_put_DevicePort_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12753   HRESULT WINAPI IAMExtDevice_get_DevicePort_Proxy(IAMExtDevice *This,LONG *pDevicePort);
  12754   void __RPC_STUB IAMExtDevice_get_DevicePort_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12755 #endif
  12756 
  12757   typedef IAMExtDevice *PEXTDEVICE;
  12758 
  12759   extern RPC_IF_HANDLE __MIDL_itf_strmif_0339_v0_0_c_ifspec;
  12760   extern RPC_IF_HANDLE __MIDL_itf_strmif_0339_v0_0_s_ifspec;
  12761 #ifndef __IAMExtTransport_INTERFACE_DEFINED__
  12762 #define __IAMExtTransport_INTERFACE_DEFINED__
  12763   EXTERN_C const IID IID_IAMExtTransport;
  12764 #if defined(__cplusplus) && !defined(CINTERFACE)
  12765   struct IAMExtTransport : public IUnknown {
  12766   public:
  12767     virtual HRESULT WINAPI GetCapability(LONG Capability,LONG *pValue,double *pdblValue) = 0;
  12768     virtual HRESULT WINAPI put_MediaState(LONG State) = 0;
  12769     virtual HRESULT WINAPI get_MediaState(LONG *pState) = 0;
  12770     virtual HRESULT WINAPI put_LocalControl(LONG State) = 0;
  12771     virtual HRESULT WINAPI get_LocalControl(LONG *pState) = 0;
  12772     virtual HRESULT WINAPI GetStatus(LONG StatusItem,LONG *pValue) = 0;
  12773     virtual HRESULT WINAPI GetTransportBasicParameters(LONG Param,LONG *pValue,LPOLESTR *ppszData) = 0;
  12774     virtual HRESULT WINAPI SetTransportBasicParameters(LONG Param,LONG Value,LPCOLESTR pszData) = 0;
  12775     virtual HRESULT WINAPI GetTransportVideoParameters(LONG Param,LONG *pValue) = 0;
  12776     virtual HRESULT WINAPI SetTransportVideoParameters(LONG Param,LONG Value) = 0;
  12777     virtual HRESULT WINAPI GetTransportAudioParameters(LONG Param,LONG *pValue) = 0;
  12778     virtual HRESULT WINAPI SetTransportAudioParameters(LONG Param,LONG Value) = 0;
  12779     virtual HRESULT WINAPI put_Mode(LONG Mode) = 0;
  12780     virtual HRESULT WINAPI get_Mode(LONG *pMode) = 0;
  12781     virtual HRESULT WINAPI put_Rate(double dblRate) = 0;
  12782     virtual HRESULT WINAPI get_Rate(double *pdblRate) = 0;
  12783     virtual HRESULT WINAPI GetChase(LONG *pEnabled,LONG *pOffset,HEVENT *phEvent) = 0;
  12784     virtual HRESULT WINAPI SetChase(LONG Enable,LONG Offset,HEVENT hEvent) = 0;
  12785     virtual HRESULT WINAPI GetBump(LONG *pSpeed,LONG *pDuration) = 0;
  12786     virtual HRESULT WINAPI SetBump(LONG Speed,LONG Duration) = 0;
  12787     virtual HRESULT WINAPI get_AntiClogControl(LONG *pEnabled) = 0;
  12788     virtual HRESULT WINAPI put_AntiClogControl(LONG Enable) = 0;
  12789     virtual HRESULT WINAPI GetEditPropertySet(LONG EditID,LONG *pState) = 0;
  12790     virtual HRESULT WINAPI SetEditPropertySet(LONG *pEditID,LONG State) = 0;
  12791     virtual HRESULT WINAPI GetEditProperty(LONG EditID,LONG Param,LONG *pValue) = 0;
  12792     virtual HRESULT WINAPI SetEditProperty(LONG EditID,LONG Param,LONG Value) = 0;
  12793     virtual HRESULT WINAPI get_EditStart(LONG *pValue) = 0;
  12794     virtual HRESULT WINAPI put_EditStart(LONG Value) = 0;
  12795   };
  12796 #else
  12797   typedef struct IAMExtTransportVtbl {
  12798     BEGIN_INTERFACE
  12799       HRESULT (WINAPI *QueryInterface)(IAMExtTransport *This,REFIID riid,void **ppvObject);
  12800       ULONG (WINAPI *AddRef)(IAMExtTransport *This);
  12801       ULONG (WINAPI *Release)(IAMExtTransport *This);
  12802       HRESULT (WINAPI *GetCapability)(IAMExtTransport *This,LONG Capability,LONG *pValue,double *pdblValue);
  12803       HRESULT (WINAPI *put_MediaState)(IAMExtTransport *This,LONG State);
  12804       HRESULT (WINAPI *get_MediaState)(IAMExtTransport *This,LONG *pState);
  12805       HRESULT (WINAPI *put_LocalControl)(IAMExtTransport *This,LONG State);
  12806       HRESULT (WINAPI *get_LocalControl)(IAMExtTransport *This,LONG *pState);
  12807       HRESULT (WINAPI *GetStatus)(IAMExtTransport *This,LONG StatusItem,LONG *pValue);
  12808       HRESULT (WINAPI *GetTransportBasicParameters)(IAMExtTransport *This,LONG Param,LONG *pValue,LPOLESTR *ppszData);
  12809       HRESULT (WINAPI *SetTransportBasicParameters)(IAMExtTransport *This,LONG Param,LONG Value,LPCOLESTR pszData);
  12810       HRESULT (WINAPI *GetTransportVideoParameters)(IAMExtTransport *This,LONG Param,LONG *pValue);
  12811       HRESULT (WINAPI *SetTransportVideoParameters)(IAMExtTransport *This,LONG Param,LONG Value);
  12812       HRESULT (WINAPI *GetTransportAudioParameters)(IAMExtTransport *This,LONG Param,LONG *pValue);
  12813       HRESULT (WINAPI *SetTransportAudioParameters)(IAMExtTransport *This,LONG Param,LONG Value);
  12814       HRESULT (WINAPI *put_Mode)(IAMExtTransport *This,LONG Mode);
  12815       HRESULT (WINAPI *get_Mode)(IAMExtTransport *This,LONG *pMode);
  12816       HRESULT (WINAPI *put_Rate)(IAMExtTransport *This,double dblRate);
  12817       HRESULT (WINAPI *get_Rate)(IAMExtTransport *This,double *pdblRate);
  12818       HRESULT (WINAPI *GetChase)(IAMExtTransport *This,LONG *pEnabled,LONG *pOffset,HEVENT *phEvent);
  12819       HRESULT (WINAPI *SetChase)(IAMExtTransport *This,LONG Enable,LONG Offset,HEVENT hEvent);
  12820       HRESULT (WINAPI *GetBump)(IAMExtTransport *This,LONG *pSpeed,LONG *pDuration);
  12821       HRESULT (WINAPI *SetBump)(IAMExtTransport *This,LONG Speed,LONG Duration);
  12822       HRESULT (WINAPI *get_AntiClogControl)(IAMExtTransport *This,LONG *pEnabled);
  12823       HRESULT (WINAPI *put_AntiClogControl)(IAMExtTransport *This,LONG Enable);
  12824       HRESULT (WINAPI *GetEditPropertySet)(IAMExtTransport *This,LONG EditID,LONG *pState);
  12825       HRESULT (WINAPI *SetEditPropertySet)(IAMExtTransport *This,LONG *pEditID,LONG State);
  12826       HRESULT (WINAPI *GetEditProperty)(IAMExtTransport *This,LONG EditID,LONG Param,LONG *pValue);
  12827       HRESULT (WINAPI *SetEditProperty)(IAMExtTransport *This,LONG EditID,LONG Param,LONG Value);
  12828       HRESULT (WINAPI *get_EditStart)(IAMExtTransport *This,LONG *pValue);
  12829       HRESULT (WINAPI *put_EditStart)(IAMExtTransport *This,LONG Value);
  12830     END_INTERFACE
  12831   } IAMExtTransportVtbl;
  12832   struct IAMExtTransport {
  12833     CONST_VTBL struct IAMExtTransportVtbl *lpVtbl;
  12834   };
  12835 #ifdef COBJMACROS
  12836 #define IAMExtTransport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12837 #define IAMExtTransport_AddRef(This) (This)->lpVtbl->AddRef(This)
  12838 #define IAMExtTransport_Release(This) (This)->lpVtbl->Release(This)
  12839 #define IAMExtTransport_GetCapability(This,Capability,pValue,pdblValue) (This)->lpVtbl->GetCapability(This,Capability,pValue,pdblValue)
  12840 #define IAMExtTransport_put_MediaState(This,State) (This)->lpVtbl->put_MediaState(This,State)
  12841 #define IAMExtTransport_get_MediaState(This,pState) (This)->lpVtbl->get_MediaState(This,pState)
  12842 #define IAMExtTransport_put_LocalControl(This,State) (This)->lpVtbl->put_LocalControl(This,State)
  12843 #define IAMExtTransport_get_LocalControl(This,pState) (This)->lpVtbl->get_LocalControl(This,pState)
  12844 #define IAMExtTransport_GetStatus(This,StatusItem,pValue) (This)->lpVtbl->GetStatus(This,StatusItem,pValue)
  12845 #define IAMExtTransport_GetTransportBasicParameters(This,Param,pValue,ppszData) (This)->lpVtbl->GetTransportBasicParameters(This,Param,pValue,ppszData)
  12846 #define IAMExtTransport_SetTransportBasicParameters(This,Param,Value,pszData) (This)->lpVtbl->SetTransportBasicParameters(This,Param,Value,pszData)
  12847 #define IAMExtTransport_GetTransportVideoParameters(This,Param,pValue) (This)->lpVtbl->GetTransportVideoParameters(This,Param,pValue)
  12848 #define IAMExtTransport_SetTransportVideoParameters(This,Param,Value) (This)->lpVtbl->SetTransportVideoParameters(This,Param,Value)
  12849 #define IAMExtTransport_GetTransportAudioParameters(This,Param,pValue) (This)->lpVtbl->GetTransportAudioParameters(This,Param,pValue)
  12850 #define IAMExtTransport_SetTransportAudioParameters(This,Param,Value) (This)->lpVtbl->SetTransportAudioParameters(This,Param,Value)
  12851 #define IAMExtTransport_put_Mode(This,Mode) (This)->lpVtbl->put_Mode(This,Mode)
  12852 #define IAMExtTransport_get_Mode(This,pMode) (This)->lpVtbl->get_Mode(This,pMode)
  12853 #define IAMExtTransport_put_Rate(This,dblRate) (This)->lpVtbl->put_Rate(This,dblRate)
  12854 #define IAMExtTransport_get_Rate(This,pdblRate) (This)->lpVtbl->get_Rate(This,pdblRate)
  12855 #define IAMExtTransport_GetChase(This,pEnabled,pOffset,phEvent) (This)->lpVtbl->GetChase(This,pEnabled,pOffset,phEvent)
  12856 #define IAMExtTransport_SetChase(This,Enable,Offset,hEvent) (This)->lpVtbl->SetChase(This,Enable,Offset,hEvent)
  12857 #define IAMExtTransport_GetBump(This,pSpeed,pDuration) (This)->lpVtbl->GetBump(This,pSpeed,pDuration)
  12858 #define IAMExtTransport_SetBump(This,Speed,Duration) (This)->lpVtbl->SetBump(This,Speed,Duration)
  12859 #define IAMExtTransport_get_AntiClogControl(This,pEnabled) (This)->lpVtbl->get_AntiClogControl(This,pEnabled)
  12860 #define IAMExtTransport_put_AntiClogControl(This,Enable) (This)->lpVtbl->put_AntiClogControl(This,Enable)
  12861 #define IAMExtTransport_GetEditPropertySet(This,EditID,pState) (This)->lpVtbl->GetEditPropertySet(This,EditID,pState)
  12862 #define IAMExtTransport_SetEditPropertySet(This,pEditID,State) (This)->lpVtbl->SetEditPropertySet(This,pEditID,State)
  12863 #define IAMExtTransport_GetEditProperty(This,EditID,Param,pValue) (This)->lpVtbl->GetEditProperty(This,EditID,Param,pValue)
  12864 #define IAMExtTransport_SetEditProperty(This,EditID,Param,Value) (This)->lpVtbl->SetEditProperty(This,EditID,Param,Value)
  12865 #define IAMExtTransport_get_EditStart(This,pValue) (This)->lpVtbl->get_EditStart(This,pValue)
  12866 #define IAMExtTransport_put_EditStart(This,Value) (This)->lpVtbl->put_EditStart(This,Value)
  12867 #endif
  12868 #endif
  12869   HRESULT WINAPI IAMExtTransport_GetCapability_Proxy(IAMExtTransport *This,LONG Capability,LONG *pValue,double *pdblValue);
  12870   void __RPC_STUB IAMExtTransport_GetCapability_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12871   HRESULT WINAPI IAMExtTransport_put_MediaState_Proxy(IAMExtTransport *This,LONG State);
  12872   void __RPC_STUB IAMExtTransport_put_MediaState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12873   HRESULT WINAPI IAMExtTransport_get_MediaState_Proxy(IAMExtTransport *This,LONG *pState);
  12874   void __RPC_STUB IAMExtTransport_get_MediaState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12875   HRESULT WINAPI IAMExtTransport_put_LocalControl_Proxy(IAMExtTransport *This,LONG State);
  12876   void __RPC_STUB IAMExtTransport_put_LocalControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12877   HRESULT WINAPI IAMExtTransport_get_LocalControl_Proxy(IAMExtTransport *This,LONG *pState);
  12878   void __RPC_STUB IAMExtTransport_get_LocalControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12879   HRESULT WINAPI IAMExtTransport_GetStatus_Proxy(IAMExtTransport *This,LONG StatusItem,LONG *pValue);
  12880   void __RPC_STUB IAMExtTransport_GetStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12881   HRESULT WINAPI IAMExtTransport_GetTransportBasicParameters_Proxy(IAMExtTransport *This,LONG Param,LONG *pValue,LPOLESTR *ppszData);
  12882   void __RPC_STUB IAMExtTransport_GetTransportBasicParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12883   HRESULT WINAPI IAMExtTransport_SetTransportBasicParameters_Proxy(IAMExtTransport *This,LONG Param,LONG Value,LPCOLESTR pszData);
  12884   void __RPC_STUB IAMExtTransport_SetTransportBasicParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12885   HRESULT WINAPI IAMExtTransport_GetTransportVideoParameters_Proxy(IAMExtTransport *This,LONG Param,LONG *pValue);
  12886   void __RPC_STUB IAMExtTransport_GetTransportVideoParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12887   HRESULT WINAPI IAMExtTransport_SetTransportVideoParameters_Proxy(IAMExtTransport *This,LONG Param,LONG Value);
  12888   void __RPC_STUB IAMExtTransport_SetTransportVideoParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12889   HRESULT WINAPI IAMExtTransport_GetTransportAudioParameters_Proxy(IAMExtTransport *This,LONG Param,LONG *pValue);
  12890   void __RPC_STUB IAMExtTransport_GetTransportAudioParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12891   HRESULT WINAPI IAMExtTransport_SetTransportAudioParameters_Proxy(IAMExtTransport *This,LONG Param,LONG Value);
  12892   void __RPC_STUB IAMExtTransport_SetTransportAudioParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12893   HRESULT WINAPI IAMExtTransport_put_Mode_Proxy(IAMExtTransport *This,LONG Mode);
  12894   void __RPC_STUB IAMExtTransport_put_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12895   HRESULT WINAPI IAMExtTransport_get_Mode_Proxy(IAMExtTransport *This,LONG *pMode);
  12896   void __RPC_STUB IAMExtTransport_get_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12897   HRESULT WINAPI IAMExtTransport_put_Rate_Proxy(IAMExtTransport *This,double dblRate);
  12898   void __RPC_STUB IAMExtTransport_put_Rate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12899   HRESULT WINAPI IAMExtTransport_get_Rate_Proxy(IAMExtTransport *This,double *pdblRate);
  12900   void __RPC_STUB IAMExtTransport_get_Rate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12901   HRESULT WINAPI IAMExtTransport_GetChase_Proxy(IAMExtTransport *This,LONG *pEnabled,LONG *pOffset,HEVENT *phEvent);
  12902   void __RPC_STUB IAMExtTransport_GetChase_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12903   HRESULT WINAPI IAMExtTransport_SetChase_Proxy(IAMExtTransport *This,LONG Enable,LONG Offset,HEVENT hEvent);
  12904   void __RPC_STUB IAMExtTransport_SetChase_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12905   HRESULT WINAPI IAMExtTransport_GetBump_Proxy(IAMExtTransport *This,LONG *pSpeed,LONG *pDuration);
  12906   void __RPC_STUB IAMExtTransport_GetBump_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12907   HRESULT WINAPI IAMExtTransport_SetBump_Proxy(IAMExtTransport *This,LONG Speed,LONG Duration);
  12908   void __RPC_STUB IAMExtTransport_SetBump_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12909   HRESULT WINAPI IAMExtTransport_get_AntiClogControl_Proxy(IAMExtTransport *This,LONG *pEnabled);
  12910   void __RPC_STUB IAMExtTransport_get_AntiClogControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12911   HRESULT WINAPI IAMExtTransport_put_AntiClogControl_Proxy(IAMExtTransport *This,LONG Enable);
  12912   void __RPC_STUB IAMExtTransport_put_AntiClogControl_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12913   HRESULT WINAPI IAMExtTransport_GetEditPropertySet_Proxy(IAMExtTransport *This,LONG EditID,LONG *pState);
  12914   void __RPC_STUB IAMExtTransport_GetEditPropertySet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12915   HRESULT WINAPI IAMExtTransport_SetEditPropertySet_Proxy(IAMExtTransport *This,LONG *pEditID,LONG State);
  12916   void __RPC_STUB IAMExtTransport_SetEditPropertySet_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12917   HRESULT WINAPI IAMExtTransport_GetEditProperty_Proxy(IAMExtTransport *This,LONG EditID,LONG Param,LONG *pValue);
  12918   void __RPC_STUB IAMExtTransport_GetEditProperty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12919   HRESULT WINAPI IAMExtTransport_SetEditProperty_Proxy(IAMExtTransport *This,LONG EditID,LONG Param,LONG Value);
  12920   void __RPC_STUB IAMExtTransport_SetEditProperty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12921   HRESULT WINAPI IAMExtTransport_get_EditStart_Proxy(IAMExtTransport *This,LONG *pValue);
  12922   void __RPC_STUB IAMExtTransport_get_EditStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12923   HRESULT WINAPI IAMExtTransport_put_EditStart_Proxy(IAMExtTransport *This,LONG Value);
  12924   void __RPC_STUB IAMExtTransport_put_EditStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12925 #endif
  12926 
  12927   typedef IAMExtTransport *PIAMEXTTRANSPORT;
  12928 
  12929 #ifndef TIMECODE_DEFINED
  12930 #define TIMECODE_DEFINED
  12931   typedef union _timecode {
  12932     __C89_NAMELESS struct {
  12933       WORD wFrameRate;
  12934       WORD wFrameFract;
  12935       DWORD dwFrames;
  12936     };
  12937     DWORDLONG qw;
  12938   } TIMECODE;
  12939 
  12940   typedef TIMECODE *PTIMECODE;
  12941 
  12942   typedef struct tagTIMECODE_SAMPLE {
  12943     LONGLONG qwTick;
  12944     TIMECODE timecode;
  12945     DWORD dwUser;
  12946     DWORD dwFlags;
  12947   } TIMECODE_SAMPLE;
  12948 
  12949   typedef TIMECODE_SAMPLE *PTIMECODE_SAMPLE;
  12950 #endif /* TIMECODE_DEFINED */
  12951 
  12952   extern RPC_IF_HANDLE __MIDL_itf_strmif_0340_v0_0_c_ifspec;
  12953   extern RPC_IF_HANDLE __MIDL_itf_strmif_0340_v0_0_s_ifspec;
  12954 #ifndef __IAMTimecodeReader_INTERFACE_DEFINED__
  12955 #define __IAMTimecodeReader_INTERFACE_DEFINED__
  12956   EXTERN_C const IID IID_IAMTimecodeReader;
  12957 #if defined(__cplusplus) && !defined(CINTERFACE)
  12958   struct IAMTimecodeReader : public IUnknown {
  12959   public:
  12960     virtual HRESULT WINAPI GetTCRMode(LONG Param,LONG *pValue) = 0;
  12961     virtual HRESULT WINAPI SetTCRMode(LONG Param,LONG Value) = 0;
  12962     virtual HRESULT WINAPI put_VITCLine(LONG Line) = 0;
  12963     virtual HRESULT WINAPI get_VITCLine(LONG *pLine) = 0;
  12964     virtual HRESULT WINAPI GetTimecode(PTIMECODE_SAMPLE pTimecodeSample) = 0;
  12965   };
  12966 #else
  12967   typedef struct IAMTimecodeReaderVtbl {
  12968     BEGIN_INTERFACE
  12969       HRESULT (WINAPI *QueryInterface)(IAMTimecodeReader *This,REFIID riid,void **ppvObject);
  12970       ULONG (WINAPI *AddRef)(IAMTimecodeReader *This);
  12971       ULONG (WINAPI *Release)(IAMTimecodeReader *This);
  12972       HRESULT (WINAPI *GetTCRMode)(IAMTimecodeReader *This,LONG Param,LONG *pValue);
  12973       HRESULT (WINAPI *SetTCRMode)(IAMTimecodeReader *This,LONG Param,LONG Value);
  12974       HRESULT (WINAPI *put_VITCLine)(IAMTimecodeReader *This,LONG Line);
  12975       HRESULT (WINAPI *get_VITCLine)(IAMTimecodeReader *This,LONG *pLine);
  12976       HRESULT (WINAPI *GetTimecode)(IAMTimecodeReader *This,PTIMECODE_SAMPLE pTimecodeSample);
  12977     END_INTERFACE
  12978   } IAMTimecodeReaderVtbl;
  12979   struct IAMTimecodeReader {
  12980     CONST_VTBL struct IAMTimecodeReaderVtbl *lpVtbl;
  12981   };
  12982 #ifdef COBJMACROS
  12983 #define IAMTimecodeReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12984 #define IAMTimecodeReader_AddRef(This) (This)->lpVtbl->AddRef(This)
  12985 #define IAMTimecodeReader_Release(This) (This)->lpVtbl->Release(This)
  12986 #define IAMTimecodeReader_GetTCRMode(This,Param,pValue) (This)->lpVtbl->GetTCRMode(This,Param,pValue)
  12987 #define IAMTimecodeReader_SetTCRMode(This,Param,Value) (This)->lpVtbl->SetTCRMode(This,Param,Value)
  12988 #define IAMTimecodeReader_put_VITCLine(This,Line) (This)->lpVtbl->put_VITCLine(This,Line)
  12989 #define IAMTimecodeReader_get_VITCLine(This,pLine) (This)->lpVtbl->get_VITCLine(This,pLine)
  12990 #define IAMTimecodeReader_GetTimecode(This,pTimecodeSample) (This)->lpVtbl->GetTimecode(This,pTimecodeSample)
  12991 #endif
  12992 #endif
  12993   HRESULT WINAPI IAMTimecodeReader_GetTCRMode_Proxy(IAMTimecodeReader *This,LONG Param,LONG *pValue);
  12994   void __RPC_STUB IAMTimecodeReader_GetTCRMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12995   HRESULT WINAPI IAMTimecodeReader_SetTCRMode_Proxy(IAMTimecodeReader *This,LONG Param,LONG Value);
  12996   void __RPC_STUB IAMTimecodeReader_SetTCRMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12997   HRESULT WINAPI IAMTimecodeReader_put_VITCLine_Proxy(IAMTimecodeReader *This,LONG Line);
  12998   void __RPC_STUB IAMTimecodeReader_put_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  12999   HRESULT WINAPI IAMTimecodeReader_get_VITCLine_Proxy(IAMTimecodeReader *This,LONG *pLine);
  13000   void __RPC_STUB IAMTimecodeReader_get_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13001   HRESULT WINAPI IAMTimecodeReader_GetTimecode_Proxy(IAMTimecodeReader *This,PTIMECODE_SAMPLE pTimecodeSample);
  13002   void __RPC_STUB IAMTimecodeReader_GetTimecode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13003 #endif
  13004 
  13005   typedef IAMTimecodeReader *PIAMTIMECODEREADER;
  13006 
  13007   extern RPC_IF_HANDLE __MIDL_itf_strmif_0341_v0_0_c_ifspec;
  13008   extern RPC_IF_HANDLE __MIDL_itf_strmif_0341_v0_0_s_ifspec;
  13009 #ifndef __IAMTimecodeGenerator_INTERFACE_DEFINED__
  13010 #define __IAMTimecodeGenerator_INTERFACE_DEFINED__
  13011   EXTERN_C const IID IID_IAMTimecodeGenerator;
  13012 #if defined(__cplusplus) && !defined(CINTERFACE)
  13013   struct IAMTimecodeGenerator : public IUnknown {
  13014   public:
  13015     virtual HRESULT WINAPI GetTCGMode(LONG Param,LONG *pValue) = 0;
  13016     virtual HRESULT WINAPI SetTCGMode(LONG Param,LONG Value) = 0;
  13017     virtual HRESULT WINAPI put_VITCLine(LONG Line) = 0;
  13018     virtual HRESULT WINAPI get_VITCLine(LONG *pLine) = 0;
  13019     virtual HRESULT WINAPI SetTimecode(PTIMECODE_SAMPLE pTimecodeSample) = 0;
  13020     virtual HRESULT WINAPI GetTimecode(PTIMECODE_SAMPLE pTimecodeSample) = 0;
  13021   };
  13022 #else
  13023   typedef struct IAMTimecodeGeneratorVtbl {
  13024     BEGIN_INTERFACE
  13025       HRESULT (WINAPI *QueryInterface)(IAMTimecodeGenerator *This,REFIID riid,void **ppvObject);
  13026       ULONG (WINAPI *AddRef)(IAMTimecodeGenerator *This);
  13027       ULONG (WINAPI *Release)(IAMTimecodeGenerator *This);
  13028       HRESULT (WINAPI *GetTCGMode)(IAMTimecodeGenerator *This,LONG Param,LONG *pValue);
  13029       HRESULT (WINAPI *SetTCGMode)(IAMTimecodeGenerator *This,LONG Param,LONG Value);
  13030       HRESULT (WINAPI *put_VITCLine)(IAMTimecodeGenerator *This,LONG Line);
  13031       HRESULT (WINAPI *get_VITCLine)(IAMTimecodeGenerator *This,LONG *pLine);
  13032       HRESULT (WINAPI *SetTimecode)(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
  13033       HRESULT (WINAPI *GetTimecode)(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
  13034     END_INTERFACE
  13035   } IAMTimecodeGeneratorVtbl;
  13036   struct IAMTimecodeGenerator {
  13037     CONST_VTBL struct IAMTimecodeGeneratorVtbl *lpVtbl;
  13038   };
  13039 #ifdef COBJMACROS
  13040 #define IAMTimecodeGenerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13041 #define IAMTimecodeGenerator_AddRef(This) (This)->lpVtbl->AddRef(This)
  13042 #define IAMTimecodeGenerator_Release(This) (This)->lpVtbl->Release(This)
  13043 #define IAMTimecodeGenerator_GetTCGMode(This,Param,pValue) (This)->lpVtbl->GetTCGMode(This,Param,pValue)
  13044 #define IAMTimecodeGenerator_SetTCGMode(This,Param,Value) (This)->lpVtbl->SetTCGMode(This,Param,Value)
  13045 #define IAMTimecodeGenerator_put_VITCLine(This,Line) (This)->lpVtbl->put_VITCLine(This,Line)
  13046 #define IAMTimecodeGenerator_get_VITCLine(This,pLine) (This)->lpVtbl->get_VITCLine(This,pLine)
  13047 #define IAMTimecodeGenerator_SetTimecode(This,pTimecodeSample) (This)->lpVtbl->SetTimecode(This,pTimecodeSample)
  13048 #define IAMTimecodeGenerator_GetTimecode(This,pTimecodeSample) (This)->lpVtbl->GetTimecode(This,pTimecodeSample)
  13049 #endif
  13050 #endif
  13051   HRESULT WINAPI IAMTimecodeGenerator_GetTCGMode_Proxy(IAMTimecodeGenerator *This,LONG Param,LONG *pValue);
  13052   void __RPC_STUB IAMTimecodeGenerator_GetTCGMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13053   HRESULT WINAPI IAMTimecodeGenerator_SetTCGMode_Proxy(IAMTimecodeGenerator *This,LONG Param,LONG Value);
  13054   void __RPC_STUB IAMTimecodeGenerator_SetTCGMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13055   HRESULT WINAPI IAMTimecodeGenerator_put_VITCLine_Proxy(IAMTimecodeGenerator *This,LONG Line);
  13056   void __RPC_STUB IAMTimecodeGenerator_put_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13057   HRESULT WINAPI IAMTimecodeGenerator_get_VITCLine_Proxy(IAMTimecodeGenerator *This,LONG *pLine);
  13058   void __RPC_STUB IAMTimecodeGenerator_get_VITCLine_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13059   HRESULT WINAPI IAMTimecodeGenerator_SetTimecode_Proxy(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
  13060   void __RPC_STUB IAMTimecodeGenerator_SetTimecode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13061   HRESULT WINAPI IAMTimecodeGenerator_GetTimecode_Proxy(IAMTimecodeGenerator *This,PTIMECODE_SAMPLE pTimecodeSample);
  13062   void __RPC_STUB IAMTimecodeGenerator_GetTimecode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13063 #endif
  13064 
  13065   typedef IAMTimecodeGenerator *PIAMTIMECODEGENERATOR;
  13066 
  13067   extern RPC_IF_HANDLE __MIDL_itf_strmif_0342_v0_0_c_ifspec;
  13068   extern RPC_IF_HANDLE __MIDL_itf_strmif_0342_v0_0_s_ifspec;
  13069 #ifndef __IAMTimecodeDisplay_INTERFACE_DEFINED__
  13070 #define __IAMTimecodeDisplay_INTERFACE_DEFINED__
  13071   EXTERN_C const IID IID_IAMTimecodeDisplay;
  13072 #if defined(__cplusplus) && !defined(CINTERFACE)
  13073   struct IAMTimecodeDisplay : public IUnknown {
  13074   public:
  13075     virtual HRESULT WINAPI GetTCDisplayEnable(LONG *pState) = 0;
  13076     virtual HRESULT WINAPI SetTCDisplayEnable(LONG State) = 0;
  13077     virtual HRESULT WINAPI GetTCDisplay(LONG Param,LONG *pValue) = 0;
  13078     virtual HRESULT WINAPI SetTCDisplay(LONG Param,LONG Value) = 0;
  13079   };
  13080 #else
  13081   typedef struct IAMTimecodeDisplayVtbl {
  13082     BEGIN_INTERFACE
  13083       HRESULT (WINAPI *QueryInterface)(IAMTimecodeDisplay *This,REFIID riid,void **ppvObject);
  13084       ULONG (WINAPI *AddRef)(IAMTimecodeDisplay *This);
  13085       ULONG (WINAPI *Release)(IAMTimecodeDisplay *This);
  13086       HRESULT (WINAPI *GetTCDisplayEnable)(IAMTimecodeDisplay *This,LONG *pState);
  13087       HRESULT (WINAPI *SetTCDisplayEnable)(IAMTimecodeDisplay *This,LONG State);
  13088       HRESULT (WINAPI *GetTCDisplay)(IAMTimecodeDisplay *This,LONG Param,LONG *pValue);
  13089       HRESULT (WINAPI *SetTCDisplay)(IAMTimecodeDisplay *This,LONG Param,LONG Value);
  13090     END_INTERFACE
  13091   } IAMTimecodeDisplayVtbl;
  13092   struct IAMTimecodeDisplay {
  13093     CONST_VTBL struct IAMTimecodeDisplayVtbl *lpVtbl;
  13094   };
  13095 #ifdef COBJMACROS
  13096 #define IAMTimecodeDisplay_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13097 #define IAMTimecodeDisplay_AddRef(This) (This)->lpVtbl->AddRef(This)
  13098 #define IAMTimecodeDisplay_Release(This) (This)->lpVtbl->Release(This)
  13099 #define IAMTimecodeDisplay_GetTCDisplayEnable(This,pState) (This)->lpVtbl->GetTCDisplayEnable(This,pState)
  13100 #define IAMTimecodeDisplay_SetTCDisplayEnable(This,State) (This)->lpVtbl->SetTCDisplayEnable(This,State)
  13101 #define IAMTimecodeDisplay_GetTCDisplay(This,Param,pValue) (This)->lpVtbl->GetTCDisplay(This,Param,pValue)
  13102 #define IAMTimecodeDisplay_SetTCDisplay(This,Param,Value) (This)->lpVtbl->SetTCDisplay(This,Param,Value)
  13103 #endif
  13104 #endif
  13105   HRESULT WINAPI IAMTimecodeDisplay_GetTCDisplayEnable_Proxy(IAMTimecodeDisplay *This,LONG *pState);
  13106   void __RPC_STUB IAMTimecodeDisplay_GetTCDisplayEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13107   HRESULT WINAPI IAMTimecodeDisplay_SetTCDisplayEnable_Proxy(IAMTimecodeDisplay *This,LONG State);
  13108   void __RPC_STUB IAMTimecodeDisplay_SetTCDisplayEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13109   HRESULT WINAPI IAMTimecodeDisplay_GetTCDisplay_Proxy(IAMTimecodeDisplay *This,LONG Param,LONG *pValue);
  13110   void __RPC_STUB IAMTimecodeDisplay_GetTCDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13111   HRESULT WINAPI IAMTimecodeDisplay_SetTCDisplay_Proxy(IAMTimecodeDisplay *This,LONG Param,LONG Value);
  13112   void __RPC_STUB IAMTimecodeDisplay_SetTCDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13113 #endif
  13114 
  13115   typedef IAMTimecodeDisplay *PIAMTIMECODEDISPLAY;
  13116 
  13117   extern RPC_IF_HANDLE __MIDL_itf_strmif_0343_v0_0_c_ifspec;
  13118   extern RPC_IF_HANDLE __MIDL_itf_strmif_0343_v0_0_s_ifspec;
  13119 #ifndef __IAMDevMemoryAllocator_INTERFACE_DEFINED__
  13120 #define __IAMDevMemoryAllocator_INTERFACE_DEFINED__
  13121   EXTERN_C const IID IID_IAMDevMemoryAllocator;
  13122 #if defined(__cplusplus) && !defined(CINTERFACE)
  13123   struct IAMDevMemoryAllocator : public IUnknown {
  13124   public:
  13125     virtual HRESULT WINAPI GetInfo(DWORD *pdwcbTotalFree,DWORD *pdwcbLargestFree,DWORD *pdwcbTotalMemory,DWORD *pdwcbMinimumChunk) = 0;
  13126     virtual HRESULT WINAPI CheckMemory(const BYTE *pBuffer) = 0;
  13127     virtual HRESULT WINAPI Alloc(BYTE **ppBuffer,DWORD *pdwcbBuffer) = 0;
  13128     virtual HRESULT WINAPI Free(BYTE *pBuffer) = 0;
  13129     virtual HRESULT WINAPI GetDevMemoryObject(IUnknown **ppUnkInnner,IUnknown *pUnkOuter) = 0;
  13130   };
  13131 #else
  13132   typedef struct IAMDevMemoryAllocatorVtbl {
  13133     BEGIN_INTERFACE
  13134       HRESULT (WINAPI *QueryInterface)(IAMDevMemoryAllocator *This,REFIID riid,void **ppvObject);
  13135       ULONG (WINAPI *AddRef)(IAMDevMemoryAllocator *This);
  13136       ULONG (WINAPI *Release)(IAMDevMemoryAllocator *This);
  13137       HRESULT (WINAPI *GetInfo)(IAMDevMemoryAllocator *This,DWORD *pdwcbTotalFree,DWORD *pdwcbLargestFree,DWORD *pdwcbTotalMemory,DWORD *pdwcbMinimumChunk);
  13138       HRESULT (WINAPI *CheckMemory)(IAMDevMemoryAllocator *This,const BYTE *pBuffer);
  13139       HRESULT (WINAPI *Alloc)(IAMDevMemoryAllocator *This,BYTE **ppBuffer,DWORD *pdwcbBuffer);
  13140       HRESULT (WINAPI *Free)(IAMDevMemoryAllocator *This,BYTE *pBuffer);
  13141       HRESULT (WINAPI *GetDevMemoryObject)(IAMDevMemoryAllocator *This,IUnknown **ppUnkInnner,IUnknown *pUnkOuter);
  13142     END_INTERFACE
  13143   } IAMDevMemoryAllocatorVtbl;
  13144   struct IAMDevMemoryAllocator {
  13145     CONST_VTBL struct IAMDevMemoryAllocatorVtbl *lpVtbl;
  13146   };
  13147 #ifdef COBJMACROS
  13148 #define IAMDevMemoryAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13149 #define IAMDevMemoryAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
  13150 #define IAMDevMemoryAllocator_Release(This) (This)->lpVtbl->Release(This)
  13151 #define IAMDevMemoryAllocator_GetInfo(This,pdwcbTotalFree,pdwcbLargestFree,pdwcbTotalMemory,pdwcbMinimumChunk) (This)->lpVtbl->GetInfo(This,pdwcbTotalFree,pdwcbLargestFree,pdwcbTotalMemory,pdwcbMinimumChunk)
  13152 #define IAMDevMemoryAllocator_CheckMemory(This,pBuffer) (This)->lpVtbl->CheckMemory(This,pBuffer)
  13153 #define IAMDevMemoryAllocator_Alloc(This,ppBuffer,pdwcbBuffer) (This)->lpVtbl->Alloc(This,ppBuffer,pdwcbBuffer)
  13154 #define IAMDevMemoryAllocator_Free(This,pBuffer) (This)->lpVtbl->Free(This,pBuffer)
  13155 #define IAMDevMemoryAllocator_GetDevMemoryObject(This,ppUnkInnner,pUnkOuter) (This)->lpVtbl->GetDevMemoryObject(This,ppUnkInnner,pUnkOuter)
  13156 #endif
  13157 #endif
  13158   HRESULT WINAPI IAMDevMemoryAllocator_GetInfo_Proxy(IAMDevMemoryAllocator *This,DWORD *pdwcbTotalFree,DWORD *pdwcbLargestFree,DWORD *pdwcbTotalMemory,DWORD *pdwcbMinimumChunk);
  13159   void __RPC_STUB IAMDevMemoryAllocator_GetInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13160   HRESULT WINAPI IAMDevMemoryAllocator_CheckMemory_Proxy(IAMDevMemoryAllocator *This,const BYTE *pBuffer);
  13161   void __RPC_STUB IAMDevMemoryAllocator_CheckMemory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13162   HRESULT WINAPI IAMDevMemoryAllocator_Alloc_Proxy(IAMDevMemoryAllocator *This,BYTE **ppBuffer,DWORD *pdwcbBuffer);
  13163   void __RPC_STUB IAMDevMemoryAllocator_Alloc_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13164   HRESULT WINAPI IAMDevMemoryAllocator_Free_Proxy(IAMDevMemoryAllocator *This,BYTE *pBuffer);
  13165   void __RPC_STUB IAMDevMemoryAllocator_Free_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13166   HRESULT WINAPI IAMDevMemoryAllocator_GetDevMemoryObject_Proxy(IAMDevMemoryAllocator *This,IUnknown **ppUnkInnner,IUnknown *pUnkOuter);
  13167   void __RPC_STUB IAMDevMemoryAllocator_GetDevMemoryObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13168 #endif
  13169 
  13170   typedef IAMDevMemoryAllocator *PAMDEVMEMORYALLOCATOR;
  13171 
  13172   extern RPC_IF_HANDLE __MIDL_itf_strmif_0344_v0_0_c_ifspec;
  13173   extern RPC_IF_HANDLE __MIDL_itf_strmif_0344_v0_0_s_ifspec;
  13174 #ifndef __IAMDevMemoryControl_INTERFACE_DEFINED__
  13175 #define __IAMDevMemoryControl_INTERFACE_DEFINED__
  13176   EXTERN_C const IID IID_IAMDevMemoryControl;
  13177 #if defined(__cplusplus) && !defined(CINTERFACE)
  13178   struct IAMDevMemoryControl : public IUnknown {
  13179   public:
  13180     virtual HRESULT WINAPI QueryWriteSync(void) = 0;
  13181     virtual HRESULT WINAPI WriteSync(void) = 0;
  13182     virtual HRESULT WINAPI GetDevId(DWORD *pdwDevId) = 0;
  13183   };
  13184 #else
  13185   typedef struct IAMDevMemoryControlVtbl {
  13186     BEGIN_INTERFACE
  13187       HRESULT (WINAPI *QueryInterface)(IAMDevMemoryControl *This,REFIID riid,void **ppvObject);
  13188       ULONG (WINAPI *AddRef)(IAMDevMemoryControl *This);
  13189       ULONG (WINAPI *Release)(IAMDevMemoryControl *This);
  13190       HRESULT (WINAPI *QueryWriteSync)(IAMDevMemoryControl *This);
  13191       HRESULT (WINAPI *WriteSync)(IAMDevMemoryControl *This);
  13192       HRESULT (WINAPI *GetDevId)(IAMDevMemoryControl *This,DWORD *pdwDevId);
  13193     END_INTERFACE
  13194   } IAMDevMemoryControlVtbl;
  13195   struct IAMDevMemoryControl {
  13196     CONST_VTBL struct IAMDevMemoryControlVtbl *lpVtbl;
  13197   };
  13198 #ifdef COBJMACROS
  13199 #define IAMDevMemoryControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13200 #define IAMDevMemoryControl_AddRef(This) (This)->lpVtbl->AddRef(This)
  13201 #define IAMDevMemoryControl_Release(This) (This)->lpVtbl->Release(This)
  13202 #define IAMDevMemoryControl_QueryWriteSync(This) (This)->lpVtbl->QueryWriteSync(This)
  13203 #define IAMDevMemoryControl_WriteSync(This) (This)->lpVtbl->WriteSync(This)
  13204 #define IAMDevMemoryControl_GetDevId(This,pdwDevId) (This)->lpVtbl->GetDevId(This,pdwDevId)
  13205 #endif
  13206 #endif
  13207   HRESULT WINAPI IAMDevMemoryControl_QueryWriteSync_Proxy(IAMDevMemoryControl *This);
  13208   void __RPC_STUB IAMDevMemoryControl_QueryWriteSync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13209   HRESULT WINAPI IAMDevMemoryControl_WriteSync_Proxy(IAMDevMemoryControl *This);
  13210   void __RPC_STUB IAMDevMemoryControl_WriteSync_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13211   HRESULT WINAPI IAMDevMemoryControl_GetDevId_Proxy(IAMDevMemoryControl *This,DWORD *pdwDevId);
  13212   void __RPC_STUB IAMDevMemoryControl_GetDevId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13213 #endif
  13214 
  13215   typedef IAMDevMemoryControl *PAMDEVMEMORYCONTROL;
  13216 
  13217   enum _AMSTREAMSELECTINFOFLAGS {
  13218     AMSTREAMSELECTINFO_ENABLED = 0x1,AMSTREAMSELECTINFO_EXCLUSIVE = 0x2
  13219   };
  13220 
  13221   enum _AMSTREAMSELECTENABLEFLAGS {
  13222     AMSTREAMSELECTENABLE_ENABLE = 0x1,AMSTREAMSELECTENABLE_ENABLEALL = 0x2
  13223   };
  13224 
  13225   extern RPC_IF_HANDLE __MIDL_itf_strmif_0345_v0_0_c_ifspec;
  13226   extern RPC_IF_HANDLE __MIDL_itf_strmif_0345_v0_0_s_ifspec;
  13227 #ifndef __IAMStreamSelect_INTERFACE_DEFINED__
  13228 #define __IAMStreamSelect_INTERFACE_DEFINED__
  13229   EXTERN_C const IID IID_IAMStreamSelect;
  13230 #if defined(__cplusplus) && !defined(CINTERFACE)
  13231   struct IAMStreamSelect : public IUnknown {
  13232   public:
  13233     virtual HRESULT WINAPI Count(DWORD *pcStreams) = 0;
  13234     virtual HRESULT WINAPI Info(LONG lIndex,AM_MEDIA_TYPE **ppmt,DWORD *pdwFlags,LCID *plcid,DWORD *pdwGroup,WCHAR **ppszName,IUnknown **ppObject,IUnknown **ppUnk) = 0;
  13235     virtual HRESULT WINAPI Enable(LONG lIndex,DWORD dwFlags) = 0;
  13236   };
  13237 #else
  13238   typedef struct IAMStreamSelectVtbl {
  13239     BEGIN_INTERFACE
  13240       HRESULT (WINAPI *QueryInterface)(IAMStreamSelect *This,REFIID riid,void **ppvObject);
  13241       ULONG (WINAPI *AddRef)(IAMStreamSelect *This);
  13242       ULONG (WINAPI *Release)(IAMStreamSelect *This);
  13243       HRESULT (WINAPI *Count)(IAMStreamSelect *This,DWORD *pcStreams);
  13244       HRESULT (WINAPI *Info)(IAMStreamSelect *This,LONG lIndex,AM_MEDIA_TYPE **ppmt,DWORD *pdwFlags,LCID *plcid,DWORD *pdwGroup,WCHAR **ppszName,IUnknown **ppObject,IUnknown **ppUnk);
  13245       HRESULT (WINAPI *Enable)(IAMStreamSelect *This,LONG lIndex,DWORD dwFlags);
  13246     END_INTERFACE
  13247   } IAMStreamSelectVtbl;
  13248   struct IAMStreamSelect {
  13249     CONST_VTBL struct IAMStreamSelectVtbl *lpVtbl;
  13250   };
  13251 #ifdef COBJMACROS
  13252 #define IAMStreamSelect_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13253 #define IAMStreamSelect_AddRef(This) (This)->lpVtbl->AddRef(This)
  13254 #define IAMStreamSelect_Release(This) (This)->lpVtbl->Release(This)
  13255 #define IAMStreamSelect_Count(This,pcStreams) (This)->lpVtbl->Count(This,pcStreams)
  13256 #define IAMStreamSelect_Info(This,lIndex,ppmt,pdwFlags,plcid,pdwGroup,ppszName,ppObject,ppUnk) (This)->lpVtbl->Info(This,lIndex,ppmt,pdwFlags,plcid,pdwGroup,ppszName,ppObject,ppUnk)
  13257 #define IAMStreamSelect_Enable(This,lIndex,dwFlags) (This)->lpVtbl->Enable(This,lIndex,dwFlags)
  13258 #endif
  13259 #endif
  13260   HRESULT WINAPI IAMStreamSelect_Count_Proxy(IAMStreamSelect *This,DWORD *pcStreams);
  13261   void __RPC_STUB IAMStreamSelect_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13262   HRESULT WINAPI IAMStreamSelect_Info_Proxy(IAMStreamSelect *This,LONG lIndex,AM_MEDIA_TYPE **ppmt,DWORD *pdwFlags,LCID *plcid,DWORD *pdwGroup,WCHAR **ppszName,IUnknown **ppObject,IUnknown **ppUnk);
  13263   void __RPC_STUB IAMStreamSelect_Info_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13264   HRESULT WINAPI IAMStreamSelect_Enable_Proxy(IAMStreamSelect *This,LONG lIndex,DWORD dwFlags);
  13265   void __RPC_STUB IAMStreamSelect_Enable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13266 #endif
  13267 
  13268   typedef IAMStreamSelect *PAMSTREAMSELECT;
  13269 
  13270   enum _AMRESCTL_RESERVEFLAGS {
  13271     AMRESCTL_RESERVEFLAGS_RESERVE = 0,AMRESCTL_RESERVEFLAGS_UNRESERVE = 0x1
  13272   };
  13273 
  13274   extern RPC_IF_HANDLE __MIDL_itf_strmif_0346_v0_0_c_ifspec;
  13275   extern RPC_IF_HANDLE __MIDL_itf_strmif_0346_v0_0_s_ifspec;
  13276 #ifndef __IAMResourceControl_INTERFACE_DEFINED__
  13277 #define __IAMResourceControl_INTERFACE_DEFINED__
  13278   EXTERN_C const IID IID_IAMResourceControl;
  13279 #if defined(__cplusplus) && !defined(CINTERFACE)
  13280   struct IAMResourceControl : public IUnknown {
  13281   public:
  13282     virtual HRESULT WINAPI Reserve(DWORD dwFlags,PVOID pvReserved) = 0;
  13283   };
  13284 #else
  13285   typedef struct IAMResourceControlVtbl {
  13286     BEGIN_INTERFACE
  13287       HRESULT (WINAPI *QueryInterface)(IAMResourceControl *This,REFIID riid,void **ppvObject);
  13288       ULONG (WINAPI *AddRef)(IAMResourceControl *This);
  13289       ULONG (WINAPI *Release)(IAMResourceControl *This);
  13290       HRESULT (WINAPI *Reserve)(IAMResourceControl *This,DWORD dwFlags,PVOID pvReserved);
  13291     END_INTERFACE
  13292   } IAMResourceControlVtbl;
  13293   struct IAMResourceControl {
  13294     CONST_VTBL struct IAMResourceControlVtbl *lpVtbl;
  13295   };
  13296 #ifdef COBJMACROS
  13297 #define IAMResourceControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13298 #define IAMResourceControl_AddRef(This) (This)->lpVtbl->AddRef(This)
  13299 #define IAMResourceControl_Release(This) (This)->lpVtbl->Release(This)
  13300 #define IAMResourceControl_Reserve(This,dwFlags,pvReserved) (This)->lpVtbl->Reserve(This,dwFlags,pvReserved)
  13301 #endif
  13302 #endif
  13303   HRESULT WINAPI IAMResourceControl_Reserve_Proxy(IAMResourceControl *This,DWORD dwFlags,PVOID pvReserved);
  13304   void __RPC_STUB IAMResourceControl_Reserve_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13305 #endif
  13306 
  13307 #ifndef __IAMClockAdjust_INTERFACE_DEFINED__
  13308 #define __IAMClockAdjust_INTERFACE_DEFINED__
  13309   EXTERN_C const IID IID_IAMClockAdjust;
  13310 #if defined(__cplusplus) && !defined(CINTERFACE)
  13311   struct IAMClockAdjust : public IUnknown {
  13312   public:
  13313     virtual HRESULT WINAPI SetClockDelta(REFERENCE_TIME rtDelta) = 0;
  13314   };
  13315 #else
  13316   typedef struct IAMClockAdjustVtbl {
  13317     BEGIN_INTERFACE
  13318       HRESULT (WINAPI *QueryInterface)(IAMClockAdjust *This,REFIID riid,void **ppvObject);
  13319       ULONG (WINAPI *AddRef)(IAMClockAdjust *This);
  13320       ULONG (WINAPI *Release)(IAMClockAdjust *This);
  13321       HRESULT (WINAPI *SetClockDelta)(IAMClockAdjust *This,REFERENCE_TIME rtDelta);
  13322     END_INTERFACE
  13323   } IAMClockAdjustVtbl;
  13324   struct IAMClockAdjust {
  13325     CONST_VTBL struct IAMClockAdjustVtbl *lpVtbl;
  13326   };
  13327 #ifdef COBJMACROS
  13328 #define IAMClockAdjust_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13329 #define IAMClockAdjust_AddRef(This) (This)->lpVtbl->AddRef(This)
  13330 #define IAMClockAdjust_Release(This) (This)->lpVtbl->Release(This)
  13331 #define IAMClockAdjust_SetClockDelta(This,rtDelta) (This)->lpVtbl->SetClockDelta(This,rtDelta)
  13332 #endif
  13333 #endif
  13334   HRESULT WINAPI IAMClockAdjust_SetClockDelta_Proxy(IAMClockAdjust *This,REFERENCE_TIME rtDelta);
  13335   void __RPC_STUB IAMClockAdjust_SetClockDelta_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13336 #endif
  13337 
  13338 #ifndef __IDrawVideoImage_INTERFACE_DEFINED__
  13339 #define __IDrawVideoImage_INTERFACE_DEFINED__
  13340   EXTERN_C const IID IID_IDrawVideoImage;
  13341 #if defined(__cplusplus) && !defined(CINTERFACE)
  13342   struct IDrawVideoImage : public IUnknown {
  13343   public:
  13344     virtual HRESULT WINAPI DrawVideoImageBegin(void) = 0;
  13345     virtual HRESULT WINAPI DrawVideoImageEnd(void) = 0;
  13346     virtual HRESULT WINAPI DrawVideoImageDraw(HDC hdc,LPRECT lprcSrc,LPRECT lprcDst) = 0;
  13347   };
  13348 #else
  13349   typedef struct IDrawVideoImageVtbl {
  13350     BEGIN_INTERFACE
  13351       HRESULT (WINAPI *QueryInterface)(IDrawVideoImage *This,REFIID riid,void **ppvObject);
  13352       ULONG (WINAPI *AddRef)(IDrawVideoImage *This);
  13353       ULONG (WINAPI *Release)(IDrawVideoImage *This);
  13354       HRESULT (WINAPI *DrawVideoImageBegin)(IDrawVideoImage *This);
  13355       HRESULT (WINAPI *DrawVideoImageEnd)(IDrawVideoImage *This);
  13356       HRESULT (WINAPI *DrawVideoImageDraw)(IDrawVideoImage *This,HDC hdc,LPRECT lprcSrc,LPRECT lprcDst);
  13357     END_INTERFACE
  13358   } IDrawVideoImageVtbl;
  13359   struct IDrawVideoImage {
  13360     CONST_VTBL struct IDrawVideoImageVtbl *lpVtbl;
  13361   };
  13362 #ifdef COBJMACROS
  13363 #define IDrawVideoImage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13364 #define IDrawVideoImage_AddRef(This) (This)->lpVtbl->AddRef(This)
  13365 #define IDrawVideoImage_Release(This) (This)->lpVtbl->Release(This)
  13366 #define IDrawVideoImage_DrawVideoImageBegin(This) (This)->lpVtbl->DrawVideoImageBegin(This)
  13367 #define IDrawVideoImage_DrawVideoImageEnd(This) (This)->lpVtbl->DrawVideoImageEnd(This)
  13368 #define IDrawVideoImage_DrawVideoImageDraw(This,hdc,lprcSrc,lprcDst) (This)->lpVtbl->DrawVideoImageDraw(This,hdc,lprcSrc,lprcDst)
  13369 #endif
  13370 #endif
  13371   HRESULT WINAPI IDrawVideoImage_DrawVideoImageBegin_Proxy(IDrawVideoImage *This);
  13372   void __RPC_STUB IDrawVideoImage_DrawVideoImageBegin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13373   HRESULT WINAPI IDrawVideoImage_DrawVideoImageEnd_Proxy(IDrawVideoImage *This);
  13374   void __RPC_STUB IDrawVideoImage_DrawVideoImageEnd_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13375   HRESULT WINAPI IDrawVideoImage_DrawVideoImageDraw_Proxy(IDrawVideoImage *This,HDC hdc,LPRECT lprcSrc,LPRECT lprcDst);
  13376   void __RPC_STUB IDrawVideoImage_DrawVideoImageDraw_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13377 #endif
  13378 
  13379 #ifndef __IDecimateVideoImage_INTERFACE_DEFINED__
  13380 #define __IDecimateVideoImage_INTERFACE_DEFINED__
  13381   EXTERN_C const IID IID_IDecimateVideoImage;
  13382 #if defined(__cplusplus) && !defined(CINTERFACE)
  13383   struct IDecimateVideoImage : public IUnknown {
  13384   public:
  13385     virtual HRESULT WINAPI SetDecimationImageSize(LONG lWidth,LONG lHeight) = 0;
  13386     virtual HRESULT WINAPI ResetDecimationImageSize(void) = 0;
  13387   };
  13388 #else
  13389   typedef struct IDecimateVideoImageVtbl {
  13390     BEGIN_INTERFACE
  13391       HRESULT (WINAPI *QueryInterface)(IDecimateVideoImage *This,REFIID riid,void **ppvObject);
  13392       ULONG (WINAPI *AddRef)(IDecimateVideoImage *This);
  13393       ULONG (WINAPI *Release)(IDecimateVideoImage *This);
  13394       HRESULT (WINAPI *SetDecimationImageSize)(IDecimateVideoImage *This,LONG lWidth,LONG lHeight);
  13395       HRESULT (WINAPI *ResetDecimationImageSize)(IDecimateVideoImage *This);
  13396     END_INTERFACE
  13397   } IDecimateVideoImageVtbl;
  13398   struct IDecimateVideoImage {
  13399     CONST_VTBL struct IDecimateVideoImageVtbl *lpVtbl;
  13400   };
  13401 #ifdef COBJMACROS
  13402 #define IDecimateVideoImage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13403 #define IDecimateVideoImage_AddRef(This) (This)->lpVtbl->AddRef(This)
  13404 #define IDecimateVideoImage_Release(This) (This)->lpVtbl->Release(This)
  13405 #define IDecimateVideoImage_SetDecimationImageSize(This,lWidth,lHeight) (This)->lpVtbl->SetDecimationImageSize(This,lWidth,lHeight)
  13406 #define IDecimateVideoImage_ResetDecimationImageSize(This) (This)->lpVtbl->ResetDecimationImageSize(This)
  13407 #endif
  13408 #endif
  13409   HRESULT WINAPI IDecimateVideoImage_SetDecimationImageSize_Proxy(IDecimateVideoImage *This,LONG lWidth,LONG lHeight);
  13410   void __RPC_STUB IDecimateVideoImage_SetDecimationImageSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13411   HRESULT WINAPI IDecimateVideoImage_ResetDecimationImageSize_Proxy(IDecimateVideoImage *This);
  13412   void __RPC_STUB IDecimateVideoImage_ResetDecimationImageSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13413 #endif
  13414 
  13415   typedef enum _DECIMATION_USAGE {
  13416     DECIMATION_LEGACY = 0,
  13417     DECIMATION_USE_DECODER_ONLY,DECIMATION_USE_VIDEOPORT_ONLY,DECIMATION_USE_OVERLAY_ONLY,
  13418     DECIMATION_DEFAULT
  13419   } DECIMATION_USAGE;
  13420 
  13421   extern RPC_IF_HANDLE __MIDL_itf_strmif_0351_v0_0_c_ifspec;
  13422   extern RPC_IF_HANDLE __MIDL_itf_strmif_0351_v0_0_s_ifspec;
  13423 #ifndef __IAMVideoDecimationProperties_INTERFACE_DEFINED__
  13424 #define __IAMVideoDecimationProperties_INTERFACE_DEFINED__
  13425   EXTERN_C const IID IID_IAMVideoDecimationProperties;
  13426 #if defined(__cplusplus) && !defined(CINTERFACE)
  13427   struct IAMVideoDecimationProperties : public IUnknown {
  13428   public:
  13429     virtual HRESULT WINAPI QueryDecimationUsage(DECIMATION_USAGE *lpUsage) = 0;
  13430     virtual HRESULT WINAPI SetDecimationUsage(DECIMATION_USAGE Usage) = 0;
  13431   };
  13432 #else
  13433   typedef struct IAMVideoDecimationPropertiesVtbl {
  13434     BEGIN_INTERFACE
  13435       HRESULT (WINAPI *QueryInterface)(IAMVideoDecimationProperties *This,REFIID riid,void **ppvObject);
  13436       ULONG (WINAPI *AddRef)(IAMVideoDecimationProperties *This);
  13437       ULONG (WINAPI *Release)(IAMVideoDecimationProperties *This);
  13438       HRESULT (WINAPI *QueryDecimationUsage)(IAMVideoDecimationProperties *This,DECIMATION_USAGE *lpUsage);
  13439       HRESULT (WINAPI *SetDecimationUsage)(IAMVideoDecimationProperties *This,DECIMATION_USAGE Usage);
  13440     END_INTERFACE
  13441   } IAMVideoDecimationPropertiesVtbl;
  13442   struct IAMVideoDecimationProperties {
  13443     CONST_VTBL struct IAMVideoDecimationPropertiesVtbl *lpVtbl;
  13444   };
  13445 #ifdef COBJMACROS
  13446 #define IAMVideoDecimationProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13447 #define IAMVideoDecimationProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
  13448 #define IAMVideoDecimationProperties_Release(This) (This)->lpVtbl->Release(This)
  13449 #define IAMVideoDecimationProperties_QueryDecimationUsage(This,lpUsage) (This)->lpVtbl->QueryDecimationUsage(This,lpUsage)
  13450 #define IAMVideoDecimationProperties_SetDecimationUsage(This,Usage) (This)->lpVtbl->SetDecimationUsage(This,Usage)
  13451 #endif
  13452 #endif
  13453   HRESULT WINAPI IAMVideoDecimationProperties_QueryDecimationUsage_Proxy(IAMVideoDecimationProperties *This,DECIMATION_USAGE *lpUsage);
  13454   void __RPC_STUB IAMVideoDecimationProperties_QueryDecimationUsage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13455   HRESULT WINAPI IAMVideoDecimationProperties_SetDecimationUsage_Proxy(IAMVideoDecimationProperties *This,DECIMATION_USAGE Usage);
  13456   void __RPC_STUB IAMVideoDecimationProperties_SetDecimationUsage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13457 #endif
  13458 
  13459   enum _AM_PUSHSOURCE_FLAGS {
  13460     AM_PUSHSOURCECAPS_INTERNAL_RM = 0x1,AM_PUSHSOURCECAPS_NOT_LIVE = 0x2,AM_PUSHSOURCECAPS_PRIVATE_CLOCK = 0x4,
  13461     AM_PUSHSOURCEREQS_USE_STREAM_CLOCK = 0x10000,AM_PUSHSOURCEREQS_USE_CLOCK_CHAIN = 0x20000
  13462   };
  13463 
  13464   extern RPC_IF_HANDLE __MIDL_itf_strmif_0353_v0_0_c_ifspec;
  13465   extern RPC_IF_HANDLE __MIDL_itf_strmif_0353_v0_0_s_ifspec;
  13466 
  13467 #ifndef __IAMDeviceRemoval_INTERFACE_DEFINED__
  13468 #define __IAMDeviceRemoval_INTERFACE_DEFINED__
  13469   EXTERN_C const IID IID_IAMDeviceRemoval;
  13470 #if defined(__cplusplus) && !defined(CINTERFACE)
  13471   struct IAMDeviceRemoval : public IUnknown {
  13472   public:
  13473     virtual HRESULT WINAPI DeviceInfo(CLSID *pclsidInterfaceClass,WCHAR **pwszSymbolicLink) = 0;
  13474     virtual HRESULT WINAPI Reassociate(void) = 0;
  13475     virtual HRESULT WINAPI Disassociate(void) = 0;
  13476   };
  13477 #else
  13478   typedef struct IAMDeviceRemovalVtbl {
  13479     BEGIN_INTERFACE
  13480       HRESULT (WINAPI *QueryInterface)(IAMDeviceRemoval *This,REFIID riid,void **ppvObject);
  13481       ULONG (WINAPI *AddRef)(IAMDeviceRemoval *This);
  13482       ULONG (WINAPI *Release)(IAMDeviceRemoval *This);
  13483       HRESULT (WINAPI *DeviceInfo)(IAMDeviceRemoval *This,CLSID *pclsidInterfaceClass,WCHAR **pwszSymbolicLink);
  13484       HRESULT (WINAPI *Reassociate)(IAMDeviceRemoval *This);
  13485       HRESULT (WINAPI *Disassociate)(IAMDeviceRemoval *This);
  13486     END_INTERFACE
  13487   } IAMDeviceRemovalVtbl;
  13488   struct IAMDeviceRemoval {
  13489     CONST_VTBL struct IAMDeviceRemovalVtbl *lpVtbl;
  13490   };
  13491 #ifdef COBJMACROS
  13492 #define IAMDeviceRemoval_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13493 #define IAMDeviceRemoval_AddRef(This) (This)->lpVtbl->AddRef(This)
  13494 #define IAMDeviceRemoval_Release(This) (This)->lpVtbl->Release(This)
  13495 #define IAMDeviceRemoval_DeviceInfo(This,pclsidInterfaceClass,pwszSymbolicLink) (This)->lpVtbl->DeviceInfo(This,pclsidInterfaceClass,pwszSymbolicLink)
  13496 #define IAMDeviceRemoval_Reassociate(This) (This)->lpVtbl->Reassociate(This)
  13497 #define IAMDeviceRemoval_Disassociate(This) (This)->lpVtbl->Disassociate(This)
  13498 #endif
  13499 #endif
  13500   HRESULT WINAPI IAMDeviceRemoval_DeviceInfo_Proxy(IAMDeviceRemoval *This,CLSID *pclsidInterfaceClass,WCHAR **pwszSymbolicLink);
  13501   void __RPC_STUB IAMDeviceRemoval_DeviceInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13502   HRESULT WINAPI IAMDeviceRemoval_Reassociate_Proxy(IAMDeviceRemoval *This);
  13503   void __RPC_STUB IAMDeviceRemoval_Reassociate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13504   HRESULT WINAPI IAMDeviceRemoval_Disassociate_Proxy(IAMDeviceRemoval *This);
  13505   void __RPC_STUB IAMDeviceRemoval_Disassociate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13506 #endif
  13507 
  13508   typedef struct __MIDL___MIDL_itf_strmif_0355_0001 {
  13509     DWORD dwDVAAuxSrc;
  13510     DWORD dwDVAAuxCtl;
  13511     DWORD dwDVAAuxSrc1;
  13512     DWORD dwDVAAuxCtl1;
  13513     DWORD dwDVVAuxSrc;
  13514     DWORD dwDVVAuxCtl;
  13515     DWORD dwDVReserved[2];
  13516   } DVINFO;
  13517 
  13518   typedef struct __MIDL___MIDL_itf_strmif_0355_0001 *PDVINFO;
  13519 
  13520   enum _DVENCODERRESOLUTION {
  13521     DVENCODERRESOLUTION_720x480 = 2012,DVENCODERRESOLUTION_360x240 = 2013,DVENCODERRESOLUTION_180x120 = 2014,DVENCODERRESOLUTION_88x60 = 2015
  13522   };
  13523 
  13524   enum _DVENCODERVIDEOFORMAT {
  13525     DVENCODERVIDEOFORMAT_NTSC = 2000,DVENCODERVIDEOFORMAT_PAL = 2001
  13526   };
  13527 
  13528   enum _DVENCODERFORMAT {
  13529     DVENCODERFORMAT_DVSD = 2007,DVENCODERFORMAT_DVHD = 2008,DVENCODERFORMAT_DVSL = 2009
  13530   };
  13531 
  13532   extern RPC_IF_HANDLE __MIDL_itf_strmif_0355_v0_0_c_ifspec;
  13533   extern RPC_IF_HANDLE __MIDL_itf_strmif_0355_v0_0_s_ifspec;
  13534 #ifndef __IDVEnc_INTERFACE_DEFINED__
  13535 #define __IDVEnc_INTERFACE_DEFINED__
  13536   EXTERN_C const IID IID_IDVEnc;
  13537 #if defined(__cplusplus) && !defined(CINTERFACE)
  13538   struct IDVEnc : public IUnknown {
  13539   public:
  13540     virtual HRESULT WINAPI get_IFormatResolution(int *VideoFormat,int *DVFormat,int *Resolution,BYTE fDVInfo,DVINFO *sDVInfo) = 0;
  13541     virtual HRESULT WINAPI put_IFormatResolution(int VideoFormat,int DVFormat,int Resolution,BYTE fDVInfo,DVINFO *sDVInfo) = 0;
  13542   };
  13543 #else
  13544   typedef struct IDVEncVtbl {
  13545     BEGIN_INTERFACE
  13546       HRESULT (WINAPI *QueryInterface)(IDVEnc *This,REFIID riid,void **ppvObject);
  13547       ULONG (WINAPI *AddRef)(IDVEnc *This);
  13548       ULONG (WINAPI *Release)(IDVEnc *This);
  13549       HRESULT (WINAPI *get_IFormatResolution)(IDVEnc *This,int *VideoFormat,int *DVFormat,int *Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
  13550       HRESULT (WINAPI *put_IFormatResolution)(IDVEnc *This,int VideoFormat,int DVFormat,int Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
  13551     END_INTERFACE
  13552   } IDVEncVtbl;
  13553   struct IDVEnc {
  13554     CONST_VTBL struct IDVEncVtbl *lpVtbl;
  13555   };
  13556 #ifdef COBJMACROS
  13557 #define IDVEnc_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13558 #define IDVEnc_AddRef(This) (This)->lpVtbl->AddRef(This)
  13559 #define IDVEnc_Release(This) (This)->lpVtbl->Release(This)
  13560 #define IDVEnc_get_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo) (This)->lpVtbl->get_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo)
  13561 #define IDVEnc_put_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo) (This)->lpVtbl->put_IFormatResolution(This,VideoFormat,DVFormat,Resolution,fDVInfo,sDVInfo)
  13562 #endif
  13563 #endif
  13564   HRESULT WINAPI IDVEnc_get_IFormatResolution_Proxy(IDVEnc *This,int *VideoFormat,int *DVFormat,int *Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
  13565   void __RPC_STUB IDVEnc_get_IFormatResolution_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13566   HRESULT WINAPI IDVEnc_put_IFormatResolution_Proxy(IDVEnc *This,int VideoFormat,int DVFormat,int Resolution,BYTE fDVInfo,DVINFO *sDVInfo);
  13567   void __RPC_STUB IDVEnc_put_IFormatResolution_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13568 #endif
  13569 
  13570   enum _DVDECODERRESOLUTION {
  13571     DVDECODERRESOLUTION_720x480 = 1000,DVDECODERRESOLUTION_360x240 = 1001,DVDECODERRESOLUTION_180x120 = 1002,DVDECODERRESOLUTION_88x60 = 1003
  13572   };
  13573 
  13574   enum _DVRESOLUTION {
  13575     DVRESOLUTION_FULL = 1000,DVRESOLUTION_HALF = 1001,DVRESOLUTION_QUARTER = 1002,DVRESOLUTION_DC = 1003
  13576   };
  13577 
  13578   extern RPC_IF_HANDLE __MIDL_itf_strmif_0356_v0_0_c_ifspec;
  13579   extern RPC_IF_HANDLE __MIDL_itf_strmif_0356_v0_0_s_ifspec;
  13580 #ifndef __IIPDVDec_INTERFACE_DEFINED__
  13581 #define __IIPDVDec_INTERFACE_DEFINED__
  13582   EXTERN_C const IID IID_IIPDVDec;
  13583 #if defined(__cplusplus) && !defined(CINTERFACE)
  13584   struct IIPDVDec : public IUnknown {
  13585   public:
  13586     virtual HRESULT WINAPI get_IPDisplay(int *displayPix) = 0;
  13587     virtual HRESULT WINAPI put_IPDisplay(int displayPix) = 0;
  13588   };
  13589 #else
  13590   typedef struct IIPDVDecVtbl {
  13591     BEGIN_INTERFACE
  13592       HRESULT (WINAPI *QueryInterface)(IIPDVDec *This,REFIID riid,void **ppvObject);
  13593       ULONG (WINAPI *AddRef)(IIPDVDec *This);
  13594       ULONG (WINAPI *Release)(IIPDVDec *This);
  13595       HRESULT (WINAPI *get_IPDisplay)(IIPDVDec *This,int *displayPix);
  13596       HRESULT (WINAPI *put_IPDisplay)(IIPDVDec *This,int displayPix);
  13597     END_INTERFACE
  13598   } IIPDVDecVtbl;
  13599   struct IIPDVDec {
  13600     CONST_VTBL struct IIPDVDecVtbl *lpVtbl;
  13601   };
  13602 #ifdef COBJMACROS
  13603 #define IIPDVDec_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13604 #define IIPDVDec_AddRef(This) (This)->lpVtbl->AddRef(This)
  13605 #define IIPDVDec_Release(This) (This)->lpVtbl->Release(This)
  13606 #define IIPDVDec_get_IPDisplay(This,displayPix) (This)->lpVtbl->get_IPDisplay(This,displayPix)
  13607 #define IIPDVDec_put_IPDisplay(This,displayPix) (This)->lpVtbl->put_IPDisplay(This,displayPix)
  13608 #endif
  13609 #endif
  13610   HRESULT WINAPI IIPDVDec_get_IPDisplay_Proxy(IIPDVDec *This,int *displayPix);
  13611   void __RPC_STUB IIPDVDec_get_IPDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13612   HRESULT WINAPI IIPDVDec_put_IPDisplay_Proxy(IIPDVDec *This,int displayPix);
  13613   void __RPC_STUB IIPDVDec_put_IPDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13614 #endif
  13615 
  13616 #ifndef __IDVRGB219_INTERFACE_DEFINED__
  13617 #define __IDVRGB219_INTERFACE_DEFINED__
  13618   EXTERN_C const IID IID_IDVRGB219;
  13619 #if defined(__cplusplus) && !defined(CINTERFACE)
  13620   struct IDVRGB219 : public IUnknown {
  13621   public:
  13622     virtual HRESULT WINAPI SetRGB219(WINBOOL bState) = 0;
  13623   };
  13624 #else
  13625   typedef struct IDVRGB219Vtbl {
  13626     BEGIN_INTERFACE
  13627       HRESULT (WINAPI *QueryInterface)(IDVRGB219 *This,REFIID riid,void **ppvObject);
  13628       ULONG (WINAPI *AddRef)(IDVRGB219 *This);
  13629       ULONG (WINAPI *Release)(IDVRGB219 *This);
  13630       HRESULT (WINAPI *SetRGB219)(IDVRGB219 *This,WINBOOL bState);
  13631     END_INTERFACE
  13632   } IDVRGB219Vtbl;
  13633   struct IDVRGB219 {
  13634     CONST_VTBL struct IDVRGB219Vtbl *lpVtbl;
  13635   };
  13636 #ifdef COBJMACROS
  13637 #define IDVRGB219_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13638 #define IDVRGB219_AddRef(This) (This)->lpVtbl->AddRef(This)
  13639 #define IDVRGB219_Release(This) (This)->lpVtbl->Release(This)
  13640 #define IDVRGB219_SetRGB219(This,bState) (This)->lpVtbl->SetRGB219(This,bState)
  13641 #endif
  13642 #endif
  13643   HRESULT WINAPI IDVRGB219_SetRGB219_Proxy(IDVRGB219 *This,WINBOOL bState);
  13644   void __RPC_STUB IDVRGB219_SetRGB219_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13645 #endif
  13646 
  13647 #ifndef __IDVSplitter_INTERFACE_DEFINED__
  13648 #define __IDVSplitter_INTERFACE_DEFINED__
  13649   EXTERN_C const IID IID_IDVSplitter;
  13650 #if defined(__cplusplus) && !defined(CINTERFACE)
  13651   struct IDVSplitter : public IUnknown {
  13652   public:
  13653     virtual HRESULT WINAPI DiscardAlternateVideoFrames(int nDiscard) = 0;
  13654   };
  13655 #else
  13656   typedef struct IDVSplitterVtbl {
  13657     BEGIN_INTERFACE
  13658       HRESULT (WINAPI *QueryInterface)(IDVSplitter *This,REFIID riid,void **ppvObject);
  13659       ULONG (WINAPI *AddRef)(IDVSplitter *This);
  13660       ULONG (WINAPI *Release)(IDVSplitter *This);
  13661       HRESULT (WINAPI *DiscardAlternateVideoFrames)(IDVSplitter *This,int nDiscard);
  13662     END_INTERFACE
  13663   } IDVSplitterVtbl;
  13664   struct IDVSplitter {
  13665     CONST_VTBL struct IDVSplitterVtbl *lpVtbl;
  13666   };
  13667 #ifdef COBJMACROS
  13668 #define IDVSplitter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13669 #define IDVSplitter_AddRef(This) (This)->lpVtbl->AddRef(This)
  13670 #define IDVSplitter_Release(This) (This)->lpVtbl->Release(This)
  13671 #define IDVSplitter_DiscardAlternateVideoFrames(This,nDiscard) (This)->lpVtbl->DiscardAlternateVideoFrames(This,nDiscard)
  13672 #endif
  13673 #endif
  13674   HRESULT WINAPI IDVSplitter_DiscardAlternateVideoFrames_Proxy(IDVSplitter *This,int nDiscard);
  13675   void __RPC_STUB IDVSplitter_DiscardAlternateVideoFrames_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13676 #endif
  13677 
  13678   enum _AM_AUDIO_RENDERER_STAT_PARAM {
  13679     AM_AUDREND_STAT_PARAM_BREAK_COUNT = 1,
  13680     AM_AUDREND_STAT_PARAM_SLAVE_MODE,AM_AUDREND_STAT_PARAM_SILENCE_DUR,
  13681     AM_AUDREND_STAT_PARAM_LAST_BUFFER_DUR,AM_AUDREND_STAT_PARAM_DISCONTINUITIES,
  13682     AM_AUDREND_STAT_PARAM_SLAVE_RATE,AM_AUDREND_STAT_PARAM_SLAVE_DROPWRITE_DUR,
  13683     AM_AUDREND_STAT_PARAM_SLAVE_HIGHLOWERROR,AM_AUDREND_STAT_PARAM_SLAVE_LASTHIGHLOWERROR,
  13684     AM_AUDREND_STAT_PARAM_SLAVE_ACCUMERROR,AM_AUDREND_STAT_PARAM_BUFFERFULLNESS,
  13685     AM_AUDREND_STAT_PARAM_JITTER
  13686   };
  13687 
  13688   extern RPC_IF_HANDLE __MIDL_itf_strmif_0359_v0_0_c_ifspec;
  13689   extern RPC_IF_HANDLE __MIDL_itf_strmif_0359_v0_0_s_ifspec;
  13690 #ifndef __IAMAudioRendererStats_INTERFACE_DEFINED__
  13691 #define __IAMAudioRendererStats_INTERFACE_DEFINED__
  13692   EXTERN_C const IID IID_IAMAudioRendererStats;
  13693 #if defined(__cplusplus) && !defined(CINTERFACE)
  13694   struct IAMAudioRendererStats : public IUnknown {
  13695   public:
  13696     virtual HRESULT WINAPI GetStatParam(DWORD dwParam,DWORD *pdwParam1,DWORD *pdwParam2) = 0;
  13697   };
  13698 #else
  13699   typedef struct IAMAudioRendererStatsVtbl {
  13700     BEGIN_INTERFACE
  13701       HRESULT (WINAPI *QueryInterface)(IAMAudioRendererStats *This,REFIID riid,void **ppvObject);
  13702       ULONG (WINAPI *AddRef)(IAMAudioRendererStats *This);
  13703       ULONG (WINAPI *Release)(IAMAudioRendererStats *This);
  13704       HRESULT (WINAPI *GetStatParam)(IAMAudioRendererStats *This,DWORD dwParam,DWORD *pdwParam1,DWORD *pdwParam2);
  13705     END_INTERFACE
  13706   } IAMAudioRendererStatsVtbl;
  13707   struct IAMAudioRendererStats {
  13708     CONST_VTBL struct IAMAudioRendererStatsVtbl *lpVtbl;
  13709   };
  13710 #ifdef COBJMACROS
  13711 #define IAMAudioRendererStats_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13712 #define IAMAudioRendererStats_AddRef(This) (This)->lpVtbl->AddRef(This)
  13713 #define IAMAudioRendererStats_Release(This) (This)->lpVtbl->Release(This)
  13714 #define IAMAudioRendererStats_GetStatParam(This,dwParam,pdwParam1,pdwParam2) (This)->lpVtbl->GetStatParam(This,dwParam,pdwParam1,pdwParam2)
  13715 #endif
  13716 #endif
  13717   HRESULT WINAPI IAMAudioRendererStats_GetStatParam_Proxy(IAMAudioRendererStats *This,DWORD dwParam,DWORD *pdwParam1,DWORD *pdwParam2);
  13718   void __RPC_STUB IAMAudioRendererStats_GetStatParam_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13719 #endif
  13720 
  13721   enum _AM_INTF_SEARCH_FLAGS {
  13722     AM_INTF_SEARCH_INPUT_PIN = 0x1,AM_INTF_SEARCH_OUTPUT_PIN = 0x2,AM_INTF_SEARCH_FILTER = 0x4
  13723   };
  13724 
  13725   extern RPC_IF_HANDLE __MIDL_itf_strmif_0361_v0_0_c_ifspec;
  13726   extern RPC_IF_HANDLE __MIDL_itf_strmif_0361_v0_0_s_ifspec;
  13727 #ifndef __IAMGraphStreams_INTERFACE_DEFINED__
  13728 #define __IAMGraphStreams_INTERFACE_DEFINED__
  13729   EXTERN_C const IID IID_IAMGraphStreams;
  13730 #if defined(__cplusplus) && !defined(CINTERFACE)
  13731   struct IAMGraphStreams : public IUnknown {
  13732   public:
  13733     virtual HRESULT WINAPI FindUpstreamInterface(IPin *pPin,REFIID riid,void **ppvInterface,DWORD dwFlags) = 0;
  13734     virtual HRESULT WINAPI SyncUsingStreamOffset(WINBOOL bUseStreamOffset) = 0;
  13735     virtual HRESULT WINAPI SetMaxGraphLatency(REFERENCE_TIME rtMaxGraphLatency) = 0;
  13736   };
  13737 #else
  13738   typedef struct IAMGraphStreamsVtbl {
  13739     BEGIN_INTERFACE
  13740       HRESULT (WINAPI *QueryInterface)(IAMGraphStreams *This,REFIID riid,void **ppvObject);
  13741       ULONG (WINAPI *AddRef)(IAMGraphStreams *This);
  13742       ULONG (WINAPI *Release)(IAMGraphStreams *This);
  13743       HRESULT (WINAPI *FindUpstreamInterface)(IAMGraphStreams *This,IPin *pPin,REFIID riid,void **ppvInterface,DWORD dwFlags);
  13744       HRESULT (WINAPI *SyncUsingStreamOffset)(IAMGraphStreams *This,WINBOOL bUseStreamOffset);
  13745       HRESULT (WINAPI *SetMaxGraphLatency)(IAMGraphStreams *This,REFERENCE_TIME rtMaxGraphLatency);
  13746     END_INTERFACE
  13747   } IAMGraphStreamsVtbl;
  13748   struct IAMGraphStreams {
  13749     CONST_VTBL struct IAMGraphStreamsVtbl *lpVtbl;
  13750   };
  13751 #ifdef COBJMACROS
  13752 #define IAMGraphStreams_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13753 #define IAMGraphStreams_AddRef(This) (This)->lpVtbl->AddRef(This)
  13754 #define IAMGraphStreams_Release(This) (This)->lpVtbl->Release(This)
  13755 #define IAMGraphStreams_FindUpstreamInterface(This,pPin,riid,ppvInterface,dwFlags) (This)->lpVtbl->FindUpstreamInterface(This,pPin,riid,ppvInterface,dwFlags)
  13756 #define IAMGraphStreams_SyncUsingStreamOffset(This,bUseStreamOffset) (This)->lpVtbl->SyncUsingStreamOffset(This,bUseStreamOffset)
  13757 #define IAMGraphStreams_SetMaxGraphLatency(This,rtMaxGraphLatency) (This)->lpVtbl->SetMaxGraphLatency(This,rtMaxGraphLatency)
  13758 #endif
  13759 #endif
  13760   HRESULT WINAPI IAMGraphStreams_FindUpstreamInterface_Proxy(IAMGraphStreams *This,IPin *pPin,REFIID riid,void **ppvInterface,DWORD dwFlags);
  13761   void __RPC_STUB IAMGraphStreams_FindUpstreamInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13762   HRESULT WINAPI IAMGraphStreams_SyncUsingStreamOffset_Proxy(IAMGraphStreams *This,WINBOOL bUseStreamOffset);
  13763   void __RPC_STUB IAMGraphStreams_SyncUsingStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13764   HRESULT WINAPI IAMGraphStreams_SetMaxGraphLatency_Proxy(IAMGraphStreams *This,REFERENCE_TIME rtMaxGraphLatency);
  13765   void __RPC_STUB IAMGraphStreams_SetMaxGraphLatency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13766 #endif
  13767 
  13768   enum AMOVERLAYFX {
  13769     AMOVERFX_NOFX = 0,AMOVERFX_MIRRORLEFTRIGHT = 0x2,AMOVERFX_MIRRORUPDOWN = 0x4,AMOVERFX_DEINTERLACE = 0x8
  13770   };
  13771 
  13772   extern RPC_IF_HANDLE __MIDL_itf_strmif_0362_v0_0_c_ifspec;
  13773   extern RPC_IF_HANDLE __MIDL_itf_strmif_0362_v0_0_s_ifspec;
  13774 #ifndef __IAMOverlayFX_INTERFACE_DEFINED__
  13775 #define __IAMOverlayFX_INTERFACE_DEFINED__
  13776   EXTERN_C const IID IID_IAMOverlayFX;
  13777 #if defined(__cplusplus) && !defined(CINTERFACE)
  13778   struct IAMOverlayFX : public IUnknown {
  13779   public:
  13780     virtual HRESULT WINAPI QueryOverlayFXCaps(DWORD *lpdwOverlayFXCaps) = 0;
  13781     virtual HRESULT WINAPI SetOverlayFX(DWORD dwOverlayFX) = 0;
  13782     virtual HRESULT WINAPI GetOverlayFX(DWORD *lpdwOverlayFX) = 0;
  13783   };
  13784 #else
  13785   typedef struct IAMOverlayFXVtbl {
  13786     BEGIN_INTERFACE
  13787       HRESULT (WINAPI *QueryInterface)(IAMOverlayFX *This,REFIID riid,void **ppvObject);
  13788       ULONG (WINAPI *AddRef)(IAMOverlayFX *This);
  13789       ULONG (WINAPI *Release)(IAMOverlayFX *This);
  13790       HRESULT (WINAPI *QueryOverlayFXCaps)(IAMOverlayFX *This,DWORD *lpdwOverlayFXCaps);
  13791       HRESULT (WINAPI *SetOverlayFX)(IAMOverlayFX *This,DWORD dwOverlayFX);
  13792       HRESULT (WINAPI *GetOverlayFX)(IAMOverlayFX *This,DWORD *lpdwOverlayFX);
  13793     END_INTERFACE
  13794   } IAMOverlayFXVtbl;
  13795   struct IAMOverlayFX {
  13796     CONST_VTBL struct IAMOverlayFXVtbl *lpVtbl;
  13797   };
  13798 #ifdef COBJMACROS
  13799 #define IAMOverlayFX_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13800 #define IAMOverlayFX_AddRef(This) (This)->lpVtbl->AddRef(This)
  13801 #define IAMOverlayFX_Release(This) (This)->lpVtbl->Release(This)
  13802 #define IAMOverlayFX_QueryOverlayFXCaps(This,lpdwOverlayFXCaps) (This)->lpVtbl->QueryOverlayFXCaps(This,lpdwOverlayFXCaps)
  13803 #define IAMOverlayFX_SetOverlayFX(This,dwOverlayFX) (This)->lpVtbl->SetOverlayFX(This,dwOverlayFX)
  13804 #define IAMOverlayFX_GetOverlayFX(This,lpdwOverlayFX) (This)->lpVtbl->GetOverlayFX(This,lpdwOverlayFX)
  13805 #endif
  13806 #endif
  13807   HRESULT WINAPI IAMOverlayFX_QueryOverlayFXCaps_Proxy(IAMOverlayFX *This,DWORD *lpdwOverlayFXCaps);
  13808   void __RPC_STUB IAMOverlayFX_QueryOverlayFXCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13809   HRESULT WINAPI IAMOverlayFX_SetOverlayFX_Proxy(IAMOverlayFX *This,DWORD dwOverlayFX);
  13810   void __RPC_STUB IAMOverlayFX_SetOverlayFX_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13811   HRESULT WINAPI IAMOverlayFX_GetOverlayFX_Proxy(IAMOverlayFX *This,DWORD *lpdwOverlayFX);
  13812   void __RPC_STUB IAMOverlayFX_GetOverlayFX_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13813 #endif
  13814 
  13815 #ifndef __IAMOpenProgress_INTERFACE_DEFINED__
  13816 #define __IAMOpenProgress_INTERFACE_DEFINED__
  13817   EXTERN_C const IID IID_IAMOpenProgress;
  13818 #if defined(__cplusplus) && !defined(CINTERFACE)
  13819   struct IAMOpenProgress : public IUnknown {
  13820   public:
  13821     virtual HRESULT WINAPI QueryProgress(LONGLONG *pllTotal,LONGLONG *pllCurrent) = 0;
  13822     virtual HRESULT WINAPI AbortOperation(void) = 0;
  13823   };
  13824 #else
  13825   typedef struct IAMOpenProgressVtbl {
  13826     BEGIN_INTERFACE
  13827       HRESULT (WINAPI *QueryInterface)(IAMOpenProgress *This,REFIID riid,void **ppvObject);
  13828       ULONG (WINAPI *AddRef)(IAMOpenProgress *This);
  13829       ULONG (WINAPI *Release)(IAMOpenProgress *This);
  13830       HRESULT (WINAPI *QueryProgress)(IAMOpenProgress *This,LONGLONG *pllTotal,LONGLONG *pllCurrent);
  13831       HRESULT (WINAPI *AbortOperation)(IAMOpenProgress *This);
  13832     END_INTERFACE
  13833   } IAMOpenProgressVtbl;
  13834   struct IAMOpenProgress {
  13835     CONST_VTBL struct IAMOpenProgressVtbl *lpVtbl;
  13836   };
  13837 #ifdef COBJMACROS
  13838 #define IAMOpenProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13839 #define IAMOpenProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
  13840 #define IAMOpenProgress_Release(This) (This)->lpVtbl->Release(This)
  13841 #define IAMOpenProgress_QueryProgress(This,pllTotal,pllCurrent) (This)->lpVtbl->QueryProgress(This,pllTotal,pllCurrent)
  13842 #define IAMOpenProgress_AbortOperation(This) (This)->lpVtbl->AbortOperation(This)
  13843 #endif
  13844 #endif
  13845   HRESULT WINAPI IAMOpenProgress_QueryProgress_Proxy(IAMOpenProgress *This,LONGLONG *pllTotal,LONGLONG *pllCurrent);
  13846   void __RPC_STUB IAMOpenProgress_QueryProgress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13847   HRESULT WINAPI IAMOpenProgress_AbortOperation_Proxy(IAMOpenProgress *This);
  13848   void __RPC_STUB IAMOpenProgress_AbortOperation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13849 #endif
  13850 
  13851 #ifdef __CRT_UUID_DECL
  13852 __CRT_UUID_DECL(IMpeg2Demultiplexer,0x436eee9c,0x264f,0x4242,0x90,0xe1,0x4e,0x33,0x0c,0x10,0x75,0x12);
  13853 #endif
  13854 
  13855 #ifndef __IMpeg2Demultiplexer_INTERFACE_DEFINED__
  13856 #define __IMpeg2Demultiplexer_INTERFACE_DEFINED__
  13857   EXTERN_C const IID IID_IMpeg2Demultiplexer;
  13858 #if defined(__cplusplus) && !defined(CINTERFACE)
  13859   struct IMpeg2Demultiplexer : public IUnknown {
  13860   public:
  13861     virtual HRESULT WINAPI CreateOutputPin(AM_MEDIA_TYPE *pMediaType,LPWSTR pszPinName,IPin **ppIPin) = 0;
  13862     virtual HRESULT WINAPI SetOutputPinMediaType(LPWSTR pszPinName,AM_MEDIA_TYPE *pMediaType) = 0;
  13863     virtual HRESULT WINAPI DeleteOutputPin(LPWSTR pszPinName) = 0;
  13864   };
  13865 #else
  13866   typedef struct IMpeg2DemultiplexerVtbl {
  13867     BEGIN_INTERFACE
  13868       HRESULT (WINAPI *QueryInterface)(IMpeg2Demultiplexer *This,REFIID riid,void **ppvObject);
  13869       ULONG (WINAPI *AddRef)(IMpeg2Demultiplexer *This);
  13870       ULONG (WINAPI *Release)(IMpeg2Demultiplexer *This);
  13871       HRESULT (WINAPI *CreateOutputPin)(IMpeg2Demultiplexer *This,AM_MEDIA_TYPE *pMediaType,LPWSTR pszPinName,IPin **ppIPin);
  13872       HRESULT (WINAPI *SetOutputPinMediaType)(IMpeg2Demultiplexer *This,LPWSTR pszPinName,AM_MEDIA_TYPE *pMediaType);
  13873       HRESULT (WINAPI *DeleteOutputPin)(IMpeg2Demultiplexer *This,LPWSTR pszPinName);
  13874     END_INTERFACE
  13875   } IMpeg2DemultiplexerVtbl;
  13876   struct IMpeg2Demultiplexer {
  13877     CONST_VTBL struct IMpeg2DemultiplexerVtbl *lpVtbl;
  13878   };
  13879 #ifdef COBJMACROS
  13880 #define IMpeg2Demultiplexer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13881 #define IMpeg2Demultiplexer_AddRef(This) (This)->lpVtbl->AddRef(This)
  13882 #define IMpeg2Demultiplexer_Release(This) (This)->lpVtbl->Release(This)
  13883 #define IMpeg2Demultiplexer_CreateOutputPin(This,pMediaType,pszPinName,ppIPin) (This)->lpVtbl->CreateOutputPin(This,pMediaType,pszPinName,ppIPin)
  13884 #define IMpeg2Demultiplexer_SetOutputPinMediaType(This,pszPinName,pMediaType) (This)->lpVtbl->SetOutputPinMediaType(This,pszPinName,pMediaType)
  13885 #define IMpeg2Demultiplexer_DeleteOutputPin(This,pszPinName) (This)->lpVtbl->DeleteOutputPin(This,pszPinName)
  13886 #endif
  13887 #endif
  13888   HRESULT WINAPI IMpeg2Demultiplexer_CreateOutputPin_Proxy(IMpeg2Demultiplexer *This,AM_MEDIA_TYPE *pMediaType,LPWSTR pszPinName,IPin **ppIPin);
  13889   void __RPC_STUB IMpeg2Demultiplexer_CreateOutputPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13890   HRESULT WINAPI IMpeg2Demultiplexer_SetOutputPinMediaType_Proxy(IMpeg2Demultiplexer *This,LPWSTR pszPinName,AM_MEDIA_TYPE *pMediaType);
  13891   void __RPC_STUB IMpeg2Demultiplexer_SetOutputPinMediaType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13892   HRESULT WINAPI IMpeg2Demultiplexer_DeleteOutputPin_Proxy(IMpeg2Demultiplexer *This,LPWSTR pszPinName);
  13893   void __RPC_STUB IMpeg2Demultiplexer_DeleteOutputPin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13894 #endif
  13895 
  13896 #define MPEG2_PROGRAM_STREAM_MAP 0x00000000
  13897 #define MPEG2_PROGRAM_ELEMENTARY_STREAM 0x00000001
  13898 #define MPEG2_PROGRAM_DIRECTORY_PES_PACKET 0x00000002
  13899 #define MPEG2_PROGRAM_PACK_HEADER 0x00000003
  13900 #define MPEG2_PROGRAM_PES_STREAM 0x00000004
  13901 #define MPEG2_PROGRAM_SYSTEM_HEADER 0x00000005
  13902 #define SUBSTREAM_FILTER_VAL_NONE 0x10000000
  13903 
  13904   typedef struct __MIDL___MIDL_itf_strmif_0365_0001 {
  13905     ULONG stream_id;
  13906     DWORD dwMediaSampleContent;
  13907     ULONG ulSubstreamFilterValue;
  13908     int iDataOffset;
  13909   } STREAM_ID_MAP;
  13910 
  13911   extern RPC_IF_HANDLE __MIDL_itf_strmif_0365_v0_0_c_ifspec;
  13912   extern RPC_IF_HANDLE __MIDL_itf_strmif_0365_v0_0_s_ifspec;
  13913 #ifndef __IEnumStreamIdMap_INTERFACE_DEFINED__
  13914 #define __IEnumStreamIdMap_INTERFACE_DEFINED__
  13915   EXTERN_C const IID IID_IEnumStreamIdMap;
  13916 #if defined(__cplusplus) && !defined(CINTERFACE)
  13917   struct IEnumStreamIdMap : public IUnknown {
  13918   public:
  13919     virtual HRESULT WINAPI Next(ULONG cRequest,STREAM_ID_MAP *pStreamIdMap,ULONG *pcReceived) = 0;
  13920     virtual HRESULT WINAPI Skip(ULONG cRecords) = 0;
  13921     virtual HRESULT WINAPI Reset(void) = 0;
  13922     virtual HRESULT WINAPI Clone(IEnumStreamIdMap **ppIEnumStreamIdMap) = 0;
  13923   };
  13924 #else
  13925   typedef struct IEnumStreamIdMapVtbl {
  13926     BEGIN_INTERFACE
  13927       HRESULT (WINAPI *QueryInterface)(IEnumStreamIdMap *This,REFIID riid,void **ppvObject);
  13928       ULONG (WINAPI *AddRef)(IEnumStreamIdMap *This);
  13929       ULONG (WINAPI *Release)(IEnumStreamIdMap *This);
  13930       HRESULT (WINAPI *Next)(IEnumStreamIdMap *This,ULONG cRequest,STREAM_ID_MAP *pStreamIdMap,ULONG *pcReceived);
  13931       HRESULT (WINAPI *Skip)(IEnumStreamIdMap *This,ULONG cRecords);
  13932       HRESULT (WINAPI *Reset)(IEnumStreamIdMap *This);
  13933       HRESULT (WINAPI *Clone)(IEnumStreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
  13934     END_INTERFACE
  13935   } IEnumStreamIdMapVtbl;
  13936   struct IEnumStreamIdMap {
  13937     CONST_VTBL struct IEnumStreamIdMapVtbl *lpVtbl;
  13938   };
  13939 #ifdef COBJMACROS
  13940 #define IEnumStreamIdMap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13941 #define IEnumStreamIdMap_AddRef(This) (This)->lpVtbl->AddRef(This)
  13942 #define IEnumStreamIdMap_Release(This) (This)->lpVtbl->Release(This)
  13943 #define IEnumStreamIdMap_Next(This,cRequest,pStreamIdMap,pcReceived) (This)->lpVtbl->Next(This,cRequest,pStreamIdMap,pcReceived)
  13944 #define IEnumStreamIdMap_Skip(This,cRecords) (This)->lpVtbl->Skip(This,cRecords)
  13945 #define IEnumStreamIdMap_Reset(This) (This)->lpVtbl->Reset(This)
  13946 #define IEnumStreamIdMap_Clone(This,ppIEnumStreamIdMap) (This)->lpVtbl->Clone(This,ppIEnumStreamIdMap)
  13947 #endif
  13948 #endif
  13949   HRESULT WINAPI IEnumStreamIdMap_Next_Proxy(IEnumStreamIdMap *This,ULONG cRequest,STREAM_ID_MAP *pStreamIdMap,ULONG *pcReceived);
  13950   void __RPC_STUB IEnumStreamIdMap_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13951   HRESULT WINAPI IEnumStreamIdMap_Skip_Proxy(IEnumStreamIdMap *This,ULONG cRecords);
  13952   void __RPC_STUB IEnumStreamIdMap_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13953   HRESULT WINAPI IEnumStreamIdMap_Reset_Proxy(IEnumStreamIdMap *This);
  13954   void __RPC_STUB IEnumStreamIdMap_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13955   HRESULT WINAPI IEnumStreamIdMap_Clone_Proxy(IEnumStreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
  13956   void __RPC_STUB IEnumStreamIdMap_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13957 #endif
  13958 
  13959 #ifndef __IMPEG2StreamIdMap_INTERFACE_DEFINED__
  13960 #define __IMPEG2StreamIdMap_INTERFACE_DEFINED__
  13961   EXTERN_C const IID IID_IMPEG2StreamIdMap;
  13962 #if defined(__cplusplus) && !defined(CINTERFACE)
  13963   struct IMPEG2StreamIdMap : public IUnknown {
  13964   public:
  13965     virtual HRESULT WINAPI MapStreamId(ULONG ulStreamId,DWORD MediaSampleContent,ULONG ulSubstreamFilterValue,int iDataOffset) = 0;
  13966     virtual HRESULT WINAPI UnmapStreamId(ULONG culStreamId,ULONG *pulStreamId) = 0;
  13967     virtual HRESULT WINAPI EnumStreamIdMap(IEnumStreamIdMap **ppIEnumStreamIdMap) = 0;
  13968   };
  13969 #else
  13970   typedef struct IMPEG2StreamIdMapVtbl {
  13971     BEGIN_INTERFACE
  13972       HRESULT (WINAPI *QueryInterface)(IMPEG2StreamIdMap *This,REFIID riid,void **ppvObject);
  13973       ULONG (WINAPI *AddRef)(IMPEG2StreamIdMap *This);
  13974       ULONG (WINAPI *Release)(IMPEG2StreamIdMap *This);
  13975       HRESULT (WINAPI *MapStreamId)(IMPEG2StreamIdMap *This,ULONG ulStreamId,DWORD MediaSampleContent,ULONG ulSubstreamFilterValue,int iDataOffset);
  13976       HRESULT (WINAPI *UnmapStreamId)(IMPEG2StreamIdMap *This,ULONG culStreamId,ULONG *pulStreamId);
  13977       HRESULT (WINAPI *EnumStreamIdMap)(IMPEG2StreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
  13978     END_INTERFACE
  13979   } IMPEG2StreamIdMapVtbl;
  13980   struct IMPEG2StreamIdMap {
  13981     CONST_VTBL struct IMPEG2StreamIdMapVtbl *lpVtbl;
  13982   };
  13983 #ifdef COBJMACROS
  13984 #define IMPEG2StreamIdMap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13985 #define IMPEG2StreamIdMap_AddRef(This) (This)->lpVtbl->AddRef(This)
  13986 #define IMPEG2StreamIdMap_Release(This) (This)->lpVtbl->Release(This)
  13987 #define IMPEG2StreamIdMap_MapStreamId(This,ulStreamId,MediaSampleContent,ulSubstreamFilterValue,iDataOffset) (This)->lpVtbl->MapStreamId(This,ulStreamId,MediaSampleContent,ulSubstreamFilterValue,iDataOffset)
  13988 #define IMPEG2StreamIdMap_UnmapStreamId(This,culStreamId,pulStreamId) (This)->lpVtbl->UnmapStreamId(This,culStreamId,pulStreamId)
  13989 #define IMPEG2StreamIdMap_EnumStreamIdMap(This,ppIEnumStreamIdMap) (This)->lpVtbl->EnumStreamIdMap(This,ppIEnumStreamIdMap)
  13990 #endif
  13991 #endif
  13992   HRESULT WINAPI IMPEG2StreamIdMap_MapStreamId_Proxy(IMPEG2StreamIdMap *This,ULONG ulStreamId,DWORD MediaSampleContent,ULONG ulSubstreamFilterValue,int iDataOffset);
  13993   void __RPC_STUB IMPEG2StreamIdMap_MapStreamId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13994   HRESULT WINAPI IMPEG2StreamIdMap_UnmapStreamId_Proxy(IMPEG2StreamIdMap *This,ULONG culStreamId,ULONG *pulStreamId);
  13995   void __RPC_STUB IMPEG2StreamIdMap_UnmapStreamId_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13996   HRESULT WINAPI IMPEG2StreamIdMap_EnumStreamIdMap_Proxy(IMPEG2StreamIdMap *This,IEnumStreamIdMap **ppIEnumStreamIdMap);
  13997   void __RPC_STUB IMPEG2StreamIdMap_EnumStreamIdMap_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  13998 #endif
  13999 
  14000 #ifndef __IRegisterServiceProvider_INTERFACE_DEFINED__
  14001 #define __IRegisterServiceProvider_INTERFACE_DEFINED__
  14002   EXTERN_C const IID IID_IRegisterServiceProvider;
  14003 #if defined(__cplusplus) && !defined(CINTERFACE)
  14004   struct IRegisterServiceProvider : public IUnknown {
  14005   public:
  14006     virtual HRESULT WINAPI RegisterService(REFGUID guidService,IUnknown *pUnkObject) = 0;
  14007   };
  14008 #else
  14009   typedef struct IRegisterServiceProviderVtbl {
  14010     BEGIN_INTERFACE
  14011       HRESULT (WINAPI *QueryInterface)(IRegisterServiceProvider *This,REFIID riid,void **ppvObject);
  14012       ULONG (WINAPI *AddRef)(IRegisterServiceProvider *This);
  14013       ULONG (WINAPI *Release)(IRegisterServiceProvider *This);
  14014       HRESULT (WINAPI *RegisterService)(IRegisterServiceProvider *This,REFGUID guidService,IUnknown *pUnkObject);
  14015     END_INTERFACE
  14016   } IRegisterServiceProviderVtbl;
  14017   struct IRegisterServiceProvider {
  14018     CONST_VTBL struct IRegisterServiceProviderVtbl *lpVtbl;
  14019   };
  14020 #ifdef COBJMACROS
  14021 #define IRegisterServiceProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14022 #define IRegisterServiceProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
  14023 #define IRegisterServiceProvider_Release(This) (This)->lpVtbl->Release(This)
  14024 #define IRegisterServiceProvider_RegisterService(This,guidService,pUnkObject) (This)->lpVtbl->RegisterService(This,guidService,pUnkObject)
  14025 #endif
  14026 #endif
  14027   HRESULT WINAPI IRegisterServiceProvider_RegisterService_Proxy(IRegisterServiceProvider *This,REFGUID guidService,IUnknown *pUnkObject);
  14028   void __RPC_STUB IRegisterServiceProvider_RegisterService_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14029 #endif
  14030 
  14031 #ifdef __cplusplus
  14032 #ifndef _IAMFilterGraphCallback_
  14033 #define _IAMFilterGraphCallback_
  14034   EXTERN_GUID(IID_IAMFilterGraphCallback,0x56a868fd,0x0ad4,0x11ce,0xb0,0xa3,0x0,0x20,0xaf,0x0b,0xa7,0x70);
  14035   struct IAMFilterGraphCallback : public IUnknown {
  14036     virtual HRESULT UnableToRender(IPin *pPin) = 0;
  14037   };
  14038 #endif
  14039 #endif
  14040   struct CodecAPIEventData {
  14041     GUID guid;
  14042     DWORD dataLength;
  14043     DWORD reserved[3];
  14044   };
  14045 
  14046   extern RPC_IF_HANDLE __MIDL_itf_strmif_0370_v0_0_c_ifspec;
  14047   extern RPC_IF_HANDLE __MIDL_itf_strmif_0370_v0_0_s_ifspec;
  14048 #ifndef __ICodecAPI_INTERFACE_DEFINED__
  14049 #define __ICodecAPI_INTERFACE_DEFINED__
  14050   EXTERN_C const IID IID_ICodecAPI;
  14051 #if defined(__cplusplus) && !defined(CINTERFACE)
  14052   struct ICodecAPI : public IUnknown {
  14053   public:
  14054     virtual HRESULT WINAPI IsSupported(const GUID *Api) = 0;
  14055     virtual HRESULT WINAPI IsModifiable(const GUID *Api) = 0;
  14056     virtual HRESULT WINAPI GetParameterRange(const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta) = 0;
  14057     virtual HRESULT WINAPI GetParameterValues(const GUID *Api,VARIANT **Values,ULONG *ValuesCount) = 0;
  14058     virtual HRESULT WINAPI GetDefaultValue(const GUID *Api,VARIANT *Value) = 0;
  14059     virtual HRESULT WINAPI GetValue(const GUID *Api,VARIANT *Value) = 0;
  14060     virtual HRESULT WINAPI SetValue(const GUID *Api,VARIANT *Value) = 0;
  14061     virtual HRESULT WINAPI RegisterForEvent(const GUID *Api,LONG_PTR userData) = 0;
  14062     virtual HRESULT WINAPI UnregisterForEvent(const GUID *Api) = 0;
  14063     virtual HRESULT WINAPI SetAllDefaults(void) = 0;
  14064     virtual HRESULT WINAPI SetValueWithNotify(const GUID *Api,VARIANT *Value,GUID **ChangedParam,ULONG *ChangedParamCount) = 0;
  14065     virtual HRESULT WINAPI SetAllDefaultsWithNotify(GUID **ChangedParam,ULONG *ChangedParamCount) = 0;
  14066     virtual HRESULT WINAPI GetAllSettings(IStream *__MIDL_0016) = 0;
  14067     virtual HRESULT WINAPI SetAllSettings(IStream *__MIDL_0017) = 0;
  14068     virtual HRESULT WINAPI SetAllSettingsWithNotify(IStream *__MIDL_0018,GUID **ChangedParam,ULONG *ChangedParamCount) = 0;
  14069   };
  14070 #else
  14071   typedef struct ICodecAPIVtbl {
  14072     BEGIN_INTERFACE
  14073       HRESULT (WINAPI *QueryInterface)(ICodecAPI *This,REFIID riid,void **ppvObject);
  14074       ULONG (WINAPI *AddRef)(ICodecAPI *This);
  14075       ULONG (WINAPI *Release)(ICodecAPI *This);
  14076       HRESULT (WINAPI *IsSupported)(ICodecAPI *This,const GUID *Api);
  14077       HRESULT (WINAPI *IsModifiable)(ICodecAPI *This,const GUID *Api);
  14078       HRESULT (WINAPI *GetParameterRange)(ICodecAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
  14079       HRESULT (WINAPI *GetParameterValues)(ICodecAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
  14080       HRESULT (WINAPI *GetDefaultValue)(ICodecAPI *This,const GUID *Api,VARIANT *Value);
  14081       HRESULT (WINAPI *GetValue)(ICodecAPI *This,const GUID *Api,VARIANT *Value);
  14082       HRESULT (WINAPI *SetValue)(ICodecAPI *This,const GUID *Api,VARIANT *Value);
  14083       HRESULT (WINAPI *RegisterForEvent)(ICodecAPI *This,const GUID *Api,LONG_PTR userData);
  14084       HRESULT (WINAPI *UnregisterForEvent)(ICodecAPI *This,const GUID *Api);
  14085       HRESULT (WINAPI *SetAllDefaults)(ICodecAPI *This);
  14086       HRESULT (WINAPI *SetValueWithNotify)(ICodecAPI *This,const GUID *Api,VARIANT *Value,GUID **ChangedParam,ULONG *ChangedParamCount);
  14087       HRESULT (WINAPI *SetAllDefaultsWithNotify)(ICodecAPI *This,GUID **ChangedParam,ULONG *ChangedParamCount);
  14088       HRESULT (WINAPI *GetAllSettings)(ICodecAPI *This,IStream *__MIDL_0016);
  14089       HRESULT (WINAPI *SetAllSettings)(ICodecAPI *This,IStream *__MIDL_0017);
  14090       HRESULT (WINAPI *SetAllSettingsWithNotify)(ICodecAPI *This,IStream *__MIDL_0018,GUID **ChangedParam,ULONG *ChangedParamCount);
  14091     END_INTERFACE
  14092   } ICodecAPIVtbl;
  14093   struct ICodecAPI {
  14094     CONST_VTBL struct ICodecAPIVtbl *lpVtbl;
  14095   };
  14096 #ifdef COBJMACROS
  14097 #define ICodecAPI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14098 #define ICodecAPI_AddRef(This) (This)->lpVtbl->AddRef(This)
  14099 #define ICodecAPI_Release(This) (This)->lpVtbl->Release(This)
  14100 #define ICodecAPI_IsSupported(This,Api) (This)->lpVtbl->IsSupported(This,Api)
  14101 #define ICodecAPI_IsModifiable(This,Api) (This)->lpVtbl->IsModifiable(This,Api)
  14102 #define ICodecAPI_GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta) (This)->lpVtbl->GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta)
  14103 #define ICodecAPI_GetParameterValues(This,Api,Values,ValuesCount) (This)->lpVtbl->GetParameterValues(This,Api,Values,ValuesCount)
  14104 #define ICodecAPI_GetDefaultValue(This,Api,Value) (This)->lpVtbl->GetDefaultValue(This,Api,Value)
  14105 #define ICodecAPI_GetValue(This,Api,Value) (This)->lpVtbl->GetValue(This,Api,Value)
  14106 #define ICodecAPI_SetValue(This,Api,Value) (This)->lpVtbl->SetValue(This,Api,Value)
  14107 #define ICodecAPI_RegisterForEvent(This,Api,userData) (This)->lpVtbl->RegisterForEvent(This,Api,userData)
  14108 #define ICodecAPI_UnregisterForEvent(This,Api) (This)->lpVtbl->UnregisterForEvent(This,Api)
  14109 #define ICodecAPI_SetAllDefaults(This) (This)->lpVtbl->SetAllDefaults(This)
  14110 #define ICodecAPI_SetValueWithNotify(This,Api,Value,ChangedParam,ChangedParamCount) (This)->lpVtbl->SetValueWithNotify(This,Api,Value,ChangedParam,ChangedParamCount)
  14111 #define ICodecAPI_SetAllDefaultsWithNotify(This,ChangedParam,ChangedParamCount) (This)->lpVtbl->SetAllDefaultsWithNotify(This,ChangedParam,ChangedParamCount)
  14112 #define ICodecAPI_GetAllSettings(This,__MIDL_0016) (This)->lpVtbl->GetAllSettings(This,__MIDL_0016)
  14113 #define ICodecAPI_SetAllSettings(This,__MIDL_0017) (This)->lpVtbl->SetAllSettings(This,__MIDL_0017)
  14114 #define ICodecAPI_SetAllSettingsWithNotify(This,__MIDL_0018,ChangedParam,ChangedParamCount) (This)->lpVtbl->SetAllSettingsWithNotify(This,__MIDL_0018,ChangedParam,ChangedParamCount)
  14115 #endif
  14116 #endif
  14117   HRESULT WINAPI ICodecAPI_IsSupported_Proxy(ICodecAPI *This,const GUID *Api);
  14118   void __RPC_STUB ICodecAPI_IsSupported_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14119   HRESULT WINAPI ICodecAPI_IsModifiable_Proxy(ICodecAPI *This,const GUID *Api);
  14120   void __RPC_STUB ICodecAPI_IsModifiable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14121   HRESULT WINAPI ICodecAPI_GetParameterRange_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
  14122   void __RPC_STUB ICodecAPI_GetParameterRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14123   HRESULT WINAPI ICodecAPI_GetParameterValues_Proxy(ICodecAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
  14124   void __RPC_STUB ICodecAPI_GetParameterValues_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14125   HRESULT WINAPI ICodecAPI_GetDefaultValue_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value);
  14126   void __RPC_STUB ICodecAPI_GetDefaultValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14127   HRESULT WINAPI ICodecAPI_GetValue_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value);
  14128   void __RPC_STUB ICodecAPI_GetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14129   HRESULT WINAPI ICodecAPI_SetValue_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value);
  14130   void __RPC_STUB ICodecAPI_SetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14131   HRESULT WINAPI ICodecAPI_RegisterForEvent_Proxy(ICodecAPI *This,const GUID *Api,LONG_PTR userData);
  14132   void __RPC_STUB ICodecAPI_RegisterForEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14133   HRESULT WINAPI ICodecAPI_UnregisterForEvent_Proxy(ICodecAPI *This,const GUID *Api);
  14134   void __RPC_STUB ICodecAPI_UnregisterForEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14135   HRESULT WINAPI ICodecAPI_SetAllDefaults_Proxy(ICodecAPI *This);
  14136   void __RPC_STUB ICodecAPI_SetAllDefaults_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14137   HRESULT WINAPI ICodecAPI_SetValueWithNotify_Proxy(ICodecAPI *This,const GUID *Api,VARIANT *Value,GUID **ChangedParam,ULONG *ChangedParamCount);
  14138   void __RPC_STUB ICodecAPI_SetValueWithNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14139   HRESULT WINAPI ICodecAPI_SetAllDefaultsWithNotify_Proxy(ICodecAPI *This,GUID **ChangedParam,ULONG *ChangedParamCount);
  14140   void __RPC_STUB ICodecAPI_SetAllDefaultsWithNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14141   HRESULT WINAPI ICodecAPI_GetAllSettings_Proxy(ICodecAPI *This,IStream *__MIDL_0016);
  14142   void __RPC_STUB ICodecAPI_GetAllSettings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14143   HRESULT WINAPI ICodecAPI_SetAllSettings_Proxy(ICodecAPI *This,IStream *__MIDL_0017);
  14144   void __RPC_STUB ICodecAPI_SetAllSettings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14145   HRESULT WINAPI ICodecAPI_SetAllSettingsWithNotify_Proxy(ICodecAPI *This,IStream *__MIDL_0018,GUID **ChangedParam,ULONG *ChangedParamCount);
  14146   void __RPC_STUB ICodecAPI_SetAllSettingsWithNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14147 #endif
  14148 
  14149 #ifndef __IGetCapabilitiesKey_INTERFACE_DEFINED__
  14150 #define __IGetCapabilitiesKey_INTERFACE_DEFINED__
  14151   EXTERN_C const IID IID_IGetCapabilitiesKey;
  14152 #if defined(__cplusplus) && !defined(CINTERFACE)
  14153   struct IGetCapabilitiesKey : public IUnknown {
  14154   public:
  14155     virtual HRESULT WINAPI GetCapabilitiesKey(HKEY *pHKey) = 0;
  14156   };
  14157 #else
  14158   typedef struct IGetCapabilitiesKeyVtbl {
  14159     BEGIN_INTERFACE
  14160       HRESULT (WINAPI *QueryInterface)(IGetCapabilitiesKey *This,REFIID riid,void **ppvObject);
  14161       ULONG (WINAPI *AddRef)(IGetCapabilitiesKey *This);
  14162       ULONG (WINAPI *Release)(IGetCapabilitiesKey *This);
  14163       HRESULT (WINAPI *GetCapabilitiesKey)(IGetCapabilitiesKey *This,HKEY *pHKey);
  14164     END_INTERFACE
  14165   } IGetCapabilitiesKeyVtbl;
  14166   struct IGetCapabilitiesKey {
  14167     CONST_VTBL struct IGetCapabilitiesKeyVtbl *lpVtbl;
  14168   };
  14169 #ifdef COBJMACROS
  14170 #define IGetCapabilitiesKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14171 #define IGetCapabilitiesKey_AddRef(This) (This)->lpVtbl->AddRef(This)
  14172 #define IGetCapabilitiesKey_Release(This) (This)->lpVtbl->Release(This)
  14173 #define IGetCapabilitiesKey_GetCapabilitiesKey(This,pHKey) (This)->lpVtbl->GetCapabilitiesKey(This,pHKey)
  14174 #endif
  14175 #endif
  14176   HRESULT WINAPI IGetCapabilitiesKey_GetCapabilitiesKey_Proxy(IGetCapabilitiesKey *This,HKEY *pHKey);
  14177   void __RPC_STUB IGetCapabilitiesKey_GetCapabilitiesKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14178 #endif
  14179 
  14180 #ifndef __IEncoderAPI_INTERFACE_DEFINED__
  14181 #define __IEncoderAPI_INTERFACE_DEFINED__
  14182   EXTERN_C const IID IID_IEncoderAPI;
  14183 #if defined(__cplusplus) && !defined(CINTERFACE)
  14184   struct IEncoderAPI : public IUnknown {
  14185   public:
  14186     virtual HRESULT WINAPI IsSupported(const GUID *Api) = 0;
  14187     virtual HRESULT WINAPI IsAvailable(const GUID *Api) = 0;
  14188     virtual HRESULT WINAPI GetParameterRange(const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta) = 0;
  14189     virtual HRESULT WINAPI GetParameterValues(const GUID *Api,VARIANT **Values,ULONG *ValuesCount) = 0;
  14190     virtual HRESULT WINAPI GetDefaultValue(const GUID *Api,VARIANT *Value) = 0;
  14191     virtual HRESULT WINAPI GetValue(const GUID *Api,VARIANT *Value) = 0;
  14192     virtual HRESULT WINAPI SetValue(const GUID *Api,VARIANT *Value) = 0;
  14193   };
  14194 #else
  14195   typedef struct IEncoderAPIVtbl {
  14196     BEGIN_INTERFACE
  14197       HRESULT (WINAPI *QueryInterface)(IEncoderAPI *This,REFIID riid,void **ppvObject);
  14198       ULONG (WINAPI *AddRef)(IEncoderAPI *This);
  14199       ULONG (WINAPI *Release)(IEncoderAPI *This);
  14200       HRESULT (WINAPI *IsSupported)(IEncoderAPI *This,const GUID *Api);
  14201       HRESULT (WINAPI *IsAvailable)(IEncoderAPI *This,const GUID *Api);
  14202       HRESULT (WINAPI *GetParameterRange)(IEncoderAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
  14203       HRESULT (WINAPI *GetParameterValues)(IEncoderAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
  14204       HRESULT (WINAPI *GetDefaultValue)(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
  14205       HRESULT (WINAPI *GetValue)(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
  14206       HRESULT (WINAPI *SetValue)(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
  14207     END_INTERFACE
  14208   } IEncoderAPIVtbl;
  14209   struct IEncoderAPI {
  14210     CONST_VTBL struct IEncoderAPIVtbl *lpVtbl;
  14211   };
  14212 #ifdef COBJMACROS
  14213 #define IEncoderAPI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14214 #define IEncoderAPI_AddRef(This) (This)->lpVtbl->AddRef(This)
  14215 #define IEncoderAPI_Release(This) (This)->lpVtbl->Release(This)
  14216 #define IEncoderAPI_IsSupported(This,Api) (This)->lpVtbl->IsSupported(This,Api)
  14217 #define IEncoderAPI_IsAvailable(This,Api) (This)->lpVtbl->IsAvailable(This,Api)
  14218 #define IEncoderAPI_GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta) (This)->lpVtbl->GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta)
  14219 #define IEncoderAPI_GetParameterValues(This,Api,Values,ValuesCount) (This)->lpVtbl->GetParameterValues(This,Api,Values,ValuesCount)
  14220 #define IEncoderAPI_GetDefaultValue(This,Api,Value) (This)->lpVtbl->GetDefaultValue(This,Api,Value)
  14221 #define IEncoderAPI_GetValue(This,Api,Value) (This)->lpVtbl->GetValue(This,Api,Value)
  14222 #define IEncoderAPI_SetValue(This,Api,Value) (This)->lpVtbl->SetValue(This,Api,Value)
  14223 #endif
  14224 #endif
  14225   HRESULT WINAPI IEncoderAPI_IsSupported_Proxy(IEncoderAPI *This,const GUID *Api);
  14226   void __RPC_STUB IEncoderAPI_IsSupported_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14227   HRESULT WINAPI IEncoderAPI_IsAvailable_Proxy(IEncoderAPI *This,const GUID *Api);
  14228   void __RPC_STUB IEncoderAPI_IsAvailable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14229   HRESULT WINAPI IEncoderAPI_GetParameterRange_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
  14230   void __RPC_STUB IEncoderAPI_GetParameterRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14231   HRESULT WINAPI IEncoderAPI_GetParameterValues_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
  14232   void __RPC_STUB IEncoderAPI_GetParameterValues_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14233   HRESULT WINAPI IEncoderAPI_GetDefaultValue_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
  14234   void __RPC_STUB IEncoderAPI_GetDefaultValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14235   HRESULT WINAPI IEncoderAPI_GetValue_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
  14236   void __RPC_STUB IEncoderAPI_GetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14237   HRESULT WINAPI IEncoderAPI_SetValue_Proxy(IEncoderAPI *This,const GUID *Api,VARIANT *Value);
  14238   void __RPC_STUB IEncoderAPI_SetValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14239 #endif
  14240 
  14241 #ifndef __IVideoEncoder_INTERFACE_DEFINED__
  14242 #define __IVideoEncoder_INTERFACE_DEFINED__
  14243   EXTERN_C const IID IID_IVideoEncoder;
  14244 #if defined(__cplusplus) && !defined(CINTERFACE)
  14245   struct IVideoEncoder : public IEncoderAPI {
  14246   public:
  14247   };
  14248 #else
  14249   typedef struct IVideoEncoderVtbl {
  14250     BEGIN_INTERFACE
  14251       HRESULT (WINAPI *QueryInterface)(IVideoEncoder *This,REFIID riid,void **ppvObject);
  14252       ULONG (WINAPI *AddRef)(IVideoEncoder *This);
  14253       ULONG (WINAPI *Release)(IVideoEncoder *This);
  14254       HRESULT (WINAPI *IsSupported)(IVideoEncoder *This,const GUID *Api);
  14255       HRESULT (WINAPI *IsAvailable)(IVideoEncoder *This,const GUID *Api);
  14256       HRESULT (WINAPI *GetParameterRange)(IVideoEncoder *This,const GUID *Api,VARIANT *ValueMin,VARIANT *ValueMax,VARIANT *SteppingDelta);
  14257       HRESULT (WINAPI *GetParameterValues)(IVideoEncoder *This,const GUID *Api,VARIANT **Values,ULONG *ValuesCount);
  14258       HRESULT (WINAPI *GetDefaultValue)(IVideoEncoder *This,const GUID *Api,VARIANT *Value);
  14259       HRESULT (WINAPI *GetValue)(IVideoEncoder *This,const GUID *Api,VARIANT *Value);
  14260       HRESULT (WINAPI *SetValue)(IVideoEncoder *This,const GUID *Api,VARIANT *Value);
  14261     END_INTERFACE
  14262   } IVideoEncoderVtbl;
  14263   struct IVideoEncoder {
  14264     CONST_VTBL struct IVideoEncoderVtbl *lpVtbl;
  14265   };
  14266 #ifdef COBJMACROS
  14267 #define IVideoEncoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14268 #define IVideoEncoder_AddRef(This) (This)->lpVtbl->AddRef(This)
  14269 #define IVideoEncoder_Release(This) (This)->lpVtbl->Release(This)
  14270 #define IVideoEncoder_IsSupported(This,Api) (This)->lpVtbl->IsSupported(This,Api)
  14271 #define IVideoEncoder_IsAvailable(This,Api) (This)->lpVtbl->IsAvailable(This,Api)
  14272 #define IVideoEncoder_GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta) (This)->lpVtbl->GetParameterRange(This,Api,ValueMin,ValueMax,SteppingDelta)
  14273 #define IVideoEncoder_GetParameterValues(This,Api,Values,ValuesCount) (This)->lpVtbl->GetParameterValues(This,Api,Values,ValuesCount)
  14274 #define IVideoEncoder_GetDefaultValue(This,Api,Value) (This)->lpVtbl->GetDefaultValue(This,Api,Value)
  14275 #define IVideoEncoder_GetValue(This,Api,Value) (This)->lpVtbl->GetValue(This,Api,Value)
  14276 #define IVideoEncoder_SetValue(This,Api,Value) (This)->lpVtbl->SetValue(This,Api,Value)
  14277 #endif
  14278 #endif
  14279 #endif
  14280 
  14281 #ifndef __ENCODER_API_DEFINES__
  14282 #define __ENCODER_API_DEFINES__
  14283   typedef enum __MIDL___MIDL_itf_strmif_0374_0001 {
  14284     ConstantBitRate = 0,
  14285     VariableBitRateAverage,VariableBitRatePeak
  14286   } VIDEOENCODER_BITRATE_MODE;
  14287 #endif
  14288 #define AM_GETDECODERCAP_QUERY_VMR_SUPPORT 0x00000001
  14289 #define VMR_NOTSUPPORTED 0x00000000
  14290 #define VMR_SUPPORTED 0x00000001
  14291 #define AM_QUERY_DECODER_VMR_SUPPORT 0x00000001
  14292 #define AM_QUERY_DECODER_DXVA_1_SUPPORT 0x00000002
  14293 #define AM_QUERY_DECODER_DVD_SUPPORT 0x00000003
  14294 #define AM_QUERY_DECODER_ATSC_SD_SUPPORT 0x00000004
  14295 #define AM_QUERY_DECODER_ATSC_HD_SUPPORT 0x00000005
  14296 #define AM_GETDECODERCAP_QUERY_VMR9_SUPPORT 0x00000006
  14297 #define DECODER_CAP_NOTSUPPORTED 0x00000000
  14298 #define DECODER_CAP_SUPPORTED 0x00000001
  14299 
  14300   extern RPC_IF_HANDLE __MIDL_itf_strmif_0374_v0_0_c_ifspec;
  14301   extern RPC_IF_HANDLE __MIDL_itf_strmif_0374_v0_0_s_ifspec;
  14302 #ifndef __IAMDecoderCaps_INTERFACE_DEFINED__
  14303 #define __IAMDecoderCaps_INTERFACE_DEFINED__
  14304   EXTERN_C const IID IID_IAMDecoderCaps;
  14305 #if defined(__cplusplus) && !defined(CINTERFACE)
  14306   struct IAMDecoderCaps : public IUnknown {
  14307   public:
  14308     virtual HRESULT WINAPI GetDecoderCaps(DWORD dwCapIndex,DWORD *lpdwCap) = 0;
  14309   };
  14310 #else
  14311   typedef struct IAMDecoderCapsVtbl {
  14312     BEGIN_INTERFACE
  14313       HRESULT (WINAPI *QueryInterface)(IAMDecoderCaps *This,REFIID riid,void **ppvObject);
  14314       ULONG (WINAPI *AddRef)(IAMDecoderCaps *This);
  14315       ULONG (WINAPI *Release)(IAMDecoderCaps *This);
  14316       HRESULT (WINAPI *GetDecoderCaps)(IAMDecoderCaps *This,DWORD dwCapIndex,DWORD *lpdwCap);
  14317     END_INTERFACE
  14318   } IAMDecoderCapsVtbl;
  14319   struct IAMDecoderCaps {
  14320     CONST_VTBL struct IAMDecoderCapsVtbl *lpVtbl;
  14321   };
  14322 #ifdef COBJMACROS
  14323 #define IAMDecoderCaps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14324 #define IAMDecoderCaps_AddRef(This) (This)->lpVtbl->AddRef(This)
  14325 #define IAMDecoderCaps_Release(This) (This)->lpVtbl->Release(This)
  14326 #define IAMDecoderCaps_GetDecoderCaps(This,dwCapIndex,lpdwCap) (This)->lpVtbl->GetDecoderCaps(This,dwCapIndex,lpdwCap)
  14327 #endif
  14328 #endif
  14329   HRESULT WINAPI IAMDecoderCaps_GetDecoderCaps_Proxy(IAMDecoderCaps *This,DWORD dwCapIndex,DWORD *lpdwCap);
  14330   void __RPC_STUB IAMDecoderCaps_GetDecoderCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14331 #endif
  14332 
  14333 #include <ddraw.h>
  14334 
  14335   typedef enum tagDVD_DOMAIN {
  14336     DVD_DOMAIN_FirstPlay = 1,
  14337     DVD_DOMAIN_VideoManagerMenu,DVD_DOMAIN_VideoTitleSetMenu,DVD_DOMAIN_Title,
  14338     DVD_DOMAIN_Stop
  14339   } DVD_DOMAIN;
  14340 
  14341   typedef enum tagDVD_MENU_ID {
  14342     DVD_MENU_Title = 2,DVD_MENU_Root = 3,DVD_MENU_Subpicture = 4,DVD_MENU_Audio = 5,
  14343     DVD_MENU_Angle = 6,DVD_MENU_Chapter = 7
  14344   } DVD_MENU_ID;
  14345 
  14346   typedef enum tagDVD_DISC_SIDE {
  14347     DVD_SIDE_A = 1,DVD_SIDE_B = 2
  14348   } DVD_DISC_SIDE;
  14349 
  14350   typedef enum tagDVD_PREFERRED_DISPLAY_MODE {
  14351     DISPLAY_CONTENT_DEFAULT = 0,DISPLAY_16x9 = 1,DISPLAY_4x3_PANSCAN_PREFERRED = 2,DISPLAY_4x3_LETTERBOX_PREFERRED = 3
  14352   } DVD_PREFERRED_DISPLAY_MODE;
  14353 
  14354   typedef WORD DVD_REGISTER;
  14355   typedef DVD_REGISTER GPRMARRAY[16];
  14356   typedef DVD_REGISTER SPRMARRAY[24];
  14357 
  14358   typedef struct tagDVD_ATR {
  14359     ULONG ulCAT;
  14360     BYTE pbATRI[768];
  14361   } DVD_ATR;
  14362 
  14363   typedef BYTE DVD_VideoATR[2];
  14364   typedef BYTE DVD_AudioATR[8];
  14365   typedef BYTE DVD_SubpictureATR[6];
  14366 
  14367   typedef enum tagDVD_FRAMERATE {
  14368     DVD_FPS_25 = 1,DVD_FPS_30NonDrop = 3
  14369   } DVD_FRAMERATE;
  14370 
  14371   typedef struct tagDVD_TIMECODE {
  14372     ULONG Hours1 :4;
  14373     ULONG Hours10 :4;
  14374     ULONG Minutes1 :4;
  14375     ULONG Minutes10:4;
  14376     ULONG Seconds1 :4;
  14377     ULONG Seconds10:4;
  14378     ULONG Frames1 :4;
  14379     ULONG Frames10 :2;
  14380     ULONG FrameRateCode: 2;
  14381   } DVD_TIMECODE;
  14382 
  14383   typedef enum tagDVD_TIMECODE_FLAGS {
  14384     DVD_TC_FLAG_25fps = 0x1,DVD_TC_FLAG_30fps = 0x2,DVD_TC_FLAG_DropFrame = 0x4,DVD_TC_FLAG_Interpolated = 0x8
  14385   } DVD_TIMECODE_FLAGS;
  14386 
  14387   typedef struct tagDVD_HMSF_TIMECODE {
  14388     BYTE bHours;
  14389     BYTE bMinutes;
  14390     BYTE bSeconds;
  14391     BYTE bFrames;
  14392   } DVD_HMSF_TIMECODE;
  14393 
  14394   typedef struct tagDVD_PLAYBACK_LOCATION2 {
  14395     ULONG TitleNum;
  14396     ULONG ChapterNum;
  14397     DVD_HMSF_TIMECODE TimeCode;
  14398     ULONG TimeCodeFlags;
  14399   } DVD_PLAYBACK_LOCATION2;
  14400 
  14401   typedef struct tagDVD_PLAYBACK_LOCATION {
  14402     ULONG TitleNum;
  14403     ULONG ChapterNum;
  14404     ULONG TimeCode;
  14405   } DVD_PLAYBACK_LOCATION;
  14406 
  14407   typedef DWORD VALID_UOP_SOMTHING_OR_OTHER;
  14408 
  14409   typedef enum __MIDL___MIDL_itf_strmif_0376_0001 {
  14410     UOP_FLAG_Play_Title_Or_AtTime = 0x1,UOP_FLAG_Play_Chapter = 0x2,UOP_FLAG_Play_Title = 0x4,UOP_FLAG_Stop = 0x8,UOP_FLAG_ReturnFromSubMenu = 0x10,
  14411     UOP_FLAG_Play_Chapter_Or_AtTime = 0x20,UOP_FLAG_PlayPrev_Or_Replay_Chapter = 0x40,UOP_FLAG_PlayNext_Chapter = 0x80,UOP_FLAG_Play_Forwards = 0x100,
  14412     UOP_FLAG_Play_Backwards = 0x200,UOP_FLAG_ShowMenu_Title = 0x400,UOP_FLAG_ShowMenu_Root = 0x800,UOP_FLAG_ShowMenu_SubPic = 0x1000,
  14413     UOP_FLAG_ShowMenu_Audio = 0x2000,UOP_FLAG_ShowMenu_Angle = 0x4000,UOP_FLAG_ShowMenu_Chapter = 0x8000,UOP_FLAG_Resume = 0x10000,
  14414     UOP_FLAG_Select_Or_Activate_Button = 0x20000,UOP_FLAG_Still_Off = 0x40000,UOP_FLAG_Pause_On = 0x80000,UOP_FLAG_Select_Audio_Stream = 0x100000,
  14415     UOP_FLAG_Select_SubPic_Stream = 0x200000,UOP_FLAG_Select_Angle = 0x400000,UOP_FLAG_Select_Karaoke_Audio_Presentation_Mode = 0x800000,
  14416     UOP_FLAG_Select_Video_Mode_Preference = 0x1000000
  14417   } VALID_UOP_FLAG;
  14418 
  14419   typedef enum __MIDL___MIDL_itf_strmif_0376_0002 {
  14420     DVD_CMD_FLAG_None = 0,DVD_CMD_FLAG_Flush = 0x1,DVD_CMD_FLAG_SendEvents = 0x2,DVD_CMD_FLAG_Block = 0x4,DVD_CMD_FLAG_StartWhenRendered = 0x8,
  14421     DVD_CMD_FLAG_EndAfterRendered = 0x10
  14422   } DVD_CMD_FLAGS;
  14423 
  14424   typedef enum __MIDL___MIDL_itf_strmif_0376_0003 {
  14425     DVD_ResetOnStop = 1,DVD_NotifyParentalLevelChange = 2,DVD_HMSF_TimeCodeEvents = 3,DVD_AudioDuringFFwdRew = 4
  14426   } DVD_OPTION_FLAG;
  14427 
  14428   typedef enum __MIDL___MIDL_itf_strmif_0376_0004 {
  14429     DVD_Relative_Upper = 1,DVD_Relative_Lower = 2,DVD_Relative_Left = 3,DVD_Relative_Right = 4
  14430   } DVD_RELATIVE_BUTTON;
  14431 
  14432   typedef enum tagDVD_PARENTAL_LEVEL {
  14433     DVD_PARENTAL_LEVEL_8 = 0x8000,DVD_PARENTAL_LEVEL_7 = 0x4000,DVD_PARENTAL_LEVEL_6 = 0x2000,DVD_PARENTAL_LEVEL_5 = 0x1000,
  14434     DVD_PARENTAL_LEVEL_4 = 0x800,DVD_PARENTAL_LEVEL_3 = 0x400,DVD_PARENTAL_LEVEL_2 = 0x200,DVD_PARENTAL_LEVEL_1 = 0x100
  14435   } DVD_PARENTAL_LEVEL;
  14436 
  14437   typedef enum tagDVD_AUDIO_LANG_EXT {
  14438     DVD_AUD_EXT_NotSpecified = 0,DVD_AUD_EXT_Captions = 1,DVD_AUD_EXT_VisuallyImpaired = 2,DVD_AUD_EXT_DirectorComments1 = 3,
  14439     DVD_AUD_EXT_DirectorComments2 = 4
  14440   } DVD_AUDIO_LANG_EXT;
  14441 
  14442   typedef enum tagDVD_SUBPICTURE_LANG_EXT {
  14443     DVD_SP_EXT_NotSpecified = 0,DVD_SP_EXT_Caption_Normal = 1,DVD_SP_EXT_Caption_Big = 2,DVD_SP_EXT_Caption_Children = 3,DVD_SP_EXT_CC_Normal = 5,
  14444     DVD_SP_EXT_CC_Big = 6,DVD_SP_EXT_CC_Children = 7,DVD_SP_EXT_Forced = 9,DVD_SP_EXT_DirectorComments_Normal = 13,DVD_SP_EXT_DirectorComments_Big = 14,
  14445     DVD_SP_EXT_DirectorComments_Children = 15
  14446   } DVD_SUBPICTURE_LANG_EXT;
  14447 
  14448   typedef enum tagDVD_AUDIO_APPMODE {
  14449     DVD_AudioMode_None = 0,DVD_AudioMode_Karaoke = 1,DVD_AudioMode_Surround = 2,DVD_AudioMode_Other = 3
  14450   } DVD_AUDIO_APPMODE;
  14451 
  14452   typedef enum tagDVD_AUDIO_FORMAT {
  14453     DVD_AudioFormat_AC3 = 0,DVD_AudioFormat_MPEG1 = 1,DVD_AudioFormat_MPEG1_DRC = 2,DVD_AudioFormat_MPEG2 = 3,DVD_AudioFormat_MPEG2_DRC = 4,
  14454     DVD_AudioFormat_LPCM = 5,DVD_AudioFormat_DTS = 6,DVD_AudioFormat_SDDS = 7,DVD_AudioFormat_Other = 8
  14455   } DVD_AUDIO_FORMAT;
  14456 
  14457   typedef enum tagDVD_KARAOKE_DOWNMIX {
  14458     DVD_Mix_0to0 = 0x1,DVD_Mix_1to0 = 0x2,DVD_Mix_2to0 = 0x4,DVD_Mix_3to0 = 0x8,DVD_Mix_4to0 = 0x10,DVD_Mix_Lto0 = 0x20,DVD_Mix_Rto0 = 0x40,
  14459     DVD_Mix_0to1 = 0x100,DVD_Mix_1to1 = 0x200,DVD_Mix_2to1 = 0x400,DVD_Mix_3to1 = 0x800,DVD_Mix_4to1 = 0x1000,DVD_Mix_Lto1 = 0x2000,
  14460     DVD_Mix_Rto1 = 0x4000
  14461   } DVD_KARAOKE_DOWNMIX;
  14462 
  14463   typedef struct tagDVD_AudioAttributes {
  14464     DVD_AUDIO_APPMODE AppMode;
  14465     BYTE AppModeData;
  14466     DVD_AUDIO_FORMAT AudioFormat;
  14467     LCID Language;
  14468     DVD_AUDIO_LANG_EXT LanguageExtension;
  14469     WINBOOL fHasMultichannelInfo;
  14470     DWORD dwFrequency;
  14471     BYTE bQuantization;
  14472     BYTE bNumberOfChannels;
  14473     DWORD dwReserved[2];
  14474   } DVD_AudioAttributes;
  14475 
  14476   typedef struct tagDVD_MUA_MixingInfo {
  14477     WINBOOL fMixTo0;
  14478     WINBOOL fMixTo1;
  14479     WINBOOL fMix0InPhase;
  14480     WINBOOL fMix1InPhase;
  14481     DWORD dwSpeakerPosition;
  14482   } DVD_MUA_MixingInfo;
  14483 
  14484   typedef struct tagDVD_MUA_Coeff {
  14485     double log2_alpha;
  14486     double log2_beta;
  14487   } DVD_MUA_Coeff;
  14488 
  14489   typedef struct tagDVD_MultichannelAudioAttributes {
  14490     DVD_MUA_MixingInfo Info[8];
  14491     DVD_MUA_Coeff Coeff[8];
  14492   } DVD_MultichannelAudioAttributes;
  14493 
  14494   typedef enum tagDVD_KARAOKE_CONTENTS {
  14495     DVD_Karaoke_GuideVocal1 = 0x1,DVD_Karaoke_GuideVocal2 = 0x2,DVD_Karaoke_GuideMelody1 = 0x4,DVD_Karaoke_GuideMelody2 = 0x8,
  14496     DVD_Karaoke_GuideMelodyA = 0x10,DVD_Karaoke_GuideMelodyB = 0x20,DVD_Karaoke_SoundEffectA = 0x40,DVD_Karaoke_SoundEffectB = 0x80
  14497   } DVD_KARAOKE_CONTENTS;
  14498 
  14499   typedef enum tagDVD_KARAOKE_ASSIGNMENT {
  14500     DVD_Assignment_reserved0 = 0,DVD_Assignment_reserved1 = 1,DVD_Assignment_LR = 2,DVD_Assignment_LRM = 3,DVD_Assignment_LR1 = 4,
  14501     DVD_Assignment_LRM1 = 5,DVD_Assignment_LR12 = 6,DVD_Assignment_LRM12 = 7
  14502   } DVD_KARAOKE_ASSIGNMENT;
  14503 
  14504   typedef struct tagDVD_KaraokeAttributes {
  14505     BYTE bVersion;
  14506     WINBOOL fMasterOfCeremoniesInGuideVocal1;
  14507     WINBOOL fDuet;
  14508     DVD_KARAOKE_ASSIGNMENT ChannelAssignment;
  14509     WORD wChannelContents[8];
  14510   } DVD_KaraokeAttributes;
  14511 
  14512   typedef enum tagDVD_VIDEO_COMPRESSION {
  14513     DVD_VideoCompression_Other = 0,DVD_VideoCompression_MPEG1 = 1,DVD_VideoCompression_MPEG2 = 2
  14514   } DVD_VIDEO_COMPRESSION;
  14515 
  14516   typedef struct tagDVD_VideoAttributes {
  14517     WINBOOL fPanscanPermitted;
  14518     WINBOOL fLetterboxPermitted;
  14519     ULONG ulAspectX;
  14520     ULONG ulAspectY;
  14521     ULONG ulFrameRate;
  14522     ULONG ulFrameHeight;
  14523     DVD_VIDEO_COMPRESSION Compression;
  14524     WINBOOL fLine21Field1InGOP;
  14525     WINBOOL fLine21Field2InGOP;
  14526     ULONG ulSourceResolutionX;
  14527     ULONG ulSourceResolutionY;
  14528     WINBOOL fIsSourceLetterboxed;
  14529     WINBOOL fIsFilmMode;
  14530   } DVD_VideoAttributes;
  14531 
  14532   typedef enum tagDVD_SUBPICTURE_TYPE {
  14533     DVD_SPType_NotSpecified = 0,DVD_SPType_Language = 1,DVD_SPType_Other = 2
  14534   } DVD_SUBPICTURE_TYPE;
  14535 
  14536   typedef enum tagDVD_SUBPICTURE_CODING {
  14537     DVD_SPCoding_RunLength = 0,DVD_SPCoding_Extended = 1,DVD_SPCoding_Other = 2
  14538   } DVD_SUBPICTURE_CODING;
  14539 
  14540   typedef struct tagDVD_SubpictureAttributes {
  14541     DVD_SUBPICTURE_TYPE Type;
  14542     DVD_SUBPICTURE_CODING CodingMode;
  14543     LCID Language;
  14544     DVD_SUBPICTURE_LANG_EXT LanguageExtension;
  14545   } DVD_SubpictureAttributes;
  14546 
  14547   typedef enum tagDVD_TITLE_APPMODE {
  14548     DVD_AppMode_Not_Specified = 0,DVD_AppMode_Karaoke = 1,DVD_AppMode_Other = 3
  14549   } DVD_TITLE_APPMODE;
  14550 
  14551   typedef struct tagDVD_TitleMainAttributes {
  14552     DVD_TITLE_APPMODE AppMode;
  14553     DVD_VideoAttributes VideoAttributes;
  14554     ULONG ulNumberOfAudioStreams;
  14555     DVD_AudioAttributes AudioAttributes[8];
  14556     DVD_MultichannelAudioAttributes MultichannelAudioAttributes[8];
  14557     ULONG ulNumberOfSubpictureStreams;
  14558     DVD_SubpictureAttributes SubpictureAttributes[32];
  14559   } DVD_TitleAttributes;
  14560 
  14561   typedef struct tagDVD_MenuAttributes {
  14562     WINBOOL fCompatibleRegion[8];
  14563     DVD_VideoAttributes VideoAttributes;
  14564     WINBOOL fAudioPresent;
  14565     DVD_AudioAttributes AudioAttributes;
  14566     WINBOOL fSubpicturePresent;
  14567     DVD_SubpictureAttributes SubpictureAttributes;
  14568   } DVD_MenuAttributes;
  14569 
  14570   extern RPC_IF_HANDLE __MIDL_itf_strmif_0376_v0_0_c_ifspec;
  14571   extern RPC_IF_HANDLE __MIDL_itf_strmif_0376_v0_0_s_ifspec;
  14572 #ifndef __IDvdControl_INTERFACE_DEFINED__
  14573 #define __IDvdControl_INTERFACE_DEFINED__
  14574   EXTERN_C const IID IID_IDvdControl;
  14575 #if defined(__cplusplus) && !defined(CINTERFACE)
  14576   struct IDvdControl : public IUnknown {
  14577   public:
  14578     virtual HRESULT WINAPI TitlePlay(ULONG ulTitle) = 0;
  14579     virtual HRESULT WINAPI ChapterPlay(ULONG ulTitle,ULONG ulChapter) = 0;
  14580     virtual HRESULT WINAPI TimePlay(ULONG ulTitle,ULONG bcdTime) = 0;
  14581     virtual HRESULT WINAPI StopForResume(void) = 0;
  14582     virtual HRESULT WINAPI GoUp(void) = 0;
  14583     virtual HRESULT WINAPI TimeSearch(ULONG bcdTime) = 0;
  14584     virtual HRESULT WINAPI ChapterSearch(ULONG ulChapter) = 0;
  14585     virtual HRESULT WINAPI PrevPGSearch(void) = 0;
  14586     virtual HRESULT WINAPI TopPGSearch(void) = 0;
  14587     virtual HRESULT WINAPI NextPGSearch(void) = 0;
  14588     virtual HRESULT WINAPI ForwardScan(double dwSpeed) = 0;
  14589     virtual HRESULT WINAPI BackwardScan(double dwSpeed) = 0;
  14590     virtual HRESULT WINAPI MenuCall(DVD_MENU_ID MenuID) = 0;
  14591     virtual HRESULT WINAPI Resume(void) = 0;
  14592     virtual HRESULT WINAPI UpperButtonSelect(void) = 0;
  14593     virtual HRESULT WINAPI LowerButtonSelect(void) = 0;
  14594     virtual HRESULT WINAPI LeftButtonSelect(void) = 0;
  14595     virtual HRESULT WINAPI RightButtonSelect(void) = 0;
  14596     virtual HRESULT WINAPI ButtonActivate(void) = 0;
  14597     virtual HRESULT WINAPI ButtonSelectAndActivate(ULONG ulButton) = 0;
  14598     virtual HRESULT WINAPI StillOff(void) = 0;
  14599     virtual HRESULT WINAPI PauseOn(void) = 0;
  14600     virtual HRESULT WINAPI PauseOff(void) = 0;
  14601     virtual HRESULT WINAPI MenuLanguageSelect(LCID Language) = 0;
  14602     virtual HRESULT WINAPI AudioStreamChange(ULONG ulAudio) = 0;
  14603     virtual HRESULT WINAPI SubpictureStreamChange(ULONG ulSubPicture,WINBOOL bDisplay) = 0;
  14604     virtual HRESULT WINAPI AngleChange(ULONG ulAngle) = 0;
  14605     virtual HRESULT WINAPI ParentalLevelSelect(ULONG ulParentalLevel) = 0;
  14606     virtual HRESULT WINAPI ParentalCountrySelect(WORD wCountry) = 0;
  14607     virtual HRESULT WINAPI KaraokeAudioPresentationModeChange(ULONG ulMode) = 0;
  14608     virtual HRESULT WINAPI VideoModePreferrence(ULONG ulPreferredDisplayMode) = 0;
  14609     virtual HRESULT WINAPI SetRoot(LPCWSTR pszPath) = 0;
  14610     virtual HRESULT WINAPI MouseActivate(POINT point) = 0;
  14611     virtual HRESULT WINAPI MouseSelect(POINT point) = 0;
  14612     virtual HRESULT WINAPI ChapterPlayAutoStop(ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay) = 0;
  14613   };
  14614 #else
  14615   typedef struct IDvdControlVtbl {
  14616     BEGIN_INTERFACE
  14617       HRESULT (WINAPI *QueryInterface)(IDvdControl *This,REFIID riid,void **ppvObject);
  14618       ULONG (WINAPI *AddRef)(IDvdControl *This);
  14619       ULONG (WINAPI *Release)(IDvdControl *This);
  14620       HRESULT (WINAPI *TitlePlay)(IDvdControl *This,ULONG ulTitle);
  14621       HRESULT (WINAPI *ChapterPlay)(IDvdControl *This,ULONG ulTitle,ULONG ulChapter);
  14622       HRESULT (WINAPI *TimePlay)(IDvdControl *This,ULONG ulTitle,ULONG bcdTime);
  14623       HRESULT (WINAPI *StopForResume)(IDvdControl *This);
  14624       HRESULT (WINAPI *GoUp)(IDvdControl *This);
  14625       HRESULT (WINAPI *TimeSearch)(IDvdControl *This,ULONG bcdTime);
  14626       HRESULT (WINAPI *ChapterSearch)(IDvdControl *This,ULONG ulChapter);
  14627       HRESULT (WINAPI *PrevPGSearch)(IDvdControl *This);
  14628       HRESULT (WINAPI *TopPGSearch)(IDvdControl *This);
  14629       HRESULT (WINAPI *NextPGSearch)(IDvdControl *This);
  14630       HRESULT (WINAPI *ForwardScan)(IDvdControl *This,double dwSpeed);
  14631       HRESULT (WINAPI *BackwardScan)(IDvdControl *This,double dwSpeed);
  14632       HRESULT (WINAPI *MenuCall)(IDvdControl *This,DVD_MENU_ID MenuID);
  14633       HRESULT (WINAPI *Resume)(IDvdControl *This);
  14634       HRESULT (WINAPI *UpperButtonSelect)(IDvdControl *This);
  14635       HRESULT (WINAPI *LowerButtonSelect)(IDvdControl *This);
  14636       HRESULT (WINAPI *LeftButtonSelect)(IDvdControl *This);
  14637       HRESULT (WINAPI *RightButtonSelect)(IDvdControl *This);
  14638       HRESULT (WINAPI *ButtonActivate)(IDvdControl *This);
  14639       HRESULT (WINAPI *ButtonSelectAndActivate)(IDvdControl *This,ULONG ulButton);
  14640       HRESULT (WINAPI *StillOff)(IDvdControl *This);
  14641       HRESULT (WINAPI *PauseOn)(IDvdControl *This);
  14642       HRESULT (WINAPI *PauseOff)(IDvdControl *This);
  14643       HRESULT (WINAPI *MenuLanguageSelect)(IDvdControl *This,LCID Language);
  14644       HRESULT (WINAPI *AudioStreamChange)(IDvdControl *This,ULONG ulAudio);
  14645       HRESULT (WINAPI *SubpictureStreamChange)(IDvdControl *This,ULONG ulSubPicture,WINBOOL bDisplay);
  14646       HRESULT (WINAPI *AngleChange)(IDvdControl *This,ULONG ulAngle);
  14647       HRESULT (WINAPI *ParentalLevelSelect)(IDvdControl *This,ULONG ulParentalLevel);
  14648       HRESULT (WINAPI *ParentalCountrySelect)(IDvdControl *This,WORD wCountry);
  14649       HRESULT (WINAPI *KaraokeAudioPresentationModeChange)(IDvdControl *This,ULONG ulMode);
  14650       HRESULT (WINAPI *VideoModePreferrence)(IDvdControl *This,ULONG ulPreferredDisplayMode);
  14651       HRESULT (WINAPI *SetRoot)(IDvdControl *This,LPCWSTR pszPath);
  14652       HRESULT (WINAPI *MouseActivate)(IDvdControl *This,POINT point);
  14653       HRESULT (WINAPI *MouseSelect)(IDvdControl *This,POINT point);
  14654       HRESULT (WINAPI *ChapterPlayAutoStop)(IDvdControl *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay);
  14655     END_INTERFACE
  14656   } IDvdControlVtbl;
  14657   struct IDvdControl {
  14658     CONST_VTBL struct IDvdControlVtbl *lpVtbl;
  14659   };
  14660 #ifdef COBJMACROS
  14661 #define IDvdControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14662 #define IDvdControl_AddRef(This) (This)->lpVtbl->AddRef(This)
  14663 #define IDvdControl_Release(This) (This)->lpVtbl->Release(This)
  14664 #define IDvdControl_TitlePlay(This,ulTitle) (This)->lpVtbl->TitlePlay(This,ulTitle)
  14665 #define IDvdControl_ChapterPlay(This,ulTitle,ulChapter) (This)->lpVtbl->ChapterPlay(This,ulTitle,ulChapter)
  14666 #define IDvdControl_TimePlay(This,ulTitle,bcdTime) (This)->lpVtbl->TimePlay(This,ulTitle,bcdTime)
  14667 #define IDvdControl_StopForResume(This) (This)->lpVtbl->StopForResume(This)
  14668 #define IDvdControl_GoUp(This) (This)->lpVtbl->GoUp(This)
  14669 #define IDvdControl_TimeSearch(This,bcdTime) (This)->lpVtbl->TimeSearch(This,bcdTime)
  14670 #define IDvdControl_ChapterSearch(This,ulChapter) (This)->lpVtbl->ChapterSearch(This,ulChapter)
  14671 #define IDvdControl_PrevPGSearch(This) (This)->lpVtbl->PrevPGSearch(This)
  14672 #define IDvdControl_TopPGSearch(This) (This)->lpVtbl->TopPGSearch(This)
  14673 #define IDvdControl_NextPGSearch(This) (This)->lpVtbl->NextPGSearch(This)
  14674 #define IDvdControl_ForwardScan(This,dwSpeed) (This)->lpVtbl->ForwardScan(This,dwSpeed)
  14675 #define IDvdControl_BackwardScan(This,dwSpeed) (This)->lpVtbl->BackwardScan(This,dwSpeed)
  14676 #define IDvdControl_MenuCall(This,MenuID) (This)->lpVtbl->MenuCall(This,MenuID)
  14677 #define IDvdControl_Resume(This) (This)->lpVtbl->Resume(This)
  14678 #define IDvdControl_UpperButtonSelect(This) (This)->lpVtbl->UpperButtonSelect(This)
  14679 #define IDvdControl_LowerButtonSelect(This) (This)->lpVtbl->LowerButtonSelect(This)
  14680 #define IDvdControl_LeftButtonSelect(This) (This)->lpVtbl->LeftButtonSelect(This)
  14681 #define IDvdControl_RightButtonSelect(This) (This)->lpVtbl->RightButtonSelect(This)
  14682 #define IDvdControl_ButtonActivate(This) (This)->lpVtbl->ButtonActivate(This)
  14683 #define IDvdControl_ButtonSelectAndActivate(This,ulButton) (This)->lpVtbl->ButtonSelectAndActivate(This,ulButton)
  14684 #define IDvdControl_StillOff(This) (This)->lpVtbl->StillOff(This)
  14685 #define IDvdControl_PauseOn(This) (This)->lpVtbl->PauseOn(This)
  14686 #define IDvdControl_PauseOff(This) (This)->lpVtbl->PauseOff(This)
  14687 #define IDvdControl_MenuLanguageSelect(This,Language) (This)->lpVtbl->MenuLanguageSelect(This,Language)
  14688 #define IDvdControl_AudioStreamChange(This,ulAudio) (This)->lpVtbl->AudioStreamChange(This,ulAudio)
  14689 #define IDvdControl_SubpictureStreamChange(This,ulSubPicture,bDisplay) (This)->lpVtbl->SubpictureStreamChange(This,ulSubPicture,bDisplay)
  14690 #define IDvdControl_AngleChange(This,ulAngle) (This)->lpVtbl->AngleChange(This,ulAngle)
  14691 #define IDvdControl_ParentalLevelSelect(This,ulParentalLevel) (This)->lpVtbl->ParentalLevelSelect(This,ulParentalLevel)
  14692 #define IDvdControl_ParentalCountrySelect(This,wCountry) (This)->lpVtbl->ParentalCountrySelect(This,wCountry)
  14693 #define IDvdControl_KaraokeAudioPresentationModeChange(This,ulMode) (This)->lpVtbl->KaraokeAudioPresentationModeChange(This,ulMode)
  14694 #define IDvdControl_VideoModePreferrence(This,ulPreferredDisplayMode) (This)->lpVtbl->VideoModePreferrence(This,ulPreferredDisplayMode)
  14695 #define IDvdControl_SetRoot(This,pszPath) (This)->lpVtbl->SetRoot(This,pszPath)
  14696 #define IDvdControl_MouseActivate(This,point) (This)->lpVtbl->MouseActivate(This,point)
  14697 #define IDvdControl_MouseSelect(This,point) (This)->lpVtbl->MouseSelect(This,point)
  14698 #define IDvdControl_ChapterPlayAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay) (This)->lpVtbl->ChapterPlayAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay)
  14699 #endif
  14700 #endif
  14701   HRESULT WINAPI IDvdControl_TitlePlay_Proxy(IDvdControl *This,ULONG ulTitle);
  14702   void __RPC_STUB IDvdControl_TitlePlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14703   HRESULT WINAPI IDvdControl_ChapterPlay_Proxy(IDvdControl *This,ULONG ulTitle,ULONG ulChapter);
  14704   void __RPC_STUB IDvdControl_ChapterPlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14705   HRESULT WINAPI IDvdControl_TimePlay_Proxy(IDvdControl *This,ULONG ulTitle,ULONG bcdTime);
  14706   void __RPC_STUB IDvdControl_TimePlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14707   HRESULT WINAPI IDvdControl_StopForResume_Proxy(IDvdControl *This);
  14708   void __RPC_STUB IDvdControl_StopForResume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14709   HRESULT WINAPI IDvdControl_GoUp_Proxy(IDvdControl *This);
  14710   void __RPC_STUB IDvdControl_GoUp_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14711   HRESULT WINAPI IDvdControl_TimeSearch_Proxy(IDvdControl *This,ULONG bcdTime);
  14712   void __RPC_STUB IDvdControl_TimeSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14713   HRESULT WINAPI IDvdControl_ChapterSearch_Proxy(IDvdControl *This,ULONG ulChapter);
  14714   void __RPC_STUB IDvdControl_ChapterSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14715   HRESULT WINAPI IDvdControl_PrevPGSearch_Proxy(IDvdControl *This);
  14716   void __RPC_STUB IDvdControl_PrevPGSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14717   HRESULT WINAPI IDvdControl_TopPGSearch_Proxy(IDvdControl *This);
  14718   void __RPC_STUB IDvdControl_TopPGSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14719   HRESULT WINAPI IDvdControl_NextPGSearch_Proxy(IDvdControl *This);
  14720   void __RPC_STUB IDvdControl_NextPGSearch_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14721   HRESULT WINAPI IDvdControl_ForwardScan_Proxy(IDvdControl *This,double dwSpeed);
  14722   void __RPC_STUB IDvdControl_ForwardScan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14723   HRESULT WINAPI IDvdControl_BackwardScan_Proxy(IDvdControl *This,double dwSpeed);
  14724   void __RPC_STUB IDvdControl_BackwardScan_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14725   HRESULT WINAPI IDvdControl_MenuCall_Proxy(IDvdControl *This,DVD_MENU_ID MenuID);
  14726   void __RPC_STUB IDvdControl_MenuCall_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14727   HRESULT WINAPI IDvdControl_Resume_Proxy(IDvdControl *This);
  14728   void __RPC_STUB IDvdControl_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14729   HRESULT WINAPI IDvdControl_UpperButtonSelect_Proxy(IDvdControl *This);
  14730   void __RPC_STUB IDvdControl_UpperButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14731   HRESULT WINAPI IDvdControl_LowerButtonSelect_Proxy(IDvdControl *This);
  14732   void __RPC_STUB IDvdControl_LowerButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14733   HRESULT WINAPI IDvdControl_LeftButtonSelect_Proxy(IDvdControl *This);
  14734   void __RPC_STUB IDvdControl_LeftButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14735   HRESULT WINAPI IDvdControl_RightButtonSelect_Proxy(IDvdControl *This);
  14736   void __RPC_STUB IDvdControl_RightButtonSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14737   HRESULT WINAPI IDvdControl_ButtonActivate_Proxy(IDvdControl *This);
  14738   void __RPC_STUB IDvdControl_ButtonActivate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14739   HRESULT WINAPI IDvdControl_ButtonSelectAndActivate_Proxy(IDvdControl *This,ULONG ulButton);
  14740   void __RPC_STUB IDvdControl_ButtonSelectAndActivate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14741   HRESULT WINAPI IDvdControl_StillOff_Proxy(IDvdControl *This);
  14742   void __RPC_STUB IDvdControl_StillOff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14743   HRESULT WINAPI IDvdControl_PauseOn_Proxy(IDvdControl *This);
  14744   void __RPC_STUB IDvdControl_PauseOn_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14745   HRESULT WINAPI IDvdControl_PauseOff_Proxy(IDvdControl *This);
  14746   void __RPC_STUB IDvdControl_PauseOff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14747   HRESULT WINAPI IDvdControl_MenuLanguageSelect_Proxy(IDvdControl *This,LCID Language);
  14748   void __RPC_STUB IDvdControl_MenuLanguageSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14749   HRESULT WINAPI IDvdControl_AudioStreamChange_Proxy(IDvdControl *This,ULONG ulAudio);
  14750   void __RPC_STUB IDvdControl_AudioStreamChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14751   HRESULT WINAPI IDvdControl_SubpictureStreamChange_Proxy(IDvdControl *This,ULONG ulSubPicture,WINBOOL bDisplay);
  14752   void __RPC_STUB IDvdControl_SubpictureStreamChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14753   HRESULT WINAPI IDvdControl_AngleChange_Proxy(IDvdControl *This,ULONG ulAngle);
  14754   void __RPC_STUB IDvdControl_AngleChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14755   HRESULT WINAPI IDvdControl_ParentalLevelSelect_Proxy(IDvdControl *This,ULONG ulParentalLevel);
  14756   void __RPC_STUB IDvdControl_ParentalLevelSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14757   HRESULT WINAPI IDvdControl_ParentalCountrySelect_Proxy(IDvdControl *This,WORD wCountry);
  14758   void __RPC_STUB IDvdControl_ParentalCountrySelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14759   HRESULT WINAPI IDvdControl_KaraokeAudioPresentationModeChange_Proxy(IDvdControl *This,ULONG ulMode);
  14760   void __RPC_STUB IDvdControl_KaraokeAudioPresentationModeChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14761   HRESULT WINAPI IDvdControl_VideoModePreferrence_Proxy(IDvdControl *This,ULONG ulPreferredDisplayMode);
  14762   void __RPC_STUB IDvdControl_VideoModePreferrence_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14763   HRESULT WINAPI IDvdControl_SetRoot_Proxy(IDvdControl *This,LPCWSTR pszPath);
  14764   void __RPC_STUB IDvdControl_SetRoot_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14765   HRESULT WINAPI IDvdControl_MouseActivate_Proxy(IDvdControl *This,POINT point);
  14766   void __RPC_STUB IDvdControl_MouseActivate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14767   HRESULT WINAPI IDvdControl_MouseSelect_Proxy(IDvdControl *This,POINT point);
  14768   void __RPC_STUB IDvdControl_MouseSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14769   HRESULT WINAPI IDvdControl_ChapterPlayAutoStop_Proxy(IDvdControl *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay);
  14770   void __RPC_STUB IDvdControl_ChapterPlayAutoStop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14771 #endif
  14772 
  14773 #ifndef __IDvdInfo_INTERFACE_DEFINED__
  14774 #define __IDvdInfo_INTERFACE_DEFINED__
  14775   EXTERN_C const IID IID_IDvdInfo;
  14776 #if defined(__cplusplus) && !defined(CINTERFACE)
  14777   struct IDvdInfo : public IUnknown {
  14778   public:
  14779     virtual HRESULT WINAPI GetCurrentDomain(DVD_DOMAIN *pDomain) = 0;
  14780     virtual HRESULT WINAPI GetCurrentLocation(DVD_PLAYBACK_LOCATION *pLocation) = 0;
  14781     virtual HRESULT WINAPI GetTotalTitleTime(ULONG *pulTotalTime) = 0;
  14782     virtual HRESULT WINAPI GetCurrentButton(ULONG *pulButtonsAvailable,ULONG *pulCurrentButton) = 0;
  14783     virtual HRESULT WINAPI GetCurrentAngle(ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle) = 0;
  14784     virtual HRESULT WINAPI GetCurrentAudio(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream) = 0;
  14785     virtual HRESULT WINAPI GetCurrentSubpicture(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pIsDisabled) = 0;
  14786     virtual HRESULT WINAPI GetCurrentUOPS(VALID_UOP_SOMTHING_OR_OTHER *pUOP) = 0;
  14787     virtual HRESULT WINAPI GetAllSPRMs(SPRMARRAY *pRegisterArray) = 0;
  14788     virtual HRESULT WINAPI GetAllGPRMs(GPRMARRAY *pRegisterArray) = 0;
  14789     virtual HRESULT WINAPI GetAudioLanguage(ULONG ulStream,LCID *pLanguage) = 0;
  14790     virtual HRESULT WINAPI GetSubpictureLanguage(ULONG ulStream,LCID *pLanguage) = 0;
  14791     virtual HRESULT WINAPI GetTitleAttributes(ULONG ulTitle,DVD_ATR *pATR) = 0;
  14792     virtual HRESULT WINAPI GetVMGAttributes(DVD_ATR *pATR) = 0;
  14793     virtual HRESULT WINAPI GetCurrentVideoAttributes(DVD_VideoATR *pATR) = 0;
  14794     virtual HRESULT WINAPI GetCurrentAudioAttributes(DVD_AudioATR *pATR) = 0;
  14795     virtual HRESULT WINAPI GetCurrentSubpictureAttributes(DVD_SubpictureATR *pATR) = 0;
  14796     virtual HRESULT WINAPI GetCurrentVolumeInfo(ULONG *pulNumOfVol,ULONG *pulThisVolNum,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles) = 0;
  14797     virtual HRESULT WINAPI GetDVDTextInfo(BYTE *pTextManager,ULONG ulBufSize,ULONG *pulActualSize) = 0;
  14798     virtual HRESULT WINAPI GetPlayerParentalLevel(ULONG *pulParentalLevel,ULONG *pulCountryCode) = 0;
  14799     virtual HRESULT WINAPI GetNumberOfChapters(ULONG ulTitle,ULONG *pulNumberOfChapters) = 0;
  14800     virtual HRESULT WINAPI GetTitleParentalLevels(ULONG ulTitle,ULONG *pulParentalLevels) = 0;
  14801     virtual HRESULT WINAPI GetRoot(LPSTR pRoot,ULONG ulBufSize,ULONG *pulActualSize) = 0;
  14802   };
  14803 #else
  14804   typedef struct IDvdInfoVtbl {
  14805     BEGIN_INTERFACE
  14806       HRESULT (WINAPI *QueryInterface)(IDvdInfo *This,REFIID riid,void **ppvObject);
  14807       ULONG (WINAPI *AddRef)(IDvdInfo *This);
  14808       ULONG (WINAPI *Release)(IDvdInfo *This);
  14809       HRESULT (WINAPI *GetCurrentDomain)(IDvdInfo *This,DVD_DOMAIN *pDomain);
  14810       HRESULT (WINAPI *GetCurrentLocation)(IDvdInfo *This,DVD_PLAYBACK_LOCATION *pLocation);
  14811       HRESULT (WINAPI *GetTotalTitleTime)(IDvdInfo *This,ULONG *pulTotalTime);
  14812       HRESULT (WINAPI *GetCurrentButton)(IDvdInfo *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
  14813       HRESULT (WINAPI *GetCurrentAngle)(IDvdInfo *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
  14814       HRESULT (WINAPI *GetCurrentAudio)(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
  14815       HRESULT (WINAPI *GetCurrentSubpicture)(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pIsDisabled);
  14816       HRESULT (WINAPI *GetCurrentUOPS)(IDvdInfo *This,VALID_UOP_SOMTHING_OR_OTHER *pUOP);
  14817       HRESULT (WINAPI *GetAllSPRMs)(IDvdInfo *This,SPRMARRAY *pRegisterArray);
  14818       HRESULT (WINAPI *GetAllGPRMs)(IDvdInfo *This,GPRMARRAY *pRegisterArray);
  14819       HRESULT (WINAPI *GetAudioLanguage)(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
  14820       HRESULT (WINAPI *GetSubpictureLanguage)(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
  14821       HRESULT (WINAPI *GetTitleAttributes)(IDvdInfo *This,ULONG ulTitle,DVD_ATR *pATR);
  14822       HRESULT (WINAPI *GetVMGAttributes)(IDvdInfo *This,DVD_ATR *pATR);
  14823       HRESULT (WINAPI *GetCurrentVideoAttributes)(IDvdInfo *This,DVD_VideoATR *pATR);
  14824       HRESULT (WINAPI *GetCurrentAudioAttributes)(IDvdInfo *This,DVD_AudioATR *pATR);
  14825       HRESULT (WINAPI *GetCurrentSubpictureAttributes)(IDvdInfo *This,DVD_SubpictureATR *pATR);
  14826       HRESULT (WINAPI *GetCurrentVolumeInfo)(IDvdInfo *This,ULONG *pulNumOfVol,ULONG *pulThisVolNum,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
  14827       HRESULT (WINAPI *GetDVDTextInfo)(IDvdInfo *This,BYTE *pTextManager,ULONG ulBufSize,ULONG *pulActualSize);
  14828       HRESULT (WINAPI *GetPlayerParentalLevel)(IDvdInfo *This,ULONG *pulParentalLevel,ULONG *pulCountryCode);
  14829       HRESULT (WINAPI *GetNumberOfChapters)(IDvdInfo *This,ULONG ulTitle,ULONG *pulNumberOfChapters);
  14830       HRESULT (WINAPI *GetTitleParentalLevels)(IDvdInfo *This,ULONG ulTitle,ULONG *pulParentalLevels);
  14831       HRESULT (WINAPI *GetRoot)(IDvdInfo *This,LPSTR pRoot,ULONG ulBufSize,ULONG *pulActualSize);
  14832     END_INTERFACE
  14833   } IDvdInfoVtbl;
  14834   struct IDvdInfo {
  14835     CONST_VTBL struct IDvdInfoVtbl *lpVtbl;
  14836   };
  14837 #ifdef COBJMACROS
  14838 #define IDvdInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14839 #define IDvdInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  14840 #define IDvdInfo_Release(This) (This)->lpVtbl->Release(This)
  14841 #define IDvdInfo_GetCurrentDomain(This,pDomain) (This)->lpVtbl->GetCurrentDomain(This,pDomain)
  14842 #define IDvdInfo_GetCurrentLocation(This,pLocation) (This)->lpVtbl->GetCurrentLocation(This,pLocation)
  14843 #define IDvdInfo_GetTotalTitleTime(This,pulTotalTime) (This)->lpVtbl->GetTotalTitleTime(This,pulTotalTime)
  14844 #define IDvdInfo_GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton) (This)->lpVtbl->GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton)
  14845 #define IDvdInfo_GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle) (This)->lpVtbl->GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle)
  14846 #define IDvdInfo_GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream) (This)->lpVtbl->GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream)
  14847 #define IDvdInfo_GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pIsDisabled) (This)->lpVtbl->GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pIsDisabled)
  14848 #define IDvdInfo_GetCurrentUOPS(This,pUOP) (This)->lpVtbl->GetCurrentUOPS(This,pUOP)
  14849 #define IDvdInfo_GetAllSPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllSPRMs(This,pRegisterArray)
  14850 #define IDvdInfo_GetAllGPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllGPRMs(This,pRegisterArray)
  14851 #define IDvdInfo_GetAudioLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetAudioLanguage(This,ulStream,pLanguage)
  14852 #define IDvdInfo_GetSubpictureLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetSubpictureLanguage(This,ulStream,pLanguage)
  14853 #define IDvdInfo_GetTitleAttributes(This,ulTitle,pATR) (This)->lpVtbl->GetTitleAttributes(This,ulTitle,pATR)
  14854 #define IDvdInfo_GetVMGAttributes(This,pATR) (This)->lpVtbl->GetVMGAttributes(This,pATR)
  14855 #define IDvdInfo_GetCurrentVideoAttributes(This,pATR) (This)->lpVtbl->GetCurrentVideoAttributes(This,pATR)
  14856 #define IDvdInfo_GetCurrentAudioAttributes(This,pATR) (This)->lpVtbl->GetCurrentAudioAttributes(This,pATR)
  14857 #define IDvdInfo_GetCurrentSubpictureAttributes(This,pATR) (This)->lpVtbl->GetCurrentSubpictureAttributes(This,pATR)
  14858 #define IDvdInfo_GetCurrentVolumeInfo(This,pulNumOfVol,pulThisVolNum,pSide,pulNumOfTitles) (This)->lpVtbl->GetCurrentVolumeInfo(This,pulNumOfVol,pulThisVolNum,pSide,pulNumOfTitles)
  14859 #define IDvdInfo_GetDVDTextInfo(This,pTextManager,ulBufSize,pulActualSize) (This)->lpVtbl->GetDVDTextInfo(This,pTextManager,ulBufSize,pulActualSize)
  14860 #define IDvdInfo_GetPlayerParentalLevel(This,pulParentalLevel,pulCountryCode) (This)->lpVtbl->GetPlayerParentalLevel(This,pulParentalLevel,pulCountryCode)
  14861 #define IDvdInfo_GetNumberOfChapters(This,ulTitle,pulNumberOfChapters) (This)->lpVtbl->GetNumberOfChapters(This,ulTitle,pulNumberOfChapters)
  14862 #define IDvdInfo_GetTitleParentalLevels(This,ulTitle,pulParentalLevels) (This)->lpVtbl->GetTitleParentalLevels(This,ulTitle,pulParentalLevels)
  14863 #define IDvdInfo_GetRoot(This,pRoot,ulBufSize,pulActualSize) (This)->lpVtbl->GetRoot(This,pRoot,ulBufSize,pulActualSize)
  14864 #endif
  14865 #endif
  14866   HRESULT WINAPI IDvdInfo_GetCurrentDomain_Proxy(IDvdInfo *This,DVD_DOMAIN *pDomain);
  14867   void __RPC_STUB IDvdInfo_GetCurrentDomain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14868   HRESULT WINAPI IDvdInfo_GetCurrentLocation_Proxy(IDvdInfo *This,DVD_PLAYBACK_LOCATION *pLocation);
  14869   void __RPC_STUB IDvdInfo_GetCurrentLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14870   HRESULT WINAPI IDvdInfo_GetTotalTitleTime_Proxy(IDvdInfo *This,ULONG *pulTotalTime);
  14871   void __RPC_STUB IDvdInfo_GetTotalTitleTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14872   HRESULT WINAPI IDvdInfo_GetCurrentButton_Proxy(IDvdInfo *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
  14873   void __RPC_STUB IDvdInfo_GetCurrentButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14874   HRESULT WINAPI IDvdInfo_GetCurrentAngle_Proxy(IDvdInfo *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
  14875   void __RPC_STUB IDvdInfo_GetCurrentAngle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14876   HRESULT WINAPI IDvdInfo_GetCurrentAudio_Proxy(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
  14877   void __RPC_STUB IDvdInfo_GetCurrentAudio_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14878   HRESULT WINAPI IDvdInfo_GetCurrentSubpicture_Proxy(IDvdInfo *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pIsDisabled);
  14879   void __RPC_STUB IDvdInfo_GetCurrentSubpicture_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14880   HRESULT WINAPI IDvdInfo_GetCurrentUOPS_Proxy(IDvdInfo *This,VALID_UOP_SOMTHING_OR_OTHER *pUOP);
  14881   void __RPC_STUB IDvdInfo_GetCurrentUOPS_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14882   HRESULT WINAPI IDvdInfo_GetAllSPRMs_Proxy(IDvdInfo *This,SPRMARRAY *pRegisterArray);
  14883   void __RPC_STUB IDvdInfo_GetAllSPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14884   HRESULT WINAPI IDvdInfo_GetAllGPRMs_Proxy(IDvdInfo *This,GPRMARRAY *pRegisterArray);
  14885   void __RPC_STUB IDvdInfo_GetAllGPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14886   HRESULT WINAPI IDvdInfo_GetAudioLanguage_Proxy(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
  14887   void __RPC_STUB IDvdInfo_GetAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14888   HRESULT WINAPI IDvdInfo_GetSubpictureLanguage_Proxy(IDvdInfo *This,ULONG ulStream,LCID *pLanguage);
  14889   void __RPC_STUB IDvdInfo_GetSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14890   HRESULT WINAPI IDvdInfo_GetTitleAttributes_Proxy(IDvdInfo *This,ULONG ulTitle,DVD_ATR *pATR);
  14891   void __RPC_STUB IDvdInfo_GetTitleAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14892   HRESULT WINAPI IDvdInfo_GetVMGAttributes_Proxy(IDvdInfo *This,DVD_ATR *pATR);
  14893   void __RPC_STUB IDvdInfo_GetVMGAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14894   HRESULT WINAPI IDvdInfo_GetCurrentVideoAttributes_Proxy(IDvdInfo *This,DVD_VideoATR *pATR);
  14895   void __RPC_STUB IDvdInfo_GetCurrentVideoAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14896   HRESULT WINAPI IDvdInfo_GetCurrentAudioAttributes_Proxy(IDvdInfo *This,DVD_AudioATR *pATR);
  14897   void __RPC_STUB IDvdInfo_GetCurrentAudioAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14898   HRESULT WINAPI IDvdInfo_GetCurrentSubpictureAttributes_Proxy(IDvdInfo *This,DVD_SubpictureATR *pATR);
  14899   void __RPC_STUB IDvdInfo_GetCurrentSubpictureAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14900   HRESULT WINAPI IDvdInfo_GetCurrentVolumeInfo_Proxy(IDvdInfo *This,ULONG *pulNumOfVol,ULONG *pulThisVolNum,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
  14901   void __RPC_STUB IDvdInfo_GetCurrentVolumeInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14902   HRESULT WINAPI IDvdInfo_GetDVDTextInfo_Proxy(IDvdInfo *This,BYTE *pTextManager,ULONG ulBufSize,ULONG *pulActualSize);
  14903   void __RPC_STUB IDvdInfo_GetDVDTextInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14904   HRESULT WINAPI IDvdInfo_GetPlayerParentalLevel_Proxy(IDvdInfo *This,ULONG *pulParentalLevel,ULONG *pulCountryCode);
  14905   void __RPC_STUB IDvdInfo_GetPlayerParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14906   HRESULT WINAPI IDvdInfo_GetNumberOfChapters_Proxy(IDvdInfo *This,ULONG ulTitle,ULONG *pulNumberOfChapters);
  14907   void __RPC_STUB IDvdInfo_GetNumberOfChapters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14908   HRESULT WINAPI IDvdInfo_GetTitleParentalLevels_Proxy(IDvdInfo *This,ULONG ulTitle,ULONG *pulParentalLevels);
  14909   void __RPC_STUB IDvdInfo_GetTitleParentalLevels_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14910   HRESULT WINAPI IDvdInfo_GetRoot_Proxy(IDvdInfo *This,LPSTR pRoot,ULONG ulBufSize,ULONG *pulActualSize);
  14911   void __RPC_STUB IDvdInfo_GetRoot_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14912 #endif
  14913 
  14914 #ifndef __IDvdCmd_INTERFACE_DEFINED__
  14915 #define __IDvdCmd_INTERFACE_DEFINED__
  14916   EXTERN_C const IID IID_IDvdCmd;
  14917 #if defined(__cplusplus) && !defined(CINTERFACE)
  14918   struct IDvdCmd : public IUnknown {
  14919   public:
  14920     virtual HRESULT WINAPI WaitForStart(void) = 0;
  14921     virtual HRESULT WINAPI WaitForEnd(void) = 0;
  14922   };
  14923 #else
  14924   typedef struct IDvdCmdVtbl {
  14925     BEGIN_INTERFACE
  14926       HRESULT (WINAPI *QueryInterface)(IDvdCmd *This,REFIID riid,void **ppvObject);
  14927       ULONG (WINAPI *AddRef)(IDvdCmd *This);
  14928       ULONG (WINAPI *Release)(IDvdCmd *This);
  14929       HRESULT (WINAPI *WaitForStart)(IDvdCmd *This);
  14930       HRESULT (WINAPI *WaitForEnd)(IDvdCmd *This);
  14931     END_INTERFACE
  14932   } IDvdCmdVtbl;
  14933   struct IDvdCmd {
  14934     CONST_VTBL struct IDvdCmdVtbl *lpVtbl;
  14935   };
  14936 #ifdef COBJMACROS
  14937 #define IDvdCmd_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14938 #define IDvdCmd_AddRef(This) (This)->lpVtbl->AddRef(This)
  14939 #define IDvdCmd_Release(This) (This)->lpVtbl->Release(This)
  14940 #define IDvdCmd_WaitForStart(This) (This)->lpVtbl->WaitForStart(This)
  14941 #define IDvdCmd_WaitForEnd(This) (This)->lpVtbl->WaitForEnd(This)
  14942 #endif
  14943 #endif
  14944   HRESULT WINAPI IDvdCmd_WaitForStart_Proxy(IDvdCmd *This);
  14945   void __RPC_STUB IDvdCmd_WaitForStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14946   HRESULT WINAPI IDvdCmd_WaitForEnd_Proxy(IDvdCmd *This);
  14947   void __RPC_STUB IDvdCmd_WaitForEnd_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14948 #endif
  14949 
  14950 #ifndef __IDvdState_INTERFACE_DEFINED__
  14951 #define __IDvdState_INTERFACE_DEFINED__
  14952   EXTERN_C const IID IID_IDvdState;
  14953 #if defined(__cplusplus) && !defined(CINTERFACE)
  14954   struct IDvdState : public IUnknown {
  14955   public:
  14956     virtual HRESULT WINAPI GetDiscID(ULONGLONG *pullUniqueID) = 0;
  14957     virtual HRESULT WINAPI GetParentalLevel(ULONG *pulParentalLevel) = 0;
  14958   };
  14959 #else
  14960   typedef struct IDvdStateVtbl {
  14961     BEGIN_INTERFACE
  14962       HRESULT (WINAPI *QueryInterface)(IDvdState *This,REFIID riid,void **ppvObject);
  14963       ULONG (WINAPI *AddRef)(IDvdState *This);
  14964       ULONG (WINAPI *Release)(IDvdState *This);
  14965       HRESULT (WINAPI *GetDiscID)(IDvdState *This,ULONGLONG *pullUniqueID);
  14966       HRESULT (WINAPI *GetParentalLevel)(IDvdState *This,ULONG *pulParentalLevel);
  14967     END_INTERFACE
  14968   } IDvdStateVtbl;
  14969   struct IDvdState {
  14970     CONST_VTBL struct IDvdStateVtbl *lpVtbl;
  14971   };
  14972 #ifdef COBJMACROS
  14973 #define IDvdState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14974 #define IDvdState_AddRef(This) (This)->lpVtbl->AddRef(This)
  14975 #define IDvdState_Release(This) (This)->lpVtbl->Release(This)
  14976 #define IDvdState_GetDiscID(This,pullUniqueID) (This)->lpVtbl->GetDiscID(This,pullUniqueID)
  14977 #define IDvdState_GetParentalLevel(This,pulParentalLevel) (This)->lpVtbl->GetParentalLevel(This,pulParentalLevel)
  14978 #endif
  14979 #endif
  14980   HRESULT WINAPI IDvdState_GetDiscID_Proxy(IDvdState *This,ULONGLONG *pullUniqueID);
  14981   void __RPC_STUB IDvdState_GetDiscID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14982   HRESULT WINAPI IDvdState_GetParentalLevel_Proxy(IDvdState *This,ULONG *pulParentalLevel);
  14983   void __RPC_STUB IDvdState_GetParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  14984 #endif
  14985 
  14986 #ifndef __IDvdControl2_INTERFACE_DEFINED__
  14987 #define __IDvdControl2_INTERFACE_DEFINED__
  14988   EXTERN_C const IID IID_IDvdControl2;
  14989 #if defined(__cplusplus) && !defined(CINTERFACE)
  14990   struct IDvdControl2 : public IUnknown {
  14991   public:
  14992     virtual HRESULT WINAPI PlayTitle(ULONG ulTitle,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
  14993     virtual HRESULT WINAPI PlayChapterInTitle(ULONG ulTitle,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
  14994     virtual HRESULT WINAPI PlayAtTimeInTitle(ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
  14995     virtual HRESULT WINAPI Stop(void) = 0;
  14996     virtual HRESULT WINAPI ReturnFromSubmenu(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
  14997     virtual HRESULT WINAPI PlayAtTime(DVD_HMSF_TIMECODE *pTime,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
  14998     virtual HRESULT WINAPI PlayChapter(ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
  14999     virtual HRESULT WINAPI PlayPrevChapter(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
  15000     virtual HRESULT WINAPI ReplayChapter(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
  15001     virtual HRESULT WINAPI PlayNextChapter(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
  15002     virtual HRESULT WINAPI PlayForwards(double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
  15003     virtual HRESULT WINAPI PlayBackwards(double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
  15004     virtual HRESULT WINAPI ShowMenu(DVD_MENU_ID MenuID,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
  15005     virtual HRESULT WINAPI Resume(DWORD dwFlags,IDvdCmd **ppCmd) = 0;
  15006     virtual HRESULT WINAPI SelectRelativeButton(DVD_RELATIVE_BUTTON buttonDir) = 0;
  15007     virtual HRESULT WINAPI ActivateButton(void) = 0;
  15008     virtual HRESULT WINAPI SelectButton(ULONG ulButton) = 0;
  15009     virtual HRESULT WINAPI SelectAndActivateButton(ULONG ulButton) = 0;
  15010     virtual HRESULT WINAPI StillOff(void) = 0;
  15011     virtual HRESULT WINAPI Pause(WINBOOL bState) = 0;
  15012     virtual HRESULT WINAPI SelectAudioStream(ULONG ulAudio,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
  15013     virtual HRESULT WINAPI SelectSubpictureStream(ULONG ulSubPicture,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
  15014     virtual HRESULT WINAPI SetSubpictureState(WINBOOL bState,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
  15015     virtual HRESULT WINAPI SelectAngle(ULONG ulAngle,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
  15016     virtual HRESULT WINAPI SelectParentalLevel(ULONG ulParentalLevel) = 0;
  15017     virtual HRESULT WINAPI SelectParentalCountry(BYTE bCountry[2]) = 0;
  15018     virtual HRESULT WINAPI SelectKaraokeAudioPresentationMode(ULONG ulMode) = 0;
  15019     virtual HRESULT WINAPI SelectVideoModePreference(ULONG ulPreferredDisplayMode) = 0;
  15020     virtual HRESULT WINAPI SetDVDDirectory(LPCWSTR pszwPath) = 0;
  15021     virtual HRESULT WINAPI ActivateAtPosition(POINT point) = 0;
  15022     virtual HRESULT WINAPI SelectAtPosition(POINT point) = 0;
  15023     virtual HRESULT WINAPI PlayChaptersAutoStop(ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
  15024     virtual HRESULT WINAPI AcceptParentalLevelChange(WINBOOL bAccept) = 0;
  15025     virtual HRESULT WINAPI SetOption(DVD_OPTION_FLAG flag,WINBOOL fState) = 0;
  15026     virtual HRESULT WINAPI SetState(IDvdState *pState,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
  15027     virtual HRESULT WINAPI PlayPeriodInTitleAutoStop(ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DVD_HMSF_TIMECODE *pEndTime,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
  15028     virtual HRESULT WINAPI SetGPRM(ULONG ulIndex,WORD wValue,DWORD dwFlags,IDvdCmd **ppCmd) = 0;
  15029     virtual HRESULT WINAPI SelectDefaultMenuLanguage(LCID Language) = 0;
  15030     virtual HRESULT WINAPI SelectDefaultAudioLanguage(LCID Language,DVD_AUDIO_LANG_EXT audioExtension) = 0;
  15031     virtual HRESULT WINAPI SelectDefaultSubpictureLanguage(LCID Language,DVD_SUBPICTURE_LANG_EXT subpictureExtension) = 0;
  15032   };
  15033 #else
  15034   typedef struct IDvdControl2Vtbl {
  15035     BEGIN_INTERFACE
  15036       HRESULT (WINAPI *QueryInterface)(IDvdControl2 *This,REFIID riid,void **ppvObject);
  15037       ULONG (WINAPI *AddRef)(IDvdControl2 *This);
  15038       ULONG (WINAPI *Release)(IDvdControl2 *This);
  15039       HRESULT (WINAPI *PlayTitle)(IDvdControl2 *This,ULONG ulTitle,DWORD dwFlags,IDvdCmd **ppCmd);
  15040       HRESULT (WINAPI *PlayChapterInTitle)(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
  15041       HRESULT (WINAPI *PlayAtTimeInTitle)(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DWORD dwFlags,IDvdCmd **ppCmd);
  15042       HRESULT (WINAPI *Stop)(IDvdControl2 *This);
  15043       HRESULT (WINAPI *ReturnFromSubmenu)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
  15044       HRESULT (WINAPI *PlayAtTime)(IDvdControl2 *This,DVD_HMSF_TIMECODE *pTime,DWORD dwFlags,IDvdCmd **ppCmd);
  15045       HRESULT (WINAPI *PlayChapter)(IDvdControl2 *This,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
  15046       HRESULT (WINAPI *PlayPrevChapter)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
  15047       HRESULT (WINAPI *ReplayChapter)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
  15048       HRESULT (WINAPI *PlayNextChapter)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
  15049       HRESULT (WINAPI *PlayForwards)(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
  15050       HRESULT (WINAPI *PlayBackwards)(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
  15051       HRESULT (WINAPI *ShowMenu)(IDvdControl2 *This,DVD_MENU_ID MenuID,DWORD dwFlags,IDvdCmd **ppCmd);
  15052       HRESULT (WINAPI *Resume)(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
  15053       HRESULT (WINAPI *SelectRelativeButton)(IDvdControl2 *This,DVD_RELATIVE_BUTTON buttonDir);
  15054       HRESULT (WINAPI *ActivateButton)(IDvdControl2 *This);
  15055       HRESULT (WINAPI *SelectButton)(IDvdControl2 *This,ULONG ulButton);
  15056       HRESULT (WINAPI *SelectAndActivateButton)(IDvdControl2 *This,ULONG ulButton);
  15057       HRESULT (WINAPI *StillOff)(IDvdControl2 *This);
  15058       HRESULT (WINAPI *Pause)(IDvdControl2 *This,WINBOOL bState);
  15059       HRESULT (WINAPI *SelectAudioStream)(IDvdControl2 *This,ULONG ulAudio,DWORD dwFlags,IDvdCmd **ppCmd);
  15060       HRESULT (WINAPI *SelectSubpictureStream)(IDvdControl2 *This,ULONG ulSubPicture,DWORD dwFlags,IDvdCmd **ppCmd);
  15061       HRESULT (WINAPI *SetSubpictureState)(IDvdControl2 *This,WINBOOL bState,DWORD dwFlags,IDvdCmd **ppCmd);
  15062       HRESULT (WINAPI *SelectAngle)(IDvdControl2 *This,ULONG ulAngle,DWORD dwFlags,IDvdCmd **ppCmd);
  15063       HRESULT (WINAPI *SelectParentalLevel)(IDvdControl2 *This,ULONG ulParentalLevel);
  15064       HRESULT (WINAPI *SelectParentalCountry)(IDvdControl2 *This,BYTE bCountry[2]);
  15065       HRESULT (WINAPI *SelectKaraokeAudioPresentationMode)(IDvdControl2 *This,ULONG ulMode);
  15066       HRESULT (WINAPI *SelectVideoModePreference)(IDvdControl2 *This,ULONG ulPreferredDisplayMode);
  15067       HRESULT (WINAPI *SetDVDDirectory)(IDvdControl2 *This,LPCWSTR pszwPath);
  15068       HRESULT (WINAPI *ActivateAtPosition)(IDvdControl2 *This,POINT point);
  15069       HRESULT (WINAPI *SelectAtPosition)(IDvdControl2 *This,POINT point);
  15070       HRESULT (WINAPI *PlayChaptersAutoStop)(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay,DWORD dwFlags,IDvdCmd **ppCmd);
  15071       HRESULT (WINAPI *AcceptParentalLevelChange)(IDvdControl2 *This,WINBOOL bAccept);
  15072       HRESULT (WINAPI *SetOption)(IDvdControl2 *This,DVD_OPTION_FLAG flag,WINBOOL fState);
  15073       HRESULT (WINAPI *SetState)(IDvdControl2 *This,IDvdState *pState,DWORD dwFlags,IDvdCmd **ppCmd);
  15074       HRESULT (WINAPI *PlayPeriodInTitleAutoStop)(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DVD_HMSF_TIMECODE *pEndTime,DWORD dwFlags,IDvdCmd **ppCmd);
  15075       HRESULT (WINAPI *SetGPRM)(IDvdControl2 *This,ULONG ulIndex,WORD wValue,DWORD dwFlags,IDvdCmd **ppCmd);
  15076       HRESULT (WINAPI *SelectDefaultMenuLanguage)(IDvdControl2 *This,LCID Language);
  15077       HRESULT (WINAPI *SelectDefaultAudioLanguage)(IDvdControl2 *This,LCID Language,DVD_AUDIO_LANG_EXT audioExtension);
  15078       HRESULT (WINAPI *SelectDefaultSubpictureLanguage)(IDvdControl2 *This,LCID Language,DVD_SUBPICTURE_LANG_EXT subpictureExtension);
  15079     END_INTERFACE
  15080   } IDvdControl2Vtbl;
  15081   struct IDvdControl2 {
  15082     CONST_VTBL struct IDvdControl2Vtbl *lpVtbl;
  15083   };
  15084 #ifdef COBJMACROS
  15085 #define IDvdControl2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15086 #define IDvdControl2_AddRef(This) (This)->lpVtbl->AddRef(This)
  15087 #define IDvdControl2_Release(This) (This)->lpVtbl->Release(This)
  15088 #define IDvdControl2_PlayTitle(This,ulTitle,dwFlags,ppCmd) (This)->lpVtbl->PlayTitle(This,ulTitle,dwFlags,ppCmd)
  15089 #define IDvdControl2_PlayChapterInTitle(This,ulTitle,ulChapter,dwFlags,ppCmd) (This)->lpVtbl->PlayChapterInTitle(This,ulTitle,ulChapter,dwFlags,ppCmd)
  15090 #define IDvdControl2_PlayAtTimeInTitle(This,ulTitle,pStartTime,dwFlags,ppCmd) (This)->lpVtbl->PlayAtTimeInTitle(This,ulTitle,pStartTime,dwFlags,ppCmd)
  15091 #define IDvdControl2_Stop(This) (This)->lpVtbl->Stop(This)
  15092 #define IDvdControl2_ReturnFromSubmenu(This,dwFlags,ppCmd) (This)->lpVtbl->ReturnFromSubmenu(This,dwFlags,ppCmd)
  15093 #define IDvdControl2_PlayAtTime(This,pTime,dwFlags,ppCmd) (This)->lpVtbl->PlayAtTime(This,pTime,dwFlags,ppCmd)
  15094 #define IDvdControl2_PlayChapter(This,ulChapter,dwFlags,ppCmd) (This)->lpVtbl->PlayChapter(This,ulChapter,dwFlags,ppCmd)
  15095 #define IDvdControl2_PlayPrevChapter(This,dwFlags,ppCmd) (This)->lpVtbl->PlayPrevChapter(This,dwFlags,ppCmd)
  15096 #define IDvdControl2_ReplayChapter(This,dwFlags,ppCmd) (This)->lpVtbl->ReplayChapter(This,dwFlags,ppCmd)
  15097 #define IDvdControl2_PlayNextChapter(This,dwFlags,ppCmd) (This)->lpVtbl->PlayNextChapter(This,dwFlags,ppCmd)
  15098 #define IDvdControl2_PlayForwards(This,dSpeed,dwFlags,ppCmd) (This)->lpVtbl->PlayForwards(This,dSpeed,dwFlags,ppCmd)
  15099 #define IDvdControl2_PlayBackwards(This,dSpeed,dwFlags,ppCmd) (This)->lpVtbl->PlayBackwards(This,dSpeed,dwFlags,ppCmd)
  15100 #define IDvdControl2_ShowMenu(This,MenuID,dwFlags,ppCmd) (This)->lpVtbl->ShowMenu(This,MenuID,dwFlags,ppCmd)
  15101 #define IDvdControl2_Resume(This,dwFlags,ppCmd) (This)->lpVtbl->Resume(This,dwFlags,ppCmd)
  15102 #define IDvdControl2_SelectRelativeButton(This,buttonDir) (This)->lpVtbl->SelectRelativeButton(This,buttonDir)
  15103 #define IDvdControl2_ActivateButton(This) (This)->lpVtbl->ActivateButton(This)
  15104 #define IDvdControl2_SelectButton(This,ulButton) (This)->lpVtbl->SelectButton(This,ulButton)
  15105 #define IDvdControl2_SelectAndActivateButton(This,ulButton) (This)->lpVtbl->SelectAndActivateButton(This,ulButton)
  15106 #define IDvdControl2_StillOff(This) (This)->lpVtbl->StillOff(This)
  15107 #define IDvdControl2_Pause(This,bState) (This)->lpVtbl->Pause(This,bState)
  15108 #define IDvdControl2_SelectAudioStream(This,ulAudio,dwFlags,ppCmd) (This)->lpVtbl->SelectAudioStream(This,ulAudio,dwFlags,ppCmd)
  15109 #define IDvdControl2_SelectSubpictureStream(This,ulSubPicture,dwFlags,ppCmd) (This)->lpVtbl->SelectSubpictureStream(This,ulSubPicture,dwFlags,ppCmd)
  15110 #define IDvdControl2_SetSubpictureState(This,bState,dwFlags,ppCmd) (This)->lpVtbl->SetSubpictureState(This,bState,dwFlags,ppCmd)
  15111 #define IDvdControl2_SelectAngle(This,ulAngle,dwFlags,ppCmd) (This)->lpVtbl->SelectAngle(This,ulAngle,dwFlags,ppCmd)
  15112 #define IDvdControl2_SelectParentalLevel(This,ulParentalLevel) (This)->lpVtbl->SelectParentalLevel(This,ulParentalLevel)
  15113 #define IDvdControl2_SelectParentalCountry(This,bCountry) (This)->lpVtbl->SelectParentalCountry(This,bCountry)
  15114 #define IDvdControl2_SelectKaraokeAudioPresentationMode(This,ulMode) (This)->lpVtbl->SelectKaraokeAudioPresentationMode(This,ulMode)
  15115 #define IDvdControl2_SelectVideoModePreference(This,ulPreferredDisplayMode) (This)->lpVtbl->SelectVideoModePreference(This,ulPreferredDisplayMode)
  15116 #define IDvdControl2_SetDVDDirectory(This,pszwPath) (This)->lpVtbl->SetDVDDirectory(This,pszwPath)
  15117 #define IDvdControl2_ActivateAtPosition(This,point) (This)->lpVtbl->ActivateAtPosition(This,point)
  15118 #define IDvdControl2_SelectAtPosition(This,point) (This)->lpVtbl->SelectAtPosition(This,point)
  15119 #define IDvdControl2_PlayChaptersAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay,dwFlags,ppCmd) (This)->lpVtbl->PlayChaptersAutoStop(This,ulTitle,ulChapter,ulChaptersToPlay,dwFlags,ppCmd)
  15120 #define IDvdControl2_AcceptParentalLevelChange(This,bAccept) (This)->lpVtbl->AcceptParentalLevelChange(This,bAccept)
  15121 #define IDvdControl2_SetOption(This,flag,fState) (This)->lpVtbl->SetOption(This,flag,fState)
  15122 #define IDvdControl2_SetState(This,pState,dwFlags,ppCmd) (This)->lpVtbl->SetState(This,pState,dwFlags,ppCmd)
  15123 #define IDvdControl2_PlayPeriodInTitleAutoStop(This,ulTitle,pStartTime,pEndTime,dwFlags,ppCmd) (This)->lpVtbl->PlayPeriodInTitleAutoStop(This,ulTitle,pStartTime,pEndTime,dwFlags,ppCmd)
  15124 #define IDvdControl2_SetGPRM(This,ulIndex,wValue,dwFlags,ppCmd) (This)->lpVtbl->SetGPRM(This,ulIndex,wValue,dwFlags,ppCmd)
  15125 #define IDvdControl2_SelectDefaultMenuLanguage(This,Language) (This)->lpVtbl->SelectDefaultMenuLanguage(This,Language)
  15126 #define IDvdControl2_SelectDefaultAudioLanguage(This,Language,audioExtension) (This)->lpVtbl->SelectDefaultAudioLanguage(This,Language,audioExtension)
  15127 #define IDvdControl2_SelectDefaultSubpictureLanguage(This,Language,subpictureExtension) (This)->lpVtbl->SelectDefaultSubpictureLanguage(This,Language,subpictureExtension)
  15128 #endif
  15129 #endif
  15130   HRESULT WINAPI IDvdControl2_PlayTitle_Proxy(IDvdControl2 *This,ULONG ulTitle,DWORD dwFlags,IDvdCmd **ppCmd);
  15131   void __RPC_STUB IDvdControl2_PlayTitle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15132   HRESULT WINAPI IDvdControl2_PlayChapterInTitle_Proxy(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
  15133   void __RPC_STUB IDvdControl2_PlayChapterInTitle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15134   HRESULT WINAPI IDvdControl2_PlayAtTimeInTitle_Proxy(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DWORD dwFlags,IDvdCmd **ppCmd);
  15135   void __RPC_STUB IDvdControl2_PlayAtTimeInTitle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15136   HRESULT WINAPI IDvdControl2_Stop_Proxy(IDvdControl2 *This);
  15137   void __RPC_STUB IDvdControl2_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15138   HRESULT WINAPI IDvdControl2_ReturnFromSubmenu_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
  15139   void __RPC_STUB IDvdControl2_ReturnFromSubmenu_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15140   HRESULT WINAPI IDvdControl2_PlayAtTime_Proxy(IDvdControl2 *This,DVD_HMSF_TIMECODE *pTime,DWORD dwFlags,IDvdCmd **ppCmd);
  15141   void __RPC_STUB IDvdControl2_PlayAtTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15142   HRESULT WINAPI IDvdControl2_PlayChapter_Proxy(IDvdControl2 *This,ULONG ulChapter,DWORD dwFlags,IDvdCmd **ppCmd);
  15143   void __RPC_STUB IDvdControl2_PlayChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15144   HRESULT WINAPI IDvdControl2_PlayPrevChapter_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
  15145   void __RPC_STUB IDvdControl2_PlayPrevChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15146   HRESULT WINAPI IDvdControl2_ReplayChapter_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
  15147   void __RPC_STUB IDvdControl2_ReplayChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15148   HRESULT WINAPI IDvdControl2_PlayNextChapter_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
  15149   void __RPC_STUB IDvdControl2_PlayNextChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15150   HRESULT WINAPI IDvdControl2_PlayForwards_Proxy(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
  15151   void __RPC_STUB IDvdControl2_PlayForwards_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15152   HRESULT WINAPI IDvdControl2_PlayBackwards_Proxy(IDvdControl2 *This,double dSpeed,DWORD dwFlags,IDvdCmd **ppCmd);
  15153   void __RPC_STUB IDvdControl2_PlayBackwards_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15154   HRESULT WINAPI IDvdControl2_ShowMenu_Proxy(IDvdControl2 *This,DVD_MENU_ID MenuID,DWORD dwFlags,IDvdCmd **ppCmd);
  15155   void __RPC_STUB IDvdControl2_ShowMenu_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15156   HRESULT WINAPI IDvdControl2_Resume_Proxy(IDvdControl2 *This,DWORD dwFlags,IDvdCmd **ppCmd);
  15157   void __RPC_STUB IDvdControl2_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15158   HRESULT WINAPI IDvdControl2_SelectRelativeButton_Proxy(IDvdControl2 *This,DVD_RELATIVE_BUTTON buttonDir);
  15159   void __RPC_STUB IDvdControl2_SelectRelativeButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15160   HRESULT WINAPI IDvdControl2_ActivateButton_Proxy(IDvdControl2 *This);
  15161   void __RPC_STUB IDvdControl2_ActivateButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15162   HRESULT WINAPI IDvdControl2_SelectButton_Proxy(IDvdControl2 *This,ULONG ulButton);
  15163   void __RPC_STUB IDvdControl2_SelectButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15164   HRESULT WINAPI IDvdControl2_SelectAndActivateButton_Proxy(IDvdControl2 *This,ULONG ulButton);
  15165   void __RPC_STUB IDvdControl2_SelectAndActivateButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15166   HRESULT WINAPI IDvdControl2_StillOff_Proxy(IDvdControl2 *This);
  15167   void __RPC_STUB IDvdControl2_StillOff_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15168   HRESULT WINAPI IDvdControl2_Pause_Proxy(IDvdControl2 *This,WINBOOL bState);
  15169   void __RPC_STUB IDvdControl2_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15170   HRESULT WINAPI IDvdControl2_SelectAudioStream_Proxy(IDvdControl2 *This,ULONG ulAudio,DWORD dwFlags,IDvdCmd **ppCmd);
  15171   void __RPC_STUB IDvdControl2_SelectAudioStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15172   HRESULT WINAPI IDvdControl2_SelectSubpictureStream_Proxy(IDvdControl2 *This,ULONG ulSubPicture,DWORD dwFlags,IDvdCmd **ppCmd);
  15173   void __RPC_STUB IDvdControl2_SelectSubpictureStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15174   HRESULT WINAPI IDvdControl2_SetSubpictureState_Proxy(IDvdControl2 *This,WINBOOL bState,DWORD dwFlags,IDvdCmd **ppCmd);
  15175   void __RPC_STUB IDvdControl2_SetSubpictureState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15176   HRESULT WINAPI IDvdControl2_SelectAngle_Proxy(IDvdControl2 *This,ULONG ulAngle,DWORD dwFlags,IDvdCmd **ppCmd);
  15177   void __RPC_STUB IDvdControl2_SelectAngle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15178   HRESULT WINAPI IDvdControl2_SelectParentalLevel_Proxy(IDvdControl2 *This,ULONG ulParentalLevel);
  15179   void __RPC_STUB IDvdControl2_SelectParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15180   HRESULT WINAPI IDvdControl2_SelectParentalCountry_Proxy(IDvdControl2 *This,BYTE bCountry[2]);
  15181   void __RPC_STUB IDvdControl2_SelectParentalCountry_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15182   HRESULT WINAPI IDvdControl2_SelectKaraokeAudioPresentationMode_Proxy(IDvdControl2 *This,ULONG ulMode);
  15183   void __RPC_STUB IDvdControl2_SelectKaraokeAudioPresentationMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15184   HRESULT WINAPI IDvdControl2_SelectVideoModePreference_Proxy(IDvdControl2 *This,ULONG ulPreferredDisplayMode);
  15185   void __RPC_STUB IDvdControl2_SelectVideoModePreference_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15186   HRESULT WINAPI IDvdControl2_SetDVDDirectory_Proxy(IDvdControl2 *This,LPCWSTR pszwPath);
  15187   void __RPC_STUB IDvdControl2_SetDVDDirectory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15188   HRESULT WINAPI IDvdControl2_ActivateAtPosition_Proxy(IDvdControl2 *This,POINT point);
  15189   void __RPC_STUB IDvdControl2_ActivateAtPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15190   HRESULT WINAPI IDvdControl2_SelectAtPosition_Proxy(IDvdControl2 *This,POINT point);
  15191   void __RPC_STUB IDvdControl2_SelectAtPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15192   HRESULT WINAPI IDvdControl2_PlayChaptersAutoStop_Proxy(IDvdControl2 *This,ULONG ulTitle,ULONG ulChapter,ULONG ulChaptersToPlay,DWORD dwFlags,IDvdCmd **ppCmd);
  15193   void __RPC_STUB IDvdControl2_PlayChaptersAutoStop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15194   HRESULT WINAPI IDvdControl2_AcceptParentalLevelChange_Proxy(IDvdControl2 *This,WINBOOL bAccept);
  15195   void __RPC_STUB IDvdControl2_AcceptParentalLevelChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15196   HRESULT WINAPI IDvdControl2_SetOption_Proxy(IDvdControl2 *This,DVD_OPTION_FLAG flag,WINBOOL fState);
  15197   void __RPC_STUB IDvdControl2_SetOption_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15198   HRESULT WINAPI IDvdControl2_SetState_Proxy(IDvdControl2 *This,IDvdState *pState,DWORD dwFlags,IDvdCmd **ppCmd);
  15199   void __RPC_STUB IDvdControl2_SetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15200   HRESULT WINAPI IDvdControl2_PlayPeriodInTitleAutoStop_Proxy(IDvdControl2 *This,ULONG ulTitle,DVD_HMSF_TIMECODE *pStartTime,DVD_HMSF_TIMECODE *pEndTime,DWORD dwFlags,IDvdCmd **ppCmd);
  15201   void __RPC_STUB IDvdControl2_PlayPeriodInTitleAutoStop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15202   HRESULT WINAPI IDvdControl2_SetGPRM_Proxy(IDvdControl2 *This,ULONG ulIndex,WORD wValue,DWORD dwFlags,IDvdCmd **ppCmd);
  15203   void __RPC_STUB IDvdControl2_SetGPRM_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15204   HRESULT WINAPI IDvdControl2_SelectDefaultMenuLanguage_Proxy(IDvdControl2 *This,LCID Language);
  15205   void __RPC_STUB IDvdControl2_SelectDefaultMenuLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15206   HRESULT WINAPI IDvdControl2_SelectDefaultAudioLanguage_Proxy(IDvdControl2 *This,LCID Language,DVD_AUDIO_LANG_EXT audioExtension);
  15207   void __RPC_STUB IDvdControl2_SelectDefaultAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15208   HRESULT WINAPI IDvdControl2_SelectDefaultSubpictureLanguage_Proxy(IDvdControl2 *This,LCID Language,DVD_SUBPICTURE_LANG_EXT subpictureExtension);
  15209   void __RPC_STUB IDvdControl2_SelectDefaultSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15210 #endif
  15211 
  15212   enum DVD_TextStringType {
  15213     DVD_Struct_Volume = 0x1,DVD_Struct_Title = 0x2,DVD_Struct_ParentalID = 0x3,DVD_Struct_PartOfTitle = 0x4,DVD_Struct_Cell = 0x5,
  15214     DVD_Stream_Audio = 0x10,DVD_Stream_Subpicture = 0x11,DVD_Stream_Angle = 0x12,DVD_Channel_Audio = 0x20,DVD_General_Name = 0x30,
  15215     DVD_General_Comments = 0x31,DVD_Title_Series = 0x38,DVD_Title_Movie = 0x39,DVD_Title_Video = 0x3a,DVD_Title_Album = 0x3b,DVD_Title_Song = 0x3c,
  15216     DVD_Title_Other = 0x3f,DVD_Title_Sub_Series = 0x40,DVD_Title_Sub_Movie = 0x41,DVD_Title_Sub_Video = 0x42,DVD_Title_Sub_Album = 0x43,
  15217     DVD_Title_Sub_Song = 0x44,DVD_Title_Sub_Other = 0x47,DVD_Title_Orig_Series = 0x48,DVD_Title_Orig_Movie = 0x49,DVD_Title_Orig_Video = 0x4a,
  15218     DVD_Title_Orig_Album = 0x4b,DVD_Title_Orig_Song = 0x4c,DVD_Title_Orig_Other = 0x4f,DVD_Other_Scene = 0x50,DVD_Other_Cut = 0x51,DVD_Other_Take = 0x52
  15219   };
  15220 
  15221   enum DVD_TextCharSet {
  15222     DVD_CharSet_Unicode = 0,DVD_CharSet_ISO646 = 1,DVD_CharSet_JIS_Roman_Kanji = 2,DVD_CharSet_ISO8859_1 = 3,
  15223     DVD_CharSet_ShiftJIS_Kanji_Roman_Katakana = 4
  15224   };
  15225 #define DVD_TITLE_MENU 0x000
  15226 #define DVD_STREAM_DATA_CURRENT 0x800
  15227 #define DVD_STREAM_DATA_VMGM 0x400
  15228 #define DVD_STREAM_DATA_VTSM 0x401
  15229 #define DVD_DEFAULT_AUDIO_STREAM 0x0f
  15230 
  15231   typedef struct tagDVD_DECODER_CAPS {
  15232     DWORD dwSize;
  15233     DWORD dwAudioCaps;
  15234     double dFwdMaxRateVideo;
  15235     double dFwdMaxRateAudio;
  15236     double dFwdMaxRateSP;
  15237     double dBwdMaxRateVideo;
  15238     double dBwdMaxRateAudio;
  15239     double dBwdMaxRateSP;
  15240     DWORD dwRes1;
  15241     DWORD dwRes2;
  15242     DWORD dwRes3;
  15243     DWORD dwRes4;
  15244   } DVD_DECODER_CAPS;
  15245 
  15246 #define DVD_AUDIO_CAPS_AC3 0x00000001
  15247 #define DVD_AUDIO_CAPS_MPEG2 0x00000002
  15248 #define DVD_AUDIO_CAPS_LPCM 0x00000004
  15249 #define DVD_AUDIO_CAPS_DTS 0x00000008
  15250 #define DVD_AUDIO_CAPS_SDDS 0x00000010
  15251 
  15252   extern RPC_IF_HANDLE __MIDL_itf_strmif_0387_v0_0_c_ifspec;
  15253   extern RPC_IF_HANDLE __MIDL_itf_strmif_0387_v0_0_s_ifspec;
  15254 #ifndef __IDvdInfo2_INTERFACE_DEFINED__
  15255 #define __IDvdInfo2_INTERFACE_DEFINED__
  15256   EXTERN_C const IID IID_IDvdInfo2;
  15257 #if defined(__cplusplus) && !defined(CINTERFACE)
  15258   struct IDvdInfo2 : public IUnknown {
  15259   public:
  15260     virtual HRESULT WINAPI GetCurrentDomain(DVD_DOMAIN *pDomain) = 0;
  15261     virtual HRESULT WINAPI GetCurrentLocation(DVD_PLAYBACK_LOCATION2 *pLocation) = 0;
  15262     virtual HRESULT WINAPI GetTotalTitleTime(DVD_HMSF_TIMECODE *pTotalTime,ULONG *ulTimeCodeFlags) = 0;
  15263     virtual HRESULT WINAPI GetCurrentButton(ULONG *pulButtonsAvailable,ULONG *pulCurrentButton) = 0;
  15264     virtual HRESULT WINAPI GetCurrentAngle(ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle) = 0;
  15265     virtual HRESULT WINAPI GetCurrentAudio(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream) = 0;
  15266     virtual HRESULT WINAPI GetCurrentSubpicture(ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pbIsDisabled) = 0;
  15267     virtual HRESULT WINAPI GetCurrentUOPS(ULONG *pulUOPs) = 0;
  15268     virtual HRESULT WINAPI GetAllSPRMs(SPRMARRAY *pRegisterArray) = 0;
  15269     virtual HRESULT WINAPI GetAllGPRMs(GPRMARRAY *pRegisterArray) = 0;
  15270     virtual HRESULT WINAPI GetAudioLanguage(ULONG ulStream,LCID *pLanguage) = 0;
  15271     virtual HRESULT WINAPI GetSubpictureLanguage(ULONG ulStream,LCID *pLanguage) = 0;
  15272     virtual HRESULT WINAPI GetTitleAttributes(ULONG ulTitle,DVD_MenuAttributes *pMenu,DVD_TitleAttributes *pTitle) = 0;
  15273     virtual HRESULT WINAPI GetVMGAttributes(DVD_MenuAttributes *pATR) = 0;
  15274     virtual HRESULT WINAPI GetCurrentVideoAttributes(DVD_VideoAttributes *pATR) = 0;
  15275     virtual HRESULT WINAPI GetAudioAttributes(ULONG ulStream,DVD_AudioAttributes *pATR) = 0;
  15276     virtual HRESULT WINAPI GetKaraokeAttributes(ULONG ulStream,DVD_KaraokeAttributes *pAttributes) = 0;
  15277     virtual HRESULT WINAPI GetSubpictureAttributes(ULONG ulStream,DVD_SubpictureAttributes *pATR) = 0;
  15278     virtual HRESULT WINAPI GetDVDVolumeInfo(ULONG *pulNumOfVolumes,ULONG *pulVolume,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles) = 0;
  15279     virtual HRESULT WINAPI GetDVDTextNumberOfLanguages(ULONG *pulNumOfLangs) = 0;
  15280     virtual HRESULT WINAPI GetDVDTextLanguageInfo(ULONG ulLangIndex,ULONG *pulNumOfStrings,LCID *pLangCode,enum DVD_TextCharSet *pbCharacterSet) = 0;
  15281     virtual HRESULT WINAPI GetDVDTextStringAsNative(ULONG ulLangIndex,ULONG ulStringIndex,BYTE *pbBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType) = 0;
  15282     virtual HRESULT WINAPI GetDVDTextStringAsUnicode(ULONG ulLangIndex,ULONG ulStringIndex,WCHAR *pchwBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType) = 0;
  15283     virtual HRESULT WINAPI GetPlayerParentalLevel(ULONG *pulParentalLevel,BYTE pbCountryCode[2]) = 0;
  15284     virtual HRESULT WINAPI GetNumberOfChapters(ULONG ulTitle,ULONG *pulNumOfChapters) = 0;
  15285     virtual HRESULT WINAPI GetTitleParentalLevels(ULONG ulTitle,ULONG *pulParentalLevels) = 0;
  15286     virtual HRESULT WINAPI GetDVDDirectory(LPWSTR pszwPath,ULONG ulMaxSize,ULONG *pulActualSize) = 0;
  15287     virtual HRESULT WINAPI IsAudioStreamEnabled(ULONG ulStreamNum,WINBOOL *pbEnabled) = 0;
  15288     virtual HRESULT WINAPI GetDiscID(LPCWSTR pszwPath,ULONGLONG *pullDiscID) = 0;
  15289     virtual HRESULT WINAPI GetState(IDvdState **pStateData) = 0;
  15290     virtual HRESULT WINAPI GetMenuLanguages(LCID *pLanguages,ULONG ulMaxLanguages,ULONG *pulActualLanguages) = 0;
  15291     virtual HRESULT WINAPI GetButtonAtPosition(POINT point,ULONG *pulButtonIndex) = 0;
  15292     virtual HRESULT WINAPI GetCmdFromEvent(LONG_PTR lParam1,IDvdCmd **pCmdObj) = 0;
  15293     virtual HRESULT WINAPI GetDefaultMenuLanguage(LCID *pLanguage) = 0;
  15294     virtual HRESULT WINAPI GetDefaultAudioLanguage(LCID *pLanguage,DVD_AUDIO_LANG_EXT *pAudioExtension) = 0;
  15295     virtual HRESULT WINAPI GetDefaultSubpictureLanguage(LCID *pLanguage,DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension) = 0;
  15296     virtual HRESULT WINAPI GetDecoderCaps(DVD_DECODER_CAPS *pCaps) = 0;
  15297     virtual HRESULT WINAPI GetButtonRect(ULONG ulButton,RECT *pRect) = 0;
  15298     virtual HRESULT WINAPI IsSubpictureStreamEnabled(ULONG ulStreamNum,WINBOOL *pbEnabled) = 0;
  15299   };
  15300 #else
  15301   typedef struct IDvdInfo2Vtbl {
  15302     BEGIN_INTERFACE
  15303       HRESULT (WINAPI *QueryInterface)(IDvdInfo2 *This,REFIID riid,void **ppvObject);
  15304       ULONG (WINAPI *AddRef)(IDvdInfo2 *This);
  15305       ULONG (WINAPI *Release)(IDvdInfo2 *This);
  15306       HRESULT (WINAPI *GetCurrentDomain)(IDvdInfo2 *This,DVD_DOMAIN *pDomain);
  15307       HRESULT (WINAPI *GetCurrentLocation)(IDvdInfo2 *This,DVD_PLAYBACK_LOCATION2 *pLocation);
  15308       HRESULT (WINAPI *GetTotalTitleTime)(IDvdInfo2 *This,DVD_HMSF_TIMECODE *pTotalTime,ULONG *ulTimeCodeFlags);
  15309       HRESULT (WINAPI *GetCurrentButton)(IDvdInfo2 *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
  15310       HRESULT (WINAPI *GetCurrentAngle)(IDvdInfo2 *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
  15311       HRESULT (WINAPI *GetCurrentAudio)(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
  15312       HRESULT (WINAPI *GetCurrentSubpicture)(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pbIsDisabled);
  15313       HRESULT (WINAPI *GetCurrentUOPS)(IDvdInfo2 *This,ULONG *pulUOPs);
  15314       HRESULT (WINAPI *GetAllSPRMs)(IDvdInfo2 *This,SPRMARRAY *pRegisterArray);
  15315       HRESULT (WINAPI *GetAllGPRMs)(IDvdInfo2 *This,GPRMARRAY *pRegisterArray);
  15316       HRESULT (WINAPI *GetAudioLanguage)(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
  15317       HRESULT (WINAPI *GetSubpictureLanguage)(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
  15318       HRESULT (WINAPI *GetTitleAttributes)(IDvdInfo2 *This,ULONG ulTitle,DVD_MenuAttributes *pMenu,DVD_TitleAttributes *pTitle);
  15319       HRESULT (WINAPI *GetVMGAttributes)(IDvdInfo2 *This,DVD_MenuAttributes *pATR);
  15320       HRESULT (WINAPI *GetCurrentVideoAttributes)(IDvdInfo2 *This,DVD_VideoAttributes *pATR);
  15321       HRESULT (WINAPI *GetAudioAttributes)(IDvdInfo2 *This,ULONG ulStream,DVD_AudioAttributes *pATR);
  15322       HRESULT (WINAPI *GetKaraokeAttributes)(IDvdInfo2 *This,ULONG ulStream,DVD_KaraokeAttributes *pAttributes);
  15323       HRESULT (WINAPI *GetSubpictureAttributes)(IDvdInfo2 *This,ULONG ulStream,DVD_SubpictureAttributes *pATR);
  15324       HRESULT (WINAPI *GetDVDVolumeInfo)(IDvdInfo2 *This,ULONG *pulNumOfVolumes,ULONG *pulVolume,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
  15325       HRESULT (WINAPI *GetDVDTextNumberOfLanguages)(IDvdInfo2 *This,ULONG *pulNumOfLangs);
  15326       HRESULT (WINAPI *GetDVDTextLanguageInfo)(IDvdInfo2 *This,ULONG ulLangIndex,ULONG *pulNumOfStrings,LCID *pLangCode,enum DVD_TextCharSet *pbCharacterSet);
  15327       HRESULT (WINAPI *GetDVDTextStringAsNative)(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,BYTE *pbBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
  15328       HRESULT (WINAPI *GetDVDTextStringAsUnicode)(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,WCHAR *pchwBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
  15329       HRESULT (WINAPI *GetPlayerParentalLevel)(IDvdInfo2 *This,ULONG *pulParentalLevel,BYTE pbCountryCode[2]);
  15330       HRESULT (WINAPI *GetNumberOfChapters)(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulNumOfChapters);
  15331       HRESULT (WINAPI *GetTitleParentalLevels)(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulParentalLevels);
  15332       HRESULT (WINAPI *GetDVDDirectory)(IDvdInfo2 *This,LPWSTR pszwPath,ULONG ulMaxSize,ULONG *pulActualSize);
  15333       HRESULT (WINAPI *IsAudioStreamEnabled)(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
  15334       HRESULT (WINAPI *GetDiscID)(IDvdInfo2 *This,LPCWSTR pszwPath,ULONGLONG *pullDiscID);
  15335       HRESULT (WINAPI *GetState)(IDvdInfo2 *This,IDvdState **pStateData);
  15336       HRESULT (WINAPI *GetMenuLanguages)(IDvdInfo2 *This,LCID *pLanguages,ULONG ulMaxLanguages,ULONG *pulActualLanguages);
  15337       HRESULT (WINAPI *GetButtonAtPosition)(IDvdInfo2 *This,POINT point,ULONG *pulButtonIndex);
  15338       HRESULT (WINAPI *GetCmdFromEvent)(IDvdInfo2 *This,LONG_PTR lParam1,IDvdCmd **pCmdObj);
  15339       HRESULT (WINAPI *GetDefaultMenuLanguage)(IDvdInfo2 *This,LCID *pLanguage);
  15340       HRESULT (WINAPI *GetDefaultAudioLanguage)(IDvdInfo2 *This,LCID *pLanguage,DVD_AUDIO_LANG_EXT *pAudioExtension);
  15341       HRESULT (WINAPI *GetDefaultSubpictureLanguage)(IDvdInfo2 *This,LCID *pLanguage,DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension);
  15342       HRESULT (WINAPI *GetDecoderCaps)(IDvdInfo2 *This,DVD_DECODER_CAPS *pCaps);
  15343       HRESULT (WINAPI *GetButtonRect)(IDvdInfo2 *This,ULONG ulButton,RECT *pRect);
  15344       HRESULT (WINAPI *IsSubpictureStreamEnabled)(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
  15345     END_INTERFACE
  15346   } IDvdInfo2Vtbl;
  15347   struct IDvdInfo2 {
  15348     CONST_VTBL struct IDvdInfo2Vtbl *lpVtbl;
  15349   };
  15350 #ifdef COBJMACROS
  15351 #define IDvdInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15352 #define IDvdInfo2_AddRef(This) (This)->lpVtbl->AddRef(This)
  15353 #define IDvdInfo2_Release(This) (This)->lpVtbl->Release(This)
  15354 #define IDvdInfo2_GetCurrentDomain(This,pDomain) (This)->lpVtbl->GetCurrentDomain(This,pDomain)
  15355 #define IDvdInfo2_GetCurrentLocation(This,pLocation) (This)->lpVtbl->GetCurrentLocation(This,pLocation)
  15356 #define IDvdInfo2_GetTotalTitleTime(This,pTotalTime,ulTimeCodeFlags) (This)->lpVtbl->GetTotalTitleTime(This,pTotalTime,ulTimeCodeFlags)
  15357 #define IDvdInfo2_GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton) (This)->lpVtbl->GetCurrentButton(This,pulButtonsAvailable,pulCurrentButton)
  15358 #define IDvdInfo2_GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle) (This)->lpVtbl->GetCurrentAngle(This,pulAnglesAvailable,pulCurrentAngle)
  15359 #define IDvdInfo2_GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream) (This)->lpVtbl->GetCurrentAudio(This,pulStreamsAvailable,pulCurrentStream)
  15360 #define IDvdInfo2_GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pbIsDisabled) (This)->lpVtbl->GetCurrentSubpicture(This,pulStreamsAvailable,pulCurrentStream,pbIsDisabled)
  15361 #define IDvdInfo2_GetCurrentUOPS(This,pulUOPs) (This)->lpVtbl->GetCurrentUOPS(This,pulUOPs)
  15362 #define IDvdInfo2_GetAllSPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllSPRMs(This,pRegisterArray)
  15363 #define IDvdInfo2_GetAllGPRMs(This,pRegisterArray) (This)->lpVtbl->GetAllGPRMs(This,pRegisterArray)
  15364 #define IDvdInfo2_GetAudioLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetAudioLanguage(This,ulStream,pLanguage)
  15365 #define IDvdInfo2_GetSubpictureLanguage(This,ulStream,pLanguage) (This)->lpVtbl->GetSubpictureLanguage(This,ulStream,pLanguage)
  15366 #define IDvdInfo2_GetTitleAttributes(This,ulTitle,pMenu,pTitle) (This)->lpVtbl->GetTitleAttributes(This,ulTitle,pMenu,pTitle)
  15367 #define IDvdInfo2_GetVMGAttributes(This,pATR) (This)->lpVtbl->GetVMGAttributes(This,pATR)
  15368 #define IDvdInfo2_GetCurrentVideoAttributes(This,pATR) (This)->lpVtbl->GetCurrentVideoAttributes(This,pATR)
  15369 #define IDvdInfo2_GetAudioAttributes(This,ulStream,pATR) (This)->lpVtbl->GetAudioAttributes(This,ulStream,pATR)
  15370 #define IDvdInfo2_GetKaraokeAttributes(This,ulStream,pAttributes) (This)->lpVtbl->GetKaraokeAttributes(This,ulStream,pAttributes)
  15371 #define IDvdInfo2_GetSubpictureAttributes(This,ulStream,pATR) (This)->lpVtbl->GetSubpictureAttributes(This,ulStream,pATR)
  15372 #define IDvdInfo2_GetDVDVolumeInfo(This,pulNumOfVolumes,pulVolume,pSide,pulNumOfTitles) (This)->lpVtbl->GetDVDVolumeInfo(This,pulNumOfVolumes,pulVolume,pSide,pulNumOfTitles)
  15373 #define IDvdInfo2_GetDVDTextNumberOfLanguages(This,pulNumOfLangs) (This)->lpVtbl->GetDVDTextNumberOfLanguages(This,pulNumOfLangs)
  15374 #define IDvdInfo2_GetDVDTextLanguageInfo(This,ulLangIndex,pulNumOfStrings,pLangCode,pbCharacterSet) (This)->lpVtbl->GetDVDTextLanguageInfo(This,ulLangIndex,pulNumOfStrings,pLangCode,pbCharacterSet)
  15375 #define IDvdInfo2_GetDVDTextStringAsNative(This,ulLangIndex,ulStringIndex,pbBuffer,ulMaxBufferSize,pulActualSize,pType) (This)->lpVtbl->GetDVDTextStringAsNative(This,ulLangIndex,ulStringIndex,pbBuffer,ulMaxBufferSize,pulActualSize,pType)
  15376 #define IDvdInfo2_GetDVDTextStringAsUnicode(This,ulLangIndex,ulStringIndex,pchwBuffer,ulMaxBufferSize,pulActualSize,pType) (This)->lpVtbl->GetDVDTextStringAsUnicode(This,ulLangIndex,ulStringIndex,pchwBuffer,ulMaxBufferSize,pulActualSize,pType)
  15377 #define IDvdInfo2_GetPlayerParentalLevel(This,pulParentalLevel,pbCountryCode) (This)->lpVtbl->GetPlayerParentalLevel(This,pulParentalLevel,pbCountryCode)
  15378 #define IDvdInfo2_GetNumberOfChapters(This,ulTitle,pulNumOfChapters) (This)->lpVtbl->GetNumberOfChapters(This,ulTitle,pulNumOfChapters)
  15379 #define IDvdInfo2_GetTitleParentalLevels(This,ulTitle,pulParentalLevels) (This)->lpVtbl->GetTitleParentalLevels(This,ulTitle,pulParentalLevels)
  15380 #define IDvdInfo2_GetDVDDirectory(This,pszwPath,ulMaxSize,pulActualSize) (This)->lpVtbl->GetDVDDirectory(This,pszwPath,ulMaxSize,pulActualSize)
  15381 #define IDvdInfo2_IsAudioStreamEnabled(This,ulStreamNum,pbEnabled) (This)->lpVtbl->IsAudioStreamEnabled(This,ulStreamNum,pbEnabled)
  15382 #define IDvdInfo2_GetDiscID(This,pszwPath,pullDiscID) (This)->lpVtbl->GetDiscID(This,pszwPath,pullDiscID)
  15383 #define IDvdInfo2_GetState(This,pStateData) (This)->lpVtbl->GetState(This,pStateData)
  15384 #define IDvdInfo2_GetMenuLanguages(This,pLanguages,ulMaxLanguages,pulActualLanguages) (This)->lpVtbl->GetMenuLanguages(This,pLanguages,ulMaxLanguages,pulActualLanguages)
  15385 #define IDvdInfo2_GetButtonAtPosition(This,point,pulButtonIndex) (This)->lpVtbl->GetButtonAtPosition(This,point,pulButtonIndex)
  15386 #define IDvdInfo2_GetCmdFromEvent(This,lParam1,pCmdObj) (This)->lpVtbl->GetCmdFromEvent(This,lParam1,pCmdObj)
  15387 #define IDvdInfo2_GetDefaultMenuLanguage(This,pLanguage) (This)->lpVtbl->GetDefaultMenuLanguage(This,pLanguage)
  15388 #define IDvdInfo2_GetDefaultAudioLanguage(This,pLanguage,pAudioExtension) (This)->lpVtbl->GetDefaultAudioLanguage(This,pLanguage,pAudioExtension)
  15389 #define IDvdInfo2_GetDefaultSubpictureLanguage(This,pLanguage,pSubpictureExtension) (This)->lpVtbl->GetDefaultSubpictureLanguage(This,pLanguage,pSubpictureExtension)
  15390 #define IDvdInfo2_GetDecoderCaps(This,pCaps) (This)->lpVtbl->GetDecoderCaps(This,pCaps)
  15391 #define IDvdInfo2_GetButtonRect(This,ulButton,pRect) (This)->lpVtbl->GetButtonRect(This,ulButton,pRect)
  15392 #define IDvdInfo2_IsSubpictureStreamEnabled(This,ulStreamNum,pbEnabled) (This)->lpVtbl->IsSubpictureStreamEnabled(This,ulStreamNum,pbEnabled)
  15393 #endif
  15394 #endif
  15395   HRESULT WINAPI IDvdInfo2_GetCurrentDomain_Proxy(IDvdInfo2 *This,DVD_DOMAIN *pDomain);
  15396   void __RPC_STUB IDvdInfo2_GetCurrentDomain_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15397   HRESULT WINAPI IDvdInfo2_GetCurrentLocation_Proxy(IDvdInfo2 *This,DVD_PLAYBACK_LOCATION2 *pLocation);
  15398   void __RPC_STUB IDvdInfo2_GetCurrentLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15399   HRESULT WINAPI IDvdInfo2_GetTotalTitleTime_Proxy(IDvdInfo2 *This,DVD_HMSF_TIMECODE *pTotalTime,ULONG *ulTimeCodeFlags);
  15400   void __RPC_STUB IDvdInfo2_GetTotalTitleTime_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15401   HRESULT WINAPI IDvdInfo2_GetCurrentButton_Proxy(IDvdInfo2 *This,ULONG *pulButtonsAvailable,ULONG *pulCurrentButton);
  15402   void __RPC_STUB IDvdInfo2_GetCurrentButton_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15403   HRESULT WINAPI IDvdInfo2_GetCurrentAngle_Proxy(IDvdInfo2 *This,ULONG *pulAnglesAvailable,ULONG *pulCurrentAngle);
  15404   void __RPC_STUB IDvdInfo2_GetCurrentAngle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15405   HRESULT WINAPI IDvdInfo2_GetCurrentAudio_Proxy(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream);
  15406   void __RPC_STUB IDvdInfo2_GetCurrentAudio_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15407   HRESULT WINAPI IDvdInfo2_GetCurrentSubpicture_Proxy(IDvdInfo2 *This,ULONG *pulStreamsAvailable,ULONG *pulCurrentStream,WINBOOL *pbIsDisabled);
  15408   void __RPC_STUB IDvdInfo2_GetCurrentSubpicture_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15409   HRESULT WINAPI IDvdInfo2_GetCurrentUOPS_Proxy(IDvdInfo2 *This,ULONG *pulUOPs);
  15410   void __RPC_STUB IDvdInfo2_GetCurrentUOPS_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15411   HRESULT WINAPI IDvdInfo2_GetAllSPRMs_Proxy(IDvdInfo2 *This,SPRMARRAY *pRegisterArray);
  15412   void __RPC_STUB IDvdInfo2_GetAllSPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15413   HRESULT WINAPI IDvdInfo2_GetAllGPRMs_Proxy(IDvdInfo2 *This,GPRMARRAY *pRegisterArray);
  15414   void __RPC_STUB IDvdInfo2_GetAllGPRMs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15415   HRESULT WINAPI IDvdInfo2_GetAudioLanguage_Proxy(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
  15416   void __RPC_STUB IDvdInfo2_GetAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15417   HRESULT WINAPI IDvdInfo2_GetSubpictureLanguage_Proxy(IDvdInfo2 *This,ULONG ulStream,LCID *pLanguage);
  15418   void __RPC_STUB IDvdInfo2_GetSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15419   HRESULT WINAPI IDvdInfo2_GetTitleAttributes_Proxy(IDvdInfo2 *This,ULONG ulTitle,DVD_MenuAttributes *pMenu,DVD_TitleAttributes *pTitle);
  15420   void __RPC_STUB IDvdInfo2_GetTitleAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15421   HRESULT WINAPI IDvdInfo2_GetVMGAttributes_Proxy(IDvdInfo2 *This,DVD_MenuAttributes *pATR);
  15422   void __RPC_STUB IDvdInfo2_GetVMGAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15423   HRESULT WINAPI IDvdInfo2_GetCurrentVideoAttributes_Proxy(IDvdInfo2 *This,DVD_VideoAttributes *pATR);
  15424   void __RPC_STUB IDvdInfo2_GetCurrentVideoAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15425   HRESULT WINAPI IDvdInfo2_GetAudioAttributes_Proxy(IDvdInfo2 *This,ULONG ulStream,DVD_AudioAttributes *pATR);
  15426   void __RPC_STUB IDvdInfo2_GetAudioAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15427   HRESULT WINAPI IDvdInfo2_GetKaraokeAttributes_Proxy(IDvdInfo2 *This,ULONG ulStream,DVD_KaraokeAttributes *pAttributes);
  15428   void __RPC_STUB IDvdInfo2_GetKaraokeAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15429   HRESULT WINAPI IDvdInfo2_GetSubpictureAttributes_Proxy(IDvdInfo2 *This,ULONG ulStream,DVD_SubpictureAttributes *pATR);
  15430   void __RPC_STUB IDvdInfo2_GetSubpictureAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15431   HRESULT WINAPI IDvdInfo2_GetDVDVolumeInfo_Proxy(IDvdInfo2 *This,ULONG *pulNumOfVolumes,ULONG *pulVolume,DVD_DISC_SIDE *pSide,ULONG *pulNumOfTitles);
  15432   void __RPC_STUB IDvdInfo2_GetDVDVolumeInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15433   HRESULT WINAPI IDvdInfo2_GetDVDTextNumberOfLanguages_Proxy(IDvdInfo2 *This,ULONG *pulNumOfLangs);
  15434   void __RPC_STUB IDvdInfo2_GetDVDTextNumberOfLanguages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15435   HRESULT WINAPI IDvdInfo2_GetDVDTextLanguageInfo_Proxy(IDvdInfo2 *This,ULONG ulLangIndex,ULONG *pulNumOfStrings,LCID *pLangCode,enum DVD_TextCharSet *pbCharacterSet);
  15436   void __RPC_STUB IDvdInfo2_GetDVDTextLanguageInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15437   HRESULT WINAPI IDvdInfo2_GetDVDTextStringAsNative_Proxy(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,BYTE *pbBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
  15438   void __RPC_STUB IDvdInfo2_GetDVDTextStringAsNative_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15439   HRESULT WINAPI IDvdInfo2_GetDVDTextStringAsUnicode_Proxy(IDvdInfo2 *This,ULONG ulLangIndex,ULONG ulStringIndex,WCHAR *pchwBuffer,ULONG ulMaxBufferSize,ULONG *pulActualSize,enum DVD_TextStringType *pType);
  15440   void __RPC_STUB IDvdInfo2_GetDVDTextStringAsUnicode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15441   HRESULT WINAPI IDvdInfo2_GetPlayerParentalLevel_Proxy(IDvdInfo2 *This,ULONG *pulParentalLevel,BYTE pbCountryCode[2]);
  15442   void __RPC_STUB IDvdInfo2_GetPlayerParentalLevel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15443   HRESULT WINAPI IDvdInfo2_GetNumberOfChapters_Proxy(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulNumOfChapters);
  15444   void __RPC_STUB IDvdInfo2_GetNumberOfChapters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15445   HRESULT WINAPI IDvdInfo2_GetTitleParentalLevels_Proxy(IDvdInfo2 *This,ULONG ulTitle,ULONG *pulParentalLevels);
  15446   void __RPC_STUB IDvdInfo2_GetTitleParentalLevels_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15447   HRESULT WINAPI IDvdInfo2_GetDVDDirectory_Proxy(IDvdInfo2 *This,LPWSTR pszwPath,ULONG ulMaxSize,ULONG *pulActualSize);
  15448   void __RPC_STUB IDvdInfo2_GetDVDDirectory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15449   HRESULT WINAPI IDvdInfo2_IsAudioStreamEnabled_Proxy(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
  15450   void __RPC_STUB IDvdInfo2_IsAudioStreamEnabled_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15451   HRESULT WINAPI IDvdInfo2_GetDiscID_Proxy(IDvdInfo2 *This,LPCWSTR pszwPath,ULONGLONG *pullDiscID);
  15452   void __RPC_STUB IDvdInfo2_GetDiscID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15453   HRESULT WINAPI IDvdInfo2_GetState_Proxy(IDvdInfo2 *This,IDvdState **pStateData);
  15454   void __RPC_STUB IDvdInfo2_GetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15455   HRESULT WINAPI IDvdInfo2_GetMenuLanguages_Proxy(IDvdInfo2 *This,LCID *pLanguages,ULONG ulMaxLanguages,ULONG *pulActualLanguages);
  15456   void __RPC_STUB IDvdInfo2_GetMenuLanguages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15457   HRESULT WINAPI IDvdInfo2_GetButtonAtPosition_Proxy(IDvdInfo2 *This,POINT point,ULONG *pulButtonIndex);
  15458   void __RPC_STUB IDvdInfo2_GetButtonAtPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15459   HRESULT WINAPI IDvdInfo2_GetCmdFromEvent_Proxy(IDvdInfo2 *This,LONG_PTR lParam1,IDvdCmd **pCmdObj);
  15460   void __RPC_STUB IDvdInfo2_GetCmdFromEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15461   HRESULT WINAPI IDvdInfo2_GetDefaultMenuLanguage_Proxy(IDvdInfo2 *This,LCID *pLanguage);
  15462   void __RPC_STUB IDvdInfo2_GetDefaultMenuLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15463   HRESULT WINAPI IDvdInfo2_GetDefaultAudioLanguage_Proxy(IDvdInfo2 *This,LCID *pLanguage,DVD_AUDIO_LANG_EXT *pAudioExtension);
  15464   void __RPC_STUB IDvdInfo2_GetDefaultAudioLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15465   HRESULT WINAPI IDvdInfo2_GetDefaultSubpictureLanguage_Proxy(IDvdInfo2 *This,LCID *pLanguage,DVD_SUBPICTURE_LANG_EXT *pSubpictureExtension);
  15466   void __RPC_STUB IDvdInfo2_GetDefaultSubpictureLanguage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15467   HRESULT WINAPI IDvdInfo2_GetDecoderCaps_Proxy(IDvdInfo2 *This,DVD_DECODER_CAPS *pCaps);
  15468   void __RPC_STUB IDvdInfo2_GetDecoderCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15469   HRESULT WINAPI IDvdInfo2_GetButtonRect_Proxy(IDvdInfo2 *This,ULONG ulButton,RECT *pRect);
  15470   void __RPC_STUB IDvdInfo2_GetButtonRect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15471   HRESULT WINAPI IDvdInfo2_IsSubpictureStreamEnabled_Proxy(IDvdInfo2 *This,ULONG ulStreamNum,WINBOOL *pbEnabled);
  15472   void __RPC_STUB IDvdInfo2_IsSubpictureStreamEnabled_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15473 #endif
  15474 
  15475   typedef enum _AM_DVD_GRAPH_FLAGS {
  15476     AM_DVD_HWDEC_PREFER = 0x1,AM_DVD_HWDEC_ONLY = 0x2,AM_DVD_SWDEC_PREFER = 0x4,AM_DVD_SWDEC_ONLY = 0x8,AM_DVD_NOVPE = 0x100,
  15477     AM_DVD_VMR9_ONLY = 0x800
  15478   } AM_DVD_GRAPH_FLAGS;
  15479 
  15480   typedef enum _AM_DVD_STREAM_FLAGS {
  15481     AM_DVD_STREAM_VIDEO = 0x1,AM_DVD_STREAM_AUDIO = 0x2,AM_DVD_STREAM_SUBPIC = 0x4
  15482   } AM_DVD_STREAM_FLAGS;
  15483 
  15484   typedef struct __MIDL___MIDL_itf_strmif_0389_0001 {
  15485     HRESULT hrVPEStatus;
  15486     WINBOOL bDvdVolInvalid;
  15487     WINBOOL bDvdVolUnknown;
  15488     WINBOOL bNoLine21In;
  15489     WINBOOL bNoLine21Out;
  15490     int iNumStreams;
  15491     int iNumStreamsFailed;
  15492     DWORD dwFailedStreamsFlag;
  15493   } AM_DVD_RENDERSTATUS;
  15494 
  15495   extern RPC_IF_HANDLE __MIDL_itf_strmif_0389_v0_0_c_ifspec;
  15496   extern RPC_IF_HANDLE __MIDL_itf_strmif_0389_v0_0_s_ifspec;
  15497 #ifndef __IDvdGraphBuilder_INTERFACE_DEFINED__
  15498 #define __IDvdGraphBuilder_INTERFACE_DEFINED__
  15499   EXTERN_C const IID IID_IDvdGraphBuilder;
  15500 #if defined(__cplusplus) && !defined(CINTERFACE)
  15501   struct IDvdGraphBuilder : public IUnknown {
  15502   public:
  15503     virtual HRESULT WINAPI GetFiltergraph(IGraphBuilder **ppGB) = 0;
  15504     virtual HRESULT WINAPI GetDvdInterface(REFIID riid,void **ppvIF) = 0;
  15505     virtual HRESULT WINAPI RenderDvdVideoVolume(LPCWSTR lpcwszPathName,DWORD dwFlags,AM_DVD_RENDERSTATUS *pStatus) = 0;
  15506   };
  15507 #else
  15508   typedef struct IDvdGraphBuilderVtbl {
  15509     BEGIN_INTERFACE
  15510       HRESULT (WINAPI *QueryInterface)(IDvdGraphBuilder *This,REFIID riid,void **ppvObject);
  15511       ULONG (WINAPI *AddRef)(IDvdGraphBuilder *This);
  15512       ULONG (WINAPI *Release)(IDvdGraphBuilder *This);
  15513       HRESULT (WINAPI *GetFiltergraph)(IDvdGraphBuilder *This,IGraphBuilder **ppGB);
  15514       HRESULT (WINAPI *GetDvdInterface)(IDvdGraphBuilder *This,REFIID riid,void **ppvIF);
  15515       HRESULT (WINAPI *RenderDvdVideoVolume)(IDvdGraphBuilder *This,LPCWSTR lpcwszPathName,DWORD dwFlags,AM_DVD_RENDERSTATUS *pStatus);
  15516     END_INTERFACE
  15517   } IDvdGraphBuilderVtbl;
  15518   struct IDvdGraphBuilder {
  15519     CONST_VTBL struct IDvdGraphBuilderVtbl *lpVtbl;
  15520   };
  15521 #ifdef COBJMACROS
  15522 #define IDvdGraphBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15523 #define IDvdGraphBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
  15524 #define IDvdGraphBuilder_Release(This) (This)->lpVtbl->Release(This)
  15525 #define IDvdGraphBuilder_GetFiltergraph(This,ppGB) (This)->lpVtbl->GetFiltergraph(This,ppGB)
  15526 #define IDvdGraphBuilder_GetDvdInterface(This,riid,ppvIF) (This)->lpVtbl->GetDvdInterface(This,riid,ppvIF)
  15527 #define IDvdGraphBuilder_RenderDvdVideoVolume(This,lpcwszPathName,dwFlags,pStatus) (This)->lpVtbl->RenderDvdVideoVolume(This,lpcwszPathName,dwFlags,pStatus)
  15528 #endif
  15529 #endif
  15530   HRESULT WINAPI IDvdGraphBuilder_GetFiltergraph_Proxy(IDvdGraphBuilder *This,IGraphBuilder **ppGB);
  15531   void __RPC_STUB IDvdGraphBuilder_GetFiltergraph_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15532   HRESULT WINAPI IDvdGraphBuilder_GetDvdInterface_Proxy(IDvdGraphBuilder *This,REFIID riid,void **ppvIF);
  15533   void __RPC_STUB IDvdGraphBuilder_GetDvdInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15534   HRESULT WINAPI IDvdGraphBuilder_RenderDvdVideoVolume_Proxy(IDvdGraphBuilder *This,LPCWSTR lpcwszPathName,DWORD dwFlags,AM_DVD_RENDERSTATUS *pStatus);
  15535   void __RPC_STUB IDvdGraphBuilder_RenderDvdVideoVolume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15536 #endif
  15537 
  15538 #ifndef __IDDrawExclModeVideo_INTERFACE_DEFINED__
  15539 #define __IDDrawExclModeVideo_INTERFACE_DEFINED__
  15540   EXTERN_C const IID IID_IDDrawExclModeVideo;
  15541 #if defined(__cplusplus) && !defined(CINTERFACE)
  15542   struct IDDrawExclModeVideo : public IUnknown {
  15543   public:
  15544     virtual HRESULT WINAPI SetDDrawObject(IDirectDraw *pDDrawObject) = 0;
  15545     virtual HRESULT WINAPI GetDDrawObject(IDirectDraw **ppDDrawObject,WINBOOL *pbUsingExternal) = 0;
  15546     virtual HRESULT WINAPI SetDDrawSurface(IDirectDrawSurface *pDDrawSurface) = 0;
  15547     virtual HRESULT WINAPI GetDDrawSurface(IDirectDrawSurface **ppDDrawSurface,WINBOOL *pbUsingExternal) = 0;
  15548     virtual HRESULT WINAPI SetDrawParameters(const RECT *prcSource,const RECT *prcTarget) = 0;
  15549     virtual HRESULT WINAPI GetNativeVideoProps(DWORD *pdwVideoWidth,DWORD *pdwVideoHeight,DWORD *pdwPictAspectRatioX,DWORD *pdwPictAspectRatioY) = 0;
  15550     virtual HRESULT WINAPI SetCallbackInterface(IDDrawExclModeVideoCallback *pCallback,DWORD dwFlags) = 0;
  15551   };
  15552 #else
  15553   typedef struct IDDrawExclModeVideoVtbl {
  15554     BEGIN_INTERFACE
  15555       HRESULT (WINAPI *QueryInterface)(IDDrawExclModeVideo *This,REFIID riid,void **ppvObject);
  15556       ULONG (WINAPI *AddRef)(IDDrawExclModeVideo *This);
  15557       ULONG (WINAPI *Release)(IDDrawExclModeVideo *This);
  15558       HRESULT (WINAPI *SetDDrawObject)(IDDrawExclModeVideo *This,IDirectDraw *pDDrawObject);
  15559       HRESULT (WINAPI *GetDDrawObject)(IDDrawExclModeVideo *This,IDirectDraw **ppDDrawObject,WINBOOL *pbUsingExternal);
  15560       HRESULT (WINAPI *SetDDrawSurface)(IDDrawExclModeVideo *This,IDirectDrawSurface *pDDrawSurface);
  15561       HRESULT (WINAPI *GetDDrawSurface)(IDDrawExclModeVideo *This,IDirectDrawSurface **ppDDrawSurface,WINBOOL *pbUsingExternal);
  15562       HRESULT (WINAPI *SetDrawParameters)(IDDrawExclModeVideo *This,const RECT *prcSource,const RECT *prcTarget);
  15563       HRESULT (WINAPI *GetNativeVideoProps)(IDDrawExclModeVideo *This,DWORD *pdwVideoWidth,DWORD *pdwVideoHeight,DWORD *pdwPictAspectRatioX,DWORD *pdwPictAspectRatioY);
  15564       HRESULT (WINAPI *SetCallbackInterface)(IDDrawExclModeVideo *This,IDDrawExclModeVideoCallback *pCallback,DWORD dwFlags);
  15565     END_INTERFACE
  15566   } IDDrawExclModeVideoVtbl;
  15567   struct IDDrawExclModeVideo {
  15568     CONST_VTBL struct IDDrawExclModeVideoVtbl *lpVtbl;
  15569   };
  15570 #ifdef COBJMACROS
  15571 #define IDDrawExclModeVideo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15572 #define IDDrawExclModeVideo_AddRef(This) (This)->lpVtbl->AddRef(This)
  15573 #define IDDrawExclModeVideo_Release(This) (This)->lpVtbl->Release(This)
  15574 #define IDDrawExclModeVideo_SetDDrawObject(This,pDDrawObject) (This)->lpVtbl->SetDDrawObject(This,pDDrawObject)
  15575 #define IDDrawExclModeVideo_GetDDrawObject(This,ppDDrawObject,pbUsingExternal) (This)->lpVtbl->GetDDrawObject(This,ppDDrawObject,pbUsingExternal)
  15576 #define IDDrawExclModeVideo_SetDDrawSurface(This,pDDrawSurface) (This)->lpVtbl->SetDDrawSurface(This,pDDrawSurface)
  15577 #define IDDrawExclModeVideo_GetDDrawSurface(This,ppDDrawSurface,pbUsingExternal) (This)->lpVtbl->GetDDrawSurface(This,ppDDrawSurface,pbUsingExternal)
  15578 #define IDDrawExclModeVideo_SetDrawParameters(This,prcSource,prcTarget) (This)->lpVtbl->SetDrawParameters(This,prcSource,prcTarget)
  15579 #define IDDrawExclModeVideo_GetNativeVideoProps(This,pdwVideoWidth,pdwVideoHeight,pdwPictAspectRatioX,pdwPictAspectRatioY) (This)->lpVtbl->GetNativeVideoProps(This,pdwVideoWidth,pdwVideoHeight,pdwPictAspectRatioX,pdwPictAspectRatioY)
  15580 #define IDDrawExclModeVideo_SetCallbackInterface(This,pCallback,dwFlags) (This)->lpVtbl->SetCallbackInterface(This,pCallback,dwFlags)
  15581 #endif
  15582 #endif
  15583   HRESULT WINAPI IDDrawExclModeVideo_SetDDrawObject_Proxy(IDDrawExclModeVideo *This,IDirectDraw *pDDrawObject);
  15584   void __RPC_STUB IDDrawExclModeVideo_SetDDrawObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15585   HRESULT WINAPI IDDrawExclModeVideo_GetDDrawObject_Proxy(IDDrawExclModeVideo *This,IDirectDraw **ppDDrawObject,WINBOOL *pbUsingExternal);
  15586   void __RPC_STUB IDDrawExclModeVideo_GetDDrawObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15587   HRESULT WINAPI IDDrawExclModeVideo_SetDDrawSurface_Proxy(IDDrawExclModeVideo *This,IDirectDrawSurface *pDDrawSurface);
  15588   void __RPC_STUB IDDrawExclModeVideo_SetDDrawSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15589   HRESULT WINAPI IDDrawExclModeVideo_GetDDrawSurface_Proxy(IDDrawExclModeVideo *This,IDirectDrawSurface **ppDDrawSurface,WINBOOL *pbUsingExternal);
  15590   void __RPC_STUB IDDrawExclModeVideo_GetDDrawSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15591   HRESULT WINAPI IDDrawExclModeVideo_SetDrawParameters_Proxy(IDDrawExclModeVideo *This,const RECT *prcSource,const RECT *prcTarget);
  15592   void __RPC_STUB IDDrawExclModeVideo_SetDrawParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15593   HRESULT WINAPI IDDrawExclModeVideo_GetNativeVideoProps_Proxy(IDDrawExclModeVideo *This,DWORD *pdwVideoWidth,DWORD *pdwVideoHeight,DWORD *pdwPictAspectRatioX,DWORD *pdwPictAspectRatioY);
  15594   void __RPC_STUB IDDrawExclModeVideo_GetNativeVideoProps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15595   HRESULT WINAPI IDDrawExclModeVideo_SetCallbackInterface_Proxy(IDDrawExclModeVideo *This,IDDrawExclModeVideoCallback *pCallback,DWORD dwFlags);
  15596   void __RPC_STUB IDDrawExclModeVideo_SetCallbackInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15597 #endif
  15598 
  15599   enum _AM_OVERLAY_NOTIFY_FLAGS {
  15600     AM_OVERLAY_NOTIFY_VISIBLE_CHANGE = 0x1,AM_OVERLAY_NOTIFY_SOURCE_CHANGE = 0x2,AM_OVERLAY_NOTIFY_DEST_CHANGE = 0x4
  15601   };
  15602 
  15603   extern RPC_IF_HANDLE __MIDL_itf_strmif_0391_v0_0_c_ifspec;
  15604   extern RPC_IF_HANDLE __MIDL_itf_strmif_0391_v0_0_s_ifspec;
  15605 #ifndef __IDDrawExclModeVideoCallback_INTERFACE_DEFINED__
  15606 #define __IDDrawExclModeVideoCallback_INTERFACE_DEFINED__
  15607   EXTERN_C const IID IID_IDDrawExclModeVideoCallback;
  15608 #if defined(__cplusplus) && !defined(CINTERFACE)
  15609   struct IDDrawExclModeVideoCallback : public IUnknown {
  15610   public:
  15611     virtual HRESULT WINAPI OnUpdateOverlay(WINBOOL bBefore,DWORD dwFlags,WINBOOL bOldVisible,const RECT *prcOldSrc,const RECT *prcOldDest,WINBOOL bNewVisible,const RECT *prcNewSrc,const RECT *prcNewDest) = 0;
  15612     virtual HRESULT WINAPI OnUpdateColorKey(const COLORKEY *pKey,DWORD dwColor) = 0;
  15613     virtual HRESULT WINAPI OnUpdateSize(DWORD dwWidth,DWORD dwHeight,DWORD dwARWidth,DWORD dwARHeight) = 0;
  15614   };
  15615 #else
  15616   typedef struct IDDrawExclModeVideoCallbackVtbl {
  15617     BEGIN_INTERFACE
  15618       HRESULT (WINAPI *QueryInterface)(IDDrawExclModeVideoCallback *This,REFIID riid,void **ppvObject);
  15619       ULONG (WINAPI *AddRef)(IDDrawExclModeVideoCallback *This);
  15620       ULONG (WINAPI *Release)(IDDrawExclModeVideoCallback *This);
  15621       HRESULT (WINAPI *OnUpdateOverlay)(IDDrawExclModeVideoCallback *This,WINBOOL bBefore,DWORD dwFlags,WINBOOL bOldVisible,const RECT *prcOldSrc,const RECT *prcOldDest,WINBOOL bNewVisible,const RECT *prcNewSrc,const RECT *prcNewDest);
  15622       HRESULT (WINAPI *OnUpdateColorKey)(IDDrawExclModeVideoCallback *This,const COLORKEY *pKey,DWORD dwColor);
  15623       HRESULT (WINAPI *OnUpdateSize)(IDDrawExclModeVideoCallback *This,DWORD dwWidth,DWORD dwHeight,DWORD dwARWidth,DWORD dwARHeight);
  15624     END_INTERFACE
  15625   } IDDrawExclModeVideoCallbackVtbl;
  15626   struct IDDrawExclModeVideoCallback {
  15627     CONST_VTBL struct IDDrawExclModeVideoCallbackVtbl *lpVtbl;
  15628   };
  15629 #ifdef COBJMACROS
  15630 #define IDDrawExclModeVideoCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15631 #define IDDrawExclModeVideoCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
  15632 #define IDDrawExclModeVideoCallback_Release(This) (This)->lpVtbl->Release(This)
  15633 #define IDDrawExclModeVideoCallback_OnUpdateOverlay(This,bBefore,dwFlags,bOldVisible,prcOldSrc,prcOldDest,bNewVisible,prcNewSrc,prcNewDest) (This)->lpVtbl->OnUpdateOverlay(This,bBefore,dwFlags,bOldVisible,prcOldSrc,prcOldDest,bNewVisible,prcNewSrc,prcNewDest)
  15634 #define IDDrawExclModeVideoCallback_OnUpdateColorKey(This,pKey,dwColor) (This)->lpVtbl->OnUpdateColorKey(This,pKey,dwColor)
  15635 #define IDDrawExclModeVideoCallback_OnUpdateSize(This,dwWidth,dwHeight,dwARWidth,dwARHeight) (This)->lpVtbl->OnUpdateSize(This,dwWidth,dwHeight,dwARWidth,dwARHeight)
  15636 #endif
  15637 #endif
  15638   HRESULT WINAPI IDDrawExclModeVideoCallback_OnUpdateOverlay_Proxy(IDDrawExclModeVideoCallback *This,WINBOOL bBefore,DWORD dwFlags,WINBOOL bOldVisible,const RECT *prcOldSrc,const RECT *prcOldDest,WINBOOL bNewVisible,const RECT *prcNewSrc,const RECT *prcNewDest);
  15639   void __RPC_STUB IDDrawExclModeVideoCallback_OnUpdateOverlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15640   HRESULT WINAPI IDDrawExclModeVideoCallback_OnUpdateColorKey_Proxy(IDDrawExclModeVideoCallback *This,const COLORKEY *pKey,DWORD dwColor);
  15641   void __RPC_STUB IDDrawExclModeVideoCallback_OnUpdateColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15642   HRESULT WINAPI IDDrawExclModeVideoCallback_OnUpdateSize_Proxy(IDDrawExclModeVideoCallback *This,DWORD dwWidth,DWORD dwHeight,DWORD dwARWidth,DWORD dwARHeight);
  15643   void __RPC_STUB IDDrawExclModeVideoCallback_OnUpdateSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15644 #endif
  15645 
  15646   typedef enum __MIDL___MIDL_itf_strmif_0397_0002 {
  15647     VMRSample_SyncPoint = 0x1,VMRSample_Preroll = 0x2,VMRSample_Discontinuity = 0x4,VMRSample_TimeValid = 0x8,VMRSample_SrcDstRectsValid = 0x10
  15648   } VMRPresentationFlags;
  15649 
  15650   typedef struct tagVMRPRESENTATIONINFO {
  15651     DWORD dwFlags;
  15652     LPDIRECTDRAWSURFACE7 lpSurf;
  15653     REFERENCE_TIME rtStart;
  15654     REFERENCE_TIME rtEnd;
  15655     SIZE szAspectRatio;
  15656     RECT rcSrc;
  15657     RECT rcDst;
  15658     DWORD dwTypeSpecificFlags;
  15659     DWORD dwInterlaceFlags;
  15660   } VMRPRESENTATIONINFO;
  15661 
  15662   extern RPC_IF_HANDLE __MIDL_itf_strmif_0397_v0_0_c_ifspec;
  15663   extern RPC_IF_HANDLE __MIDL_itf_strmif_0397_v0_0_s_ifspec;
  15664 #ifndef __IVMRImagePresenter_INTERFACE_DEFINED__
  15665 #define __IVMRImagePresenter_INTERFACE_DEFINED__
  15666   EXTERN_C const IID IID_IVMRImagePresenter;
  15667 #if defined(__cplusplus) && !defined(CINTERFACE)
  15668   struct IVMRImagePresenter : public IUnknown {
  15669   public:
  15670     virtual HRESULT WINAPI StartPresenting(DWORD_PTR dwUserID) = 0;
  15671     virtual HRESULT WINAPI StopPresenting(DWORD_PTR dwUserID) = 0;
  15672     virtual HRESULT WINAPI PresentImage(DWORD_PTR dwUserID,VMRPRESENTATIONINFO *lpPresInfo) = 0;
  15673   };
  15674 #else
  15675   typedef struct IVMRImagePresenterVtbl {
  15676     BEGIN_INTERFACE
  15677       HRESULT (WINAPI *QueryInterface)(IVMRImagePresenter *This,REFIID riid,void **ppvObject);
  15678       ULONG (WINAPI *AddRef)(IVMRImagePresenter *This);
  15679       ULONG (WINAPI *Release)(IVMRImagePresenter *This);
  15680       HRESULT (WINAPI *StartPresenting)(IVMRImagePresenter *This,DWORD_PTR dwUserID);
  15681       HRESULT (WINAPI *StopPresenting)(IVMRImagePresenter *This,DWORD_PTR dwUserID);
  15682       HRESULT (WINAPI *PresentImage)(IVMRImagePresenter *This,DWORD_PTR dwUserID,VMRPRESENTATIONINFO *lpPresInfo);
  15683     END_INTERFACE
  15684   } IVMRImagePresenterVtbl;
  15685   struct IVMRImagePresenter {
  15686     CONST_VTBL struct IVMRImagePresenterVtbl *lpVtbl;
  15687   };
  15688 #ifdef COBJMACROS
  15689 #define IVMRImagePresenter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15690 #define IVMRImagePresenter_AddRef(This) (This)->lpVtbl->AddRef(This)
  15691 #define IVMRImagePresenter_Release(This) (This)->lpVtbl->Release(This)
  15692 #define IVMRImagePresenter_StartPresenting(This,dwUserID) (This)->lpVtbl->StartPresenting(This,dwUserID)
  15693 #define IVMRImagePresenter_StopPresenting(This,dwUserID) (This)->lpVtbl->StopPresenting(This,dwUserID)
  15694 #define IVMRImagePresenter_PresentImage(This,dwUserID,lpPresInfo) (This)->lpVtbl->PresentImage(This,dwUserID,lpPresInfo)
  15695 #endif
  15696 #endif
  15697   HRESULT WINAPI IVMRImagePresenter_StartPresenting_Proxy(IVMRImagePresenter *This,DWORD_PTR dwUserID);
  15698   void __RPC_STUB IVMRImagePresenter_StartPresenting_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15699   HRESULT WINAPI IVMRImagePresenter_StopPresenting_Proxy(IVMRImagePresenter *This,DWORD_PTR dwUserID);
  15700   void __RPC_STUB IVMRImagePresenter_StopPresenting_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15701   HRESULT WINAPI IVMRImagePresenter_PresentImage_Proxy(IVMRImagePresenter *This,DWORD_PTR dwUserID,VMRPRESENTATIONINFO *lpPresInfo);
  15702   void __RPC_STUB IVMRImagePresenter_PresentImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15703 #endif
  15704 
  15705   typedef enum __MIDL___MIDL_itf_strmif_0398_0001 {
  15706     AMAP_PIXELFORMAT_VALID = 0x1,AMAP_3D_TARGET = 0x2,AMAP_ALLOW_SYSMEM = 0x4,AMAP_FORCE_SYSMEM = 0x8,AMAP_DIRECTED_FLIP = 0x10,AMAP_DXVA_TARGET = 0x20
  15707   } VMRSurfaceAllocationFlags;
  15708 
  15709   typedef struct tagVMRALLOCATIONINFO {
  15710     DWORD dwFlags;
  15711     LPBITMAPINFOHEADER lpHdr;
  15712     LPDDPIXELFORMAT lpPixFmt;
  15713     SIZE szAspectRatio;
  15714     DWORD dwMinBuffers;
  15715     DWORD dwMaxBuffers;
  15716     DWORD dwInterlaceFlags;
  15717     SIZE szNativeSize;
  15718   } VMRALLOCATIONINFO;
  15719 
  15720   extern RPC_IF_HANDLE __MIDL_itf_strmif_0398_v0_0_c_ifspec;
  15721   extern RPC_IF_HANDLE __MIDL_itf_strmif_0398_v0_0_s_ifspec;
  15722 #ifndef __IVMRSurfaceAllocator_INTERFACE_DEFINED__
  15723 #define __IVMRSurfaceAllocator_INTERFACE_DEFINED__
  15724   EXTERN_C const IID IID_IVMRSurfaceAllocator;
  15725 #if defined(__cplusplus) && !defined(CINTERFACE)
  15726   struct IVMRSurfaceAllocator : public IUnknown {
  15727   public:
  15728     virtual HRESULT WINAPI AllocateSurface(DWORD_PTR dwUserID,VMRALLOCATIONINFO *lpAllocInfo,DWORD *lpdwActualBuffers,LPDIRECTDRAWSURFACE7 *lplpSurface) = 0;
  15729     virtual HRESULT WINAPI FreeSurface(DWORD_PTR dwID) = 0;
  15730     virtual HRESULT WINAPI PrepareSurface(DWORD_PTR dwUserID,LPDIRECTDRAWSURFACE7 lpSurface,DWORD dwSurfaceFlags) = 0;
  15731     virtual HRESULT WINAPI AdviseNotify(IVMRSurfaceAllocatorNotify *lpIVMRSurfAllocNotify) = 0;
  15732   };
  15733 #else
  15734   typedef struct IVMRSurfaceAllocatorVtbl {
  15735     BEGIN_INTERFACE
  15736       HRESULT (WINAPI *QueryInterface)(IVMRSurfaceAllocator *This,REFIID riid,void **ppvObject);
  15737       ULONG (WINAPI *AddRef)(IVMRSurfaceAllocator *This);
  15738       ULONG (WINAPI *Release)(IVMRSurfaceAllocator *This);
  15739       HRESULT (WINAPI *AllocateSurface)(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,VMRALLOCATIONINFO *lpAllocInfo,DWORD *lpdwActualBuffers,LPDIRECTDRAWSURFACE7 *lplpSurface);
  15740       HRESULT (WINAPI *FreeSurface)(IVMRSurfaceAllocator *This,DWORD_PTR dwID);
  15741       HRESULT (WINAPI *PrepareSurface)(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,LPDIRECTDRAWSURFACE7 lpSurface,DWORD dwSurfaceFlags);
  15742       HRESULT (WINAPI *AdviseNotify)(IVMRSurfaceAllocator *This,IVMRSurfaceAllocatorNotify *lpIVMRSurfAllocNotify);
  15743     END_INTERFACE
  15744   } IVMRSurfaceAllocatorVtbl;
  15745   struct IVMRSurfaceAllocator {
  15746     CONST_VTBL struct IVMRSurfaceAllocatorVtbl *lpVtbl;
  15747   };
  15748 #ifdef COBJMACROS
  15749 #define IVMRSurfaceAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15750 #define IVMRSurfaceAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
  15751 #define IVMRSurfaceAllocator_Release(This) (This)->lpVtbl->Release(This)
  15752 #define IVMRSurfaceAllocator_AllocateSurface(This,dwUserID,lpAllocInfo,lpdwActualBuffers,lplpSurface) (This)->lpVtbl->AllocateSurface(This,dwUserID,lpAllocInfo,lpdwActualBuffers,lplpSurface)
  15753 #define IVMRSurfaceAllocator_FreeSurface(This,dwID) (This)->lpVtbl->FreeSurface(This,dwID)
  15754 #define IVMRSurfaceAllocator_PrepareSurface(This,dwUserID,lpSurface,dwSurfaceFlags) (This)->lpVtbl->PrepareSurface(This,dwUserID,lpSurface,dwSurfaceFlags)
  15755 #define IVMRSurfaceAllocator_AdviseNotify(This,lpIVMRSurfAllocNotify) (This)->lpVtbl->AdviseNotify(This,lpIVMRSurfAllocNotify)
  15756 #endif
  15757 #endif
  15758   HRESULT WINAPI IVMRSurfaceAllocator_AllocateSurface_Proxy(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,VMRALLOCATIONINFO *lpAllocInfo,DWORD *lpdwActualBuffers,LPDIRECTDRAWSURFACE7 *lplpSurface);
  15759   void __RPC_STUB IVMRSurfaceAllocator_AllocateSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15760   HRESULT WINAPI IVMRSurfaceAllocator_FreeSurface_Proxy(IVMRSurfaceAllocator *This,DWORD_PTR dwID);
  15761   void __RPC_STUB IVMRSurfaceAllocator_FreeSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15762   HRESULT WINAPI IVMRSurfaceAllocator_PrepareSurface_Proxy(IVMRSurfaceAllocator *This,DWORD_PTR dwUserID,LPDIRECTDRAWSURFACE7 lpSurface,DWORD dwSurfaceFlags);
  15763   void __RPC_STUB IVMRSurfaceAllocator_PrepareSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15764   HRESULT WINAPI IVMRSurfaceAllocator_AdviseNotify_Proxy(IVMRSurfaceAllocator *This,IVMRSurfaceAllocatorNotify *lpIVMRSurfAllocNotify);
  15765   void __RPC_STUB IVMRSurfaceAllocator_AdviseNotify_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15766 #endif
  15767 
  15768 #ifndef __IVMRSurfaceAllocatorNotify_INTERFACE_DEFINED__
  15769 #define __IVMRSurfaceAllocatorNotify_INTERFACE_DEFINED__
  15770   EXTERN_C const IID IID_IVMRSurfaceAllocatorNotify;
  15771 #if defined(__cplusplus) && !defined(CINTERFACE)
  15772   struct IVMRSurfaceAllocatorNotify : public IUnknown {
  15773   public:
  15774     virtual HRESULT WINAPI AdviseSurfaceAllocator(DWORD_PTR dwUserID,IVMRSurfaceAllocator *lpIVRMSurfaceAllocator) = 0;
  15775     virtual HRESULT WINAPI SetDDrawDevice(LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor) = 0;
  15776     virtual HRESULT WINAPI ChangeDDrawDevice(LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor) = 0;
  15777     virtual HRESULT WINAPI RestoreDDrawSurfaces(void) = 0;
  15778     virtual HRESULT WINAPI NotifyEvent(LONG EventCode,LONG_PTR Param1,LONG_PTR Param2) = 0;
  15779     virtual HRESULT WINAPI SetBorderColor(COLORREF clrBorder) = 0;
  15780   };
  15781 #else
  15782   typedef struct IVMRSurfaceAllocatorNotifyVtbl {
  15783     BEGIN_INTERFACE
  15784       HRESULT (WINAPI *QueryInterface)(IVMRSurfaceAllocatorNotify *This,REFIID riid,void **ppvObject);
  15785       ULONG (WINAPI *AddRef)(IVMRSurfaceAllocatorNotify *This);
  15786       ULONG (WINAPI *Release)(IVMRSurfaceAllocatorNotify *This);
  15787       HRESULT (WINAPI *AdviseSurfaceAllocator)(IVMRSurfaceAllocatorNotify *This,DWORD_PTR dwUserID,IVMRSurfaceAllocator *lpIVRMSurfaceAllocator);
  15788       HRESULT (WINAPI *SetDDrawDevice)(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
  15789       HRESULT (WINAPI *ChangeDDrawDevice)(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
  15790       HRESULT (WINAPI *RestoreDDrawSurfaces)(IVMRSurfaceAllocatorNotify *This);
  15791       HRESULT (WINAPI *NotifyEvent)(IVMRSurfaceAllocatorNotify *This,LONG EventCode,LONG_PTR Param1,LONG_PTR Param2);
  15792       HRESULT (WINAPI *SetBorderColor)(IVMRSurfaceAllocatorNotify *This,COLORREF clrBorder);
  15793     END_INTERFACE
  15794   } IVMRSurfaceAllocatorNotifyVtbl;
  15795   struct IVMRSurfaceAllocatorNotify {
  15796     CONST_VTBL struct IVMRSurfaceAllocatorNotifyVtbl *lpVtbl;
  15797   };
  15798 #ifdef COBJMACROS
  15799 #define IVMRSurfaceAllocatorNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15800 #define IVMRSurfaceAllocatorNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
  15801 #define IVMRSurfaceAllocatorNotify_Release(This) (This)->lpVtbl->Release(This)
  15802 #define IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator(This,dwUserID,lpIVRMSurfaceAllocator) (This)->lpVtbl->AdviseSurfaceAllocator(This,dwUserID,lpIVRMSurfaceAllocator)
  15803 #define IVMRSurfaceAllocatorNotify_SetDDrawDevice(This,lpDDrawDevice,hMonitor) (This)->lpVtbl->SetDDrawDevice(This,lpDDrawDevice,hMonitor)
  15804 #define IVMRSurfaceAllocatorNotify_ChangeDDrawDevice(This,lpDDrawDevice,hMonitor) (This)->lpVtbl->ChangeDDrawDevice(This,lpDDrawDevice,hMonitor)
  15805 #define IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces(This) (This)->lpVtbl->RestoreDDrawSurfaces(This)
  15806 #define IVMRSurfaceAllocatorNotify_NotifyEvent(This,EventCode,Param1,Param2) (This)->lpVtbl->NotifyEvent(This,EventCode,Param1,Param2)
  15807 #define IVMRSurfaceAllocatorNotify_SetBorderColor(This,clrBorder) (This)->lpVtbl->SetBorderColor(This,clrBorder)
  15808 #endif
  15809 #endif
  15810   HRESULT WINAPI IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator_Proxy(IVMRSurfaceAllocatorNotify *This,DWORD_PTR dwUserID,IVMRSurfaceAllocator *lpIVRMSurfaceAllocator);
  15811   void __RPC_STUB IVMRSurfaceAllocatorNotify_AdviseSurfaceAllocator_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15812   HRESULT WINAPI IVMRSurfaceAllocatorNotify_SetDDrawDevice_Proxy(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
  15813   void __RPC_STUB IVMRSurfaceAllocatorNotify_SetDDrawDevice_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15814   HRESULT WINAPI IVMRSurfaceAllocatorNotify_ChangeDDrawDevice_Proxy(IVMRSurfaceAllocatorNotify *This,LPDIRECTDRAW7 lpDDrawDevice,HMONITOR hMonitor);
  15815   void __RPC_STUB IVMRSurfaceAllocatorNotify_ChangeDDrawDevice_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15816   HRESULT WINAPI IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces_Proxy(IVMRSurfaceAllocatorNotify *This);
  15817   void __RPC_STUB IVMRSurfaceAllocatorNotify_RestoreDDrawSurfaces_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15818   HRESULT WINAPI IVMRSurfaceAllocatorNotify_NotifyEvent_Proxy(IVMRSurfaceAllocatorNotify *This,LONG EventCode,LONG_PTR Param1,LONG_PTR Param2);
  15819   void __RPC_STUB IVMRSurfaceAllocatorNotify_NotifyEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15820   HRESULT WINAPI IVMRSurfaceAllocatorNotify_SetBorderColor_Proxy(IVMRSurfaceAllocatorNotify *This,COLORREF clrBorder);
  15821   void __RPC_STUB IVMRSurfaceAllocatorNotify_SetBorderColor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15822 #endif
  15823 
  15824   typedef enum __MIDL___MIDL_itf_strmif_0400_0001 {
  15825     VMR_ARMODE_NONE = 0,VMR_ARMODE_LETTER_BOX = VMR_ARMODE_NONE + 1
  15826   } VMR_ASPECT_RATIO_MODE;
  15827 
  15828   extern RPC_IF_HANDLE __MIDL_itf_strmif_0400_v0_0_c_ifspec;
  15829   extern RPC_IF_HANDLE __MIDL_itf_strmif_0400_v0_0_s_ifspec;
  15830 #ifndef __IVMRWindowlessControl_INTERFACE_DEFINED__
  15831 #define __IVMRWindowlessControl_INTERFACE_DEFINED__
  15832   EXTERN_C const IID IID_IVMRWindowlessControl;
  15833 #if defined(__cplusplus) && !defined(CINTERFACE)
  15834   struct IVMRWindowlessControl : public IUnknown {
  15835   public:
  15836     virtual HRESULT WINAPI GetNativeVideoSize(LONG *lpWidth,LONG *lpHeight,LONG *lpARWidth,LONG *lpARHeight) = 0;
  15837     virtual HRESULT WINAPI GetMinIdealVideoSize(LONG *lpWidth,LONG *lpHeight) = 0;
  15838     virtual HRESULT WINAPI GetMaxIdealVideoSize(LONG *lpWidth,LONG *lpHeight) = 0;
  15839     virtual HRESULT WINAPI SetVideoPosition(const LPRECT lpSRCRect,const LPRECT lpDSTRect) = 0;
  15840     virtual HRESULT WINAPI GetVideoPosition(LPRECT lpSRCRect,LPRECT lpDSTRect) = 0;
  15841     virtual HRESULT WINAPI GetAspectRatioMode(DWORD *lpAspectRatioMode) = 0;
  15842     virtual HRESULT WINAPI SetAspectRatioMode(DWORD AspectRatioMode) = 0;
  15843     virtual HRESULT WINAPI SetVideoClippingWindow(HWND hwnd) = 0;
  15844     virtual HRESULT WINAPI RepaintVideo(HWND hwnd,HDC hdc) = 0;
  15845     virtual HRESULT WINAPI DisplayModeChanged(void) = 0;
  15846     virtual HRESULT WINAPI GetCurrentImage(BYTE **lpDib) = 0;
  15847     virtual HRESULT WINAPI SetBorderColor(COLORREF Clr) = 0;
  15848     virtual HRESULT WINAPI GetBorderColor(COLORREF *lpClr) = 0;
  15849     virtual HRESULT WINAPI SetColorKey(COLORREF Clr) = 0;
  15850     virtual HRESULT WINAPI GetColorKey(COLORREF *lpClr) = 0;
  15851   };
  15852 #else
  15853   typedef struct IVMRWindowlessControlVtbl {
  15854     BEGIN_INTERFACE
  15855       HRESULT (WINAPI *QueryInterface)(IVMRWindowlessControl *This,REFIID riid,void **ppvObject);
  15856       ULONG (WINAPI *AddRef)(IVMRWindowlessControl *This);
  15857       ULONG (WINAPI *Release)(IVMRWindowlessControl *This);
  15858       HRESULT (WINAPI *GetNativeVideoSize)(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight,LONG *lpARWidth,LONG *lpARHeight);
  15859       HRESULT (WINAPI *GetMinIdealVideoSize)(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
  15860       HRESULT (WINAPI *GetMaxIdealVideoSize)(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
  15861       HRESULT (WINAPI *SetVideoPosition)(IVMRWindowlessControl *This,const LPRECT lpSRCRect,const LPRECT lpDSTRect);
  15862       HRESULT (WINAPI *GetVideoPosition)(IVMRWindowlessControl *This,LPRECT lpSRCRect,LPRECT lpDSTRect);
  15863       HRESULT (WINAPI *GetAspectRatioMode)(IVMRWindowlessControl *This,DWORD *lpAspectRatioMode);
  15864       HRESULT (WINAPI *SetAspectRatioMode)(IVMRWindowlessControl *This,DWORD AspectRatioMode);
  15865       HRESULT (WINAPI *SetVideoClippingWindow)(IVMRWindowlessControl *This,HWND hwnd);
  15866       HRESULT (WINAPI *RepaintVideo)(IVMRWindowlessControl *This,HWND hwnd,HDC hdc);
  15867       HRESULT (WINAPI *DisplayModeChanged)(IVMRWindowlessControl *This);
  15868       HRESULT (WINAPI *GetCurrentImage)(IVMRWindowlessControl *This,BYTE **lpDib);
  15869       HRESULT (WINAPI *SetBorderColor)(IVMRWindowlessControl *This,COLORREF Clr);
  15870       HRESULT (WINAPI *GetBorderColor)(IVMRWindowlessControl *This,COLORREF *lpClr);
  15871       HRESULT (WINAPI *SetColorKey)(IVMRWindowlessControl *This,COLORREF Clr);
  15872       HRESULT (WINAPI *GetColorKey)(IVMRWindowlessControl *This,COLORREF *lpClr);
  15873     END_INTERFACE
  15874   } IVMRWindowlessControlVtbl;
  15875   struct IVMRWindowlessControl {
  15876     CONST_VTBL struct IVMRWindowlessControlVtbl *lpVtbl;
  15877   };
  15878 #ifdef COBJMACROS
  15879 #define IVMRWindowlessControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15880 #define IVMRWindowlessControl_AddRef(This) (This)->lpVtbl->AddRef(This)
  15881 #define IVMRWindowlessControl_Release(This) (This)->lpVtbl->Release(This)
  15882 #define IVMRWindowlessControl_GetNativeVideoSize(This,lpWidth,lpHeight,lpARWidth,lpARHeight) (This)->lpVtbl->GetNativeVideoSize(This,lpWidth,lpHeight,lpARWidth,lpARHeight)
  15883 #define IVMRWindowlessControl_GetMinIdealVideoSize(This,lpWidth,lpHeight) (This)->lpVtbl->GetMinIdealVideoSize(This,lpWidth,lpHeight)
  15884 #define IVMRWindowlessControl_GetMaxIdealVideoSize(This,lpWidth,lpHeight) (This)->lpVtbl->GetMaxIdealVideoSize(This,lpWidth,lpHeight)
  15885 #define IVMRWindowlessControl_SetVideoPosition(This,lpSRCRect,lpDSTRect) (This)->lpVtbl->SetVideoPosition(This,lpSRCRect,lpDSTRect)
  15886 #define IVMRWindowlessControl_GetVideoPosition(This,lpSRCRect,lpDSTRect) (This)->lpVtbl->GetVideoPosition(This,lpSRCRect,lpDSTRect)
  15887 #define IVMRWindowlessControl_GetAspectRatioMode(This,lpAspectRatioMode) (This)->lpVtbl->GetAspectRatioMode(This,lpAspectRatioMode)
  15888 #define IVMRWindowlessControl_SetAspectRatioMode(This,AspectRatioMode) (This)->lpVtbl->SetAspectRatioMode(This,AspectRatioMode)
  15889 #define IVMRWindowlessControl_SetVideoClippingWindow(This,hwnd) (This)->lpVtbl->SetVideoClippingWindow(This,hwnd)
  15890 #define IVMRWindowlessControl_RepaintVideo(This,hwnd,hdc) (This)->lpVtbl->RepaintVideo(This,hwnd,hdc)
  15891 #define IVMRWindowlessControl_DisplayModeChanged(This) (This)->lpVtbl->DisplayModeChanged(This)
  15892 #define IVMRWindowlessControl_GetCurrentImage(This,lpDib) (This)->lpVtbl->GetCurrentImage(This,lpDib)
  15893 #define IVMRWindowlessControl_SetBorderColor(This,Clr) (This)->lpVtbl->SetBorderColor(This,Clr)
  15894 #define IVMRWindowlessControl_GetBorderColor(This,lpClr) (This)->lpVtbl->GetBorderColor(This,lpClr)
  15895 #define IVMRWindowlessControl_SetColorKey(This,Clr) (This)->lpVtbl->SetColorKey(This,Clr)
  15896 #define IVMRWindowlessControl_GetColorKey(This,lpClr) (This)->lpVtbl->GetColorKey(This,lpClr)
  15897 #endif
  15898 #endif
  15899   HRESULT WINAPI IVMRWindowlessControl_GetNativeVideoSize_Proxy(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight,LONG *lpARWidth,LONG *lpARHeight);
  15900   void __RPC_STUB IVMRWindowlessControl_GetNativeVideoSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15901   HRESULT WINAPI IVMRWindowlessControl_GetMinIdealVideoSize_Proxy(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
  15902   void __RPC_STUB IVMRWindowlessControl_GetMinIdealVideoSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15903   HRESULT WINAPI IVMRWindowlessControl_GetMaxIdealVideoSize_Proxy(IVMRWindowlessControl *This,LONG *lpWidth,LONG *lpHeight);
  15904   void __RPC_STUB IVMRWindowlessControl_GetMaxIdealVideoSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15905   HRESULT WINAPI IVMRWindowlessControl_SetVideoPosition_Proxy(IVMRWindowlessControl *This,const LPRECT lpSRCRect,const LPRECT lpDSTRect);
  15906   void __RPC_STUB IVMRWindowlessControl_SetVideoPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15907   HRESULT WINAPI IVMRWindowlessControl_GetVideoPosition_Proxy(IVMRWindowlessControl *This,LPRECT lpSRCRect,LPRECT lpDSTRect);
  15908   void __RPC_STUB IVMRWindowlessControl_GetVideoPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15909   HRESULT WINAPI IVMRWindowlessControl_GetAspectRatioMode_Proxy(IVMRWindowlessControl *This,DWORD *lpAspectRatioMode);
  15910   void __RPC_STUB IVMRWindowlessControl_GetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15911   HRESULT WINAPI IVMRWindowlessControl_SetAspectRatioMode_Proxy(IVMRWindowlessControl *This,DWORD AspectRatioMode);
  15912   void __RPC_STUB IVMRWindowlessControl_SetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15913   HRESULT WINAPI IVMRWindowlessControl_SetVideoClippingWindow_Proxy(IVMRWindowlessControl *This,HWND hwnd);
  15914   void __RPC_STUB IVMRWindowlessControl_SetVideoClippingWindow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15915   HRESULT WINAPI IVMRWindowlessControl_RepaintVideo_Proxy(IVMRWindowlessControl *This,HWND hwnd,HDC hdc);
  15916   void __RPC_STUB IVMRWindowlessControl_RepaintVideo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15917   HRESULT WINAPI IVMRWindowlessControl_DisplayModeChanged_Proxy(IVMRWindowlessControl *This);
  15918   void __RPC_STUB IVMRWindowlessControl_DisplayModeChanged_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15919   HRESULT WINAPI IVMRWindowlessControl_GetCurrentImage_Proxy(IVMRWindowlessControl *This,BYTE **lpDib);
  15920   void __RPC_STUB IVMRWindowlessControl_GetCurrentImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15921   HRESULT WINAPI IVMRWindowlessControl_SetBorderColor_Proxy(IVMRWindowlessControl *This,COLORREF Clr);
  15922   void __RPC_STUB IVMRWindowlessControl_SetBorderColor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15923   HRESULT WINAPI IVMRWindowlessControl_GetBorderColor_Proxy(IVMRWindowlessControl *This,COLORREF *lpClr);
  15924   void __RPC_STUB IVMRWindowlessControl_GetBorderColor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15925   HRESULT WINAPI IVMRWindowlessControl_SetColorKey_Proxy(IVMRWindowlessControl *This,COLORREF Clr);
  15926   void __RPC_STUB IVMRWindowlessControl_SetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15927   HRESULT WINAPI IVMRWindowlessControl_GetColorKey_Proxy(IVMRWindowlessControl *This,COLORREF *lpClr);
  15928   void __RPC_STUB IVMRWindowlessControl_GetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  15929 #endif
  15930 
  15931   typedef enum __MIDL___MIDL_itf_strmif_0401_0001 {
  15932     MixerPref_NoDecimation = 0x1,MixerPref_DecimateOutput = 0x2,MixerPref_ARAdjustXorY = 0x4,MixerPref_DecimationReserved = 0x8,
  15933     MixerPref_DecimateMask = 0xf,MixerPref_BiLinearFiltering = 0x10,MixerPref_PointFiltering = 0x20,MixerPref_FilteringMask = 0xf0,
  15934     MixerPref_RenderTargetRGB = 0x100,MixerPref_RenderTargetYUV = 0x1000,MixerPref_RenderTargetYUV420 = 0x200,MixerPref_RenderTargetYUV422 = 0x400,
  15935     MixerPref_RenderTargetYUV444 = 0x800,MixerPref_RenderTargetReserved = 0xe000,MixerPref_RenderTargetMask = 0xff00,
  15936     MixerPref_DynamicSwitchToBOB = 0x10000,MixerPref_DynamicDecimateBy2 = 0x20000,MixerPref_DynamicReserved = 0xc0000,
  15937     MixerPref_DynamicMask = 0xf0000
  15938   } VMRMixerPrefs;
  15939 
  15940   typedef struct _NORMALIZEDRECT {
  15941     float left;
  15942     float top;
  15943     float right;
  15944     float bottom;
  15945   } NORMALIZEDRECT;
  15946 
  15947   typedef struct _NORMALIZEDRECT *PNORMALIZEDRECT;
  15948 
  15949   extern RPC_IF_HANDLE __MIDL_itf_strmif_0401_v0_0_c_ifspec;
  15950   extern RPC_IF_HANDLE __MIDL_itf_strmif_0401_v0_0_s_ifspec;
  15951 #ifndef __IVMRMixerControl_INTERFACE_DEFINED__
  15952 #define __IVMRMixerControl_INTERFACE_DEFINED__
  15953   EXTERN_C const IID IID_IVMRMixerControl;
  15954 #if defined(__cplusplus) && !defined(CINTERFACE)
  15955   struct IVMRMixerControl : public IUnknown {
  15956   public:
  15957     virtual HRESULT WINAPI SetAlpha(DWORD dwStreamID,float Alpha) = 0;
  15958     virtual HRESULT WINAPI GetAlpha(DWORD dwStreamID,float *pAlpha) = 0;
  15959     virtual HRESULT WINAPI SetZOrder(DWORD dwStreamID,DWORD dwZ) = 0;
  15960     virtual HRESULT WINAPI GetZOrder(DWORD dwStreamID,DWORD *pZ) = 0;
  15961     virtual HRESULT WINAPI SetOutputRect(DWORD dwStreamID,const NORMALIZEDRECT *pRect) = 0;
  15962     virtual HRESULT WINAPI GetOutputRect(DWORD dwStreamID,NORMALIZEDRECT *pRect) = 0;
  15963     virtual HRESULT WINAPI SetBackgroundClr(COLORREF ClrBkg) = 0;
  15964     virtual HRESULT WINAPI GetBackgroundClr(COLORREF *lpClrBkg) = 0;
  15965     virtual HRESULT WINAPI SetMixingPrefs(DWORD dwMixerPrefs) = 0;
  15966     virtual HRESULT WINAPI GetMixingPrefs(DWORD *pdwMixerPrefs) = 0;
  15967   };
  15968 #else
  15969   typedef struct IVMRMixerControlVtbl {
  15970     BEGIN_INTERFACE
  15971       HRESULT (WINAPI *QueryInterface)(IVMRMixerControl *This,REFIID riid,void **ppvObject);
  15972       ULONG (WINAPI *AddRef)(IVMRMixerControl *This);
  15973       ULONG (WINAPI *Release)(IVMRMixerControl *This);
  15974       HRESULT (WINAPI *SetAlpha)(IVMRMixerControl *This,DWORD dwStreamID,float Alpha);
  15975       HRESULT (WINAPI *GetAlpha)(IVMRMixerControl *This,DWORD dwStreamID,float *pAlpha);
  15976       HRESULT (WINAPI *SetZOrder)(IVMRMixerControl *This,DWORD dwStreamID,DWORD dwZ);
  15977       HRESULT (WINAPI *GetZOrder)(IVMRMixerControl *This,DWORD dwStreamID,DWORD *pZ);
  15978       HRESULT (WINAPI *SetOutputRect)(IVMRMixerControl *This,DWORD dwStreamID,const NORMALIZEDRECT *pRect);
  15979       HRESULT (WINAPI *GetOutputRect)(IVMRMixerControl *This,DWORD dwStreamID,NORMALIZEDRECT *pRect);
  15980       HRESULT (WINAPI *SetBackgroundClr)(IVMRMixerControl *This,COLORREF ClrBkg);
  15981       HRESULT (WINAPI *GetBackgroundClr)(IVMRMixerControl *This,COLORREF *lpClrBkg);
  15982       HRESULT (WINAPI *SetMixingPrefs)(IVMRMixerControl *This,DWORD dwMixerPrefs);
  15983       HRESULT (WINAPI *GetMixingPrefs)(IVMRMixerControl *This,DWORD *pdwMixerPrefs);
  15984     END_INTERFACE
  15985   } IVMRMixerControlVtbl;
  15986   struct IVMRMixerControl {
  15987     CONST_VTBL struct IVMRMixerControlVtbl *lpVtbl;
  15988   };
  15989 #ifdef COBJMACROS
  15990 #define IVMRMixerControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15991 #define IVMRMixerControl_AddRef(This) (This)->lpVtbl->AddRef(This)
  15992 #define IVMRMixerControl_Release(This) (This)->lpVtbl->Release(This)
  15993 #define IVMRMixerControl_SetAlpha(This,dwStreamID,Alpha) (This)->lpVtbl->SetAlpha(This,dwStreamID,Alpha)
  15994 #define IVMRMixerControl_GetAlpha(This,dwStreamID,pAlpha) (This)->lpVtbl->GetAlpha(This,dwStreamID,pAlpha)
  15995 #define IVMRMixerControl_SetZOrder(This,dwStreamID,dwZ) (This)->lpVtbl->SetZOrder(This,dwStreamID,dwZ)
  15996 #define IVMRMixerControl_GetZOrder(This,dwStreamID,pZ) (This)->lpVtbl->GetZOrder(This,dwStreamID,pZ)
  15997 #define IVMRMixerControl_SetOutputRect(This,dwStreamID,pRect) (This)->lpVtbl->SetOutputRect(This,dwStreamID,pRect)
  15998 #define IVMRMixerControl_GetOutputRect(This,dwStreamID,pRect) (This)->lpVtbl->GetOutputRect(This,dwStreamID,pRect)
  15999 #define IVMRMixerControl_SetBackgroundClr(This,ClrBkg) (This)->lpVtbl->SetBackgroundClr(This,ClrBkg)
  16000 #define IVMRMixerControl_GetBackgroundClr(This,lpClrBkg) (This)->lpVtbl->GetBackgroundClr(This,lpClrBkg)
  16001 #define IVMRMixerControl_SetMixingPrefs(This,dwMixerPrefs) (This)->lpVtbl->SetMixingPrefs(This,dwMixerPrefs)
  16002 #define IVMRMixerControl_GetMixingPrefs(This,pdwMixerPrefs) (This)->lpVtbl->GetMixingPrefs(This,pdwMixerPrefs)
  16003 #endif
  16004 #endif
  16005   HRESULT WINAPI IVMRMixerControl_SetAlpha_Proxy(IVMRMixerControl *This,DWORD dwStreamID,float Alpha);
  16006   void __RPC_STUB IVMRMixerControl_SetAlpha_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16007   HRESULT WINAPI IVMRMixerControl_GetAlpha_Proxy(IVMRMixerControl *This,DWORD dwStreamID,float *pAlpha);
  16008   void __RPC_STUB IVMRMixerControl_GetAlpha_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16009   HRESULT WINAPI IVMRMixerControl_SetZOrder_Proxy(IVMRMixerControl *This,DWORD dwStreamID,DWORD dwZ);
  16010   void __RPC_STUB IVMRMixerControl_SetZOrder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16011   HRESULT WINAPI IVMRMixerControl_GetZOrder_Proxy(IVMRMixerControl *This,DWORD dwStreamID,DWORD *pZ);
  16012   void __RPC_STUB IVMRMixerControl_GetZOrder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16013   HRESULT WINAPI IVMRMixerControl_SetOutputRect_Proxy(IVMRMixerControl *This,DWORD dwStreamID,const NORMALIZEDRECT *pRect);
  16014   void __RPC_STUB IVMRMixerControl_SetOutputRect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16015   HRESULT WINAPI IVMRMixerControl_GetOutputRect_Proxy(IVMRMixerControl *This,DWORD dwStreamID,NORMALIZEDRECT *pRect);
  16016   void __RPC_STUB IVMRMixerControl_GetOutputRect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16017   HRESULT WINAPI IVMRMixerControl_SetBackgroundClr_Proxy(IVMRMixerControl *This,COLORREF ClrBkg);
  16018   void __RPC_STUB IVMRMixerControl_SetBackgroundClr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16019   HRESULT WINAPI IVMRMixerControl_GetBackgroundClr_Proxy(IVMRMixerControl *This,COLORREF *lpClrBkg);
  16020   void __RPC_STUB IVMRMixerControl_GetBackgroundClr_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16021   HRESULT WINAPI IVMRMixerControl_SetMixingPrefs_Proxy(IVMRMixerControl *This,DWORD dwMixerPrefs);
  16022   void __RPC_STUB IVMRMixerControl_SetMixingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16023   HRESULT WINAPI IVMRMixerControl_GetMixingPrefs_Proxy(IVMRMixerControl *This,DWORD *pdwMixerPrefs);
  16024 
  16025   void __RPC_STUB IVMRMixerControl_GetMixingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16026 #endif
  16027 
  16028 #ifdef __cplusplus
  16029   typedef struct tagVMRGUID {
  16030     ::GUID *pGUID;
  16031     ::GUID GUID;
  16032   } VMRGUID;
  16033 #else
  16034   typedef struct tagVMRGUID {
  16035     GUID *pGUID;
  16036     GUID GUID;
  16037   } VMRGUID;
  16038 #endif
  16039 
  16040   typedef struct tagVMRMONITORINFO {
  16041     VMRGUID guid;
  16042     RECT rcMonitor;
  16043     HMONITOR hMon;
  16044     DWORD dwFlags;
  16045     wchar_t szDevice[32];
  16046     wchar_t szDescription[256];
  16047     LARGE_INTEGER liDriverVersion;
  16048     DWORD dwVendorId;
  16049     DWORD dwDeviceId;
  16050     DWORD dwSubSysId;
  16051     DWORD dwRevision;
  16052   } VMRMONITORINFO;
  16053 
  16054   extern RPC_IF_HANDLE __MIDL_itf_strmif_0402_v0_0_c_ifspec;
  16055   extern RPC_IF_HANDLE __MIDL_itf_strmif_0402_v0_0_s_ifspec;
  16056 #ifndef __IVMRMonitorConfig_INTERFACE_DEFINED__
  16057 #define __IVMRMonitorConfig_INTERFACE_DEFINED__
  16058   EXTERN_C const IID IID_IVMRMonitorConfig;
  16059 #if defined(__cplusplus) && !defined(CINTERFACE)
  16060   struct IVMRMonitorConfig : public IUnknown {
  16061   public:
  16062     virtual HRESULT WINAPI SetMonitor(const VMRGUID *pGUID) = 0;
  16063     virtual HRESULT WINAPI GetMonitor(VMRGUID *pGUID) = 0;
  16064     virtual HRESULT WINAPI SetDefaultMonitor(const VMRGUID *pGUID) = 0;
  16065     virtual HRESULT WINAPI GetDefaultMonitor(VMRGUID *pGUID) = 0;
  16066     virtual HRESULT WINAPI GetAvailableMonitors(VMRMONITORINFO *pInfo,DWORD dwMaxInfoArraySize,DWORD *pdwNumDevices) = 0;
  16067   };
  16068 #else
  16069   typedef struct IVMRMonitorConfigVtbl {
  16070     BEGIN_INTERFACE
  16071       HRESULT (WINAPI *QueryInterface)(IVMRMonitorConfig *This,REFIID riid,void **ppvObject);
  16072       ULONG (WINAPI *AddRef)(IVMRMonitorConfig *This);
  16073       ULONG (WINAPI *Release)(IVMRMonitorConfig *This);
  16074       HRESULT (WINAPI *SetMonitor)(IVMRMonitorConfig *This,const VMRGUID *pGUID);
  16075       HRESULT (WINAPI *GetMonitor)(IVMRMonitorConfig *This,VMRGUID *pGUID);
  16076       HRESULT (WINAPI *SetDefaultMonitor)(IVMRMonitorConfig *This,const VMRGUID *pGUID);
  16077       HRESULT (WINAPI *GetDefaultMonitor)(IVMRMonitorConfig *This,VMRGUID *pGUID);
  16078       HRESULT (WINAPI *GetAvailableMonitors)(IVMRMonitorConfig *This,VMRMONITORINFO *pInfo,DWORD dwMaxInfoArraySize,DWORD *pdwNumDevices);
  16079     END_INTERFACE
  16080   } IVMRMonitorConfigVtbl;
  16081   struct IVMRMonitorConfig {
  16082     CONST_VTBL struct IVMRMonitorConfigVtbl *lpVtbl;
  16083   };
  16084 #ifdef COBJMACROS
  16085 #define IVMRMonitorConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16086 #define IVMRMonitorConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
  16087 #define IVMRMonitorConfig_Release(This) (This)->lpVtbl->Release(This)
  16088 #define IVMRMonitorConfig_SetMonitor(This,pGUID) (This)->lpVtbl->SetMonitor(This,pGUID)
  16089 #define IVMRMonitorConfig_GetMonitor(This,pGUID) (This)->lpVtbl->GetMonitor(This,pGUID)
  16090 #define IVMRMonitorConfig_SetDefaultMonitor(This,pGUID) (This)->lpVtbl->SetDefaultMonitor(This,pGUID)
  16091 #define IVMRMonitorConfig_GetDefaultMonitor(This,pGUID) (This)->lpVtbl->GetDefaultMonitor(This,pGUID)
  16092 #define IVMRMonitorConfig_GetAvailableMonitors(This,pInfo,dwMaxInfoArraySize,pdwNumDevices) (This)->lpVtbl->GetAvailableMonitors(This,pInfo,dwMaxInfoArraySize,pdwNumDevices)
  16093 #endif
  16094 #endif
  16095   HRESULT WINAPI IVMRMonitorConfig_SetMonitor_Proxy(IVMRMonitorConfig *This,const VMRGUID *pGUID);
  16096   void __RPC_STUB IVMRMonitorConfig_SetMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16097   HRESULT WINAPI IVMRMonitorConfig_GetMonitor_Proxy(IVMRMonitorConfig *This,VMRGUID *pGUID);
  16098   void __RPC_STUB IVMRMonitorConfig_GetMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16099   HRESULT WINAPI IVMRMonitorConfig_SetDefaultMonitor_Proxy(IVMRMonitorConfig *This,const VMRGUID *pGUID);
  16100   void __RPC_STUB IVMRMonitorConfig_SetDefaultMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16101   HRESULT WINAPI IVMRMonitorConfig_GetDefaultMonitor_Proxy(IVMRMonitorConfig *This,VMRGUID *pGUID);
  16102   void __RPC_STUB IVMRMonitorConfig_GetDefaultMonitor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16103   HRESULT WINAPI IVMRMonitorConfig_GetAvailableMonitors_Proxy(IVMRMonitorConfig *This,VMRMONITORINFO *pInfo,DWORD dwMaxInfoArraySize,DWORD *pdwNumDevices);
  16104   void __RPC_STUB IVMRMonitorConfig_GetAvailableMonitors_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16105 #endif
  16106 
  16107   typedef enum __MIDL___MIDL_itf_strmif_0403_0001 {
  16108     RenderPrefs_RestrictToInitialMonitor = 0,RenderPrefs_ForceOffscreen = 0x1,RenderPrefs_ForceOverlays = 0x2,RenderPrefs_AllowOverlays = 0,
  16109     RenderPrefs_AllowOffscreen = 0,RenderPrefs_DoNotRenderColorKeyAndBorder = 0x8,RenderPrefs_Reserved = 0x10,RenderPrefs_PreferAGPMemWhenMixing = 0x20,
  16110     RenderPrefs_Mask = 0x3f
  16111   } VMRRenderPrefs;
  16112 
  16113   typedef enum __MIDL___MIDL_itf_strmif_0403_0002 {
  16114     VMRMode_Windowed = 0x1,VMRMode_Windowless = 0x2,VMRMode_Renderless = 0x4,VMRMode_Mask = 0x7
  16115   } VMRMode;
  16116 
  16117   enum __MIDL___MIDL_itf_strmif_0403_0003 {
  16118     MAX_NUMBER_OF_STREAMS = 16
  16119   };
  16120 
  16121   extern RPC_IF_HANDLE __MIDL_itf_strmif_0403_v0_0_c_ifspec;
  16122   extern RPC_IF_HANDLE __MIDL_itf_strmif_0403_v0_0_s_ifspec;
  16123 #ifndef __IVMRFilterConfig_INTERFACE_DEFINED__
  16124 #define __IVMRFilterConfig_INTERFACE_DEFINED__
  16125   EXTERN_C const IID IID_IVMRFilterConfig;
  16126 #if defined(__cplusplus) && !defined(CINTERFACE)
  16127   struct IVMRFilterConfig : public IUnknown {
  16128   public:
  16129     virtual HRESULT WINAPI SetImageCompositor(IVMRImageCompositor *lpVMRImgCompositor) = 0;
  16130     virtual HRESULT WINAPI SetNumberOfStreams(DWORD dwMaxStreams) = 0;
  16131     virtual HRESULT WINAPI GetNumberOfStreams(DWORD *pdwMaxStreams) = 0;
  16132     virtual HRESULT WINAPI SetRenderingPrefs(DWORD dwRenderFlags) = 0;
  16133     virtual HRESULT WINAPI GetRenderingPrefs(DWORD *pdwRenderFlags) = 0;
  16134     virtual HRESULT WINAPI SetRenderingMode(DWORD Mode) = 0;
  16135     virtual HRESULT WINAPI GetRenderingMode(DWORD *pMode) = 0;
  16136   };
  16137 #else
  16138   typedef struct IVMRFilterConfigVtbl {
  16139     BEGIN_INTERFACE
  16140       HRESULT (WINAPI *QueryInterface)(IVMRFilterConfig *This,REFIID riid,void **ppvObject);
  16141       ULONG (WINAPI *AddRef)(IVMRFilterConfig *This);
  16142       ULONG (WINAPI *Release)(IVMRFilterConfig *This);
  16143       HRESULT (WINAPI *SetImageCompositor)(IVMRFilterConfig *This,IVMRImageCompositor *lpVMRImgCompositor);
  16144       HRESULT (WINAPI *SetNumberOfStreams)(IVMRFilterConfig *This,DWORD dwMaxStreams);
  16145       HRESULT (WINAPI *GetNumberOfStreams)(IVMRFilterConfig *This,DWORD *pdwMaxStreams);
  16146       HRESULT (WINAPI *SetRenderingPrefs)(IVMRFilterConfig *This,DWORD dwRenderFlags);
  16147       HRESULT (WINAPI *GetRenderingPrefs)(IVMRFilterConfig *This,DWORD *pdwRenderFlags);
  16148       HRESULT (WINAPI *SetRenderingMode)(IVMRFilterConfig *This,DWORD Mode);
  16149       HRESULT (WINAPI *GetRenderingMode)(IVMRFilterConfig *This,DWORD *pMode);
  16150     END_INTERFACE
  16151   } IVMRFilterConfigVtbl;
  16152   struct IVMRFilterConfig {
  16153     CONST_VTBL struct IVMRFilterConfigVtbl *lpVtbl;
  16154   };
  16155 #ifdef COBJMACROS
  16156 #define IVMRFilterConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16157 #define IVMRFilterConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
  16158 #define IVMRFilterConfig_Release(This) (This)->lpVtbl->Release(This)
  16159 #define IVMRFilterConfig_SetImageCompositor(This,lpVMRImgCompositor) (This)->lpVtbl->SetImageCompositor(This,lpVMRImgCompositor)
  16160 #define IVMRFilterConfig_SetNumberOfStreams(This,dwMaxStreams) (This)->lpVtbl->SetNumberOfStreams(This,dwMaxStreams)
  16161 #define IVMRFilterConfig_GetNumberOfStreams(This,pdwMaxStreams) (This)->lpVtbl->GetNumberOfStreams(This,pdwMaxStreams)
  16162 #define IVMRFilterConfig_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags)
  16163 #define IVMRFilterConfig_GetRenderingPrefs(This,pdwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,pdwRenderFlags)
  16164 #define IVMRFilterConfig_SetRenderingMode(This,Mode) (This)->lpVtbl->SetRenderingMode(This,Mode)
  16165 #define IVMRFilterConfig_GetRenderingMode(This,pMode) (This)->lpVtbl->GetRenderingMode(This,pMode)
  16166 #endif
  16167 #endif
  16168   HRESULT WINAPI IVMRFilterConfig_SetImageCompositor_Proxy(IVMRFilterConfig *This,IVMRImageCompositor *lpVMRImgCompositor);
  16169   void __RPC_STUB IVMRFilterConfig_SetImageCompositor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16170   HRESULT WINAPI IVMRFilterConfig_SetNumberOfStreams_Proxy(IVMRFilterConfig *This,DWORD dwMaxStreams);
  16171   void __RPC_STUB IVMRFilterConfig_SetNumberOfStreams_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16172   HRESULT WINAPI IVMRFilterConfig_GetNumberOfStreams_Proxy(IVMRFilterConfig *This,DWORD *pdwMaxStreams);
  16173   void __RPC_STUB IVMRFilterConfig_GetNumberOfStreams_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16174   HRESULT WINAPI IVMRFilterConfig_SetRenderingPrefs_Proxy(IVMRFilterConfig *This,DWORD dwRenderFlags);
  16175   void __RPC_STUB IVMRFilterConfig_SetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16176   HRESULT WINAPI IVMRFilterConfig_GetRenderingPrefs_Proxy(IVMRFilterConfig *This,DWORD *pdwRenderFlags);
  16177   void __RPC_STUB IVMRFilterConfig_GetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16178   HRESULT WINAPI IVMRFilterConfig_SetRenderingMode_Proxy(IVMRFilterConfig *This,DWORD Mode);
  16179   void __RPC_STUB IVMRFilterConfig_SetRenderingMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16180   HRESULT WINAPI IVMRFilterConfig_GetRenderingMode_Proxy(IVMRFilterConfig *This,DWORD *pMode);
  16181   void __RPC_STUB IVMRFilterConfig_GetRenderingMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16182 #endif
  16183 
  16184 #ifndef __IVMRAspectRatioControl_INTERFACE_DEFINED__
  16185 #define __IVMRAspectRatioControl_INTERFACE_DEFINED__
  16186   EXTERN_C const IID IID_IVMRAspectRatioControl;
  16187 #if defined(__cplusplus) && !defined(CINTERFACE)
  16188   struct IVMRAspectRatioControl : public IUnknown {
  16189   public:
  16190     virtual HRESULT WINAPI GetAspectRatioMode(LPDWORD lpdwARMode) = 0;
  16191     virtual HRESULT WINAPI SetAspectRatioMode(DWORD dwARMode) = 0;
  16192   };
  16193 #else
  16194   typedef struct IVMRAspectRatioControlVtbl {
  16195     BEGIN_INTERFACE
  16196       HRESULT (WINAPI *QueryInterface)(IVMRAspectRatioControl *This,REFIID riid,void **ppvObject);
  16197       ULONG (WINAPI *AddRef)(IVMRAspectRatioControl *This);
  16198       ULONG (WINAPI *Release)(IVMRAspectRatioControl *This);
  16199       HRESULT (WINAPI *GetAspectRatioMode)(IVMRAspectRatioControl *This,LPDWORD lpdwARMode);
  16200       HRESULT (WINAPI *SetAspectRatioMode)(IVMRAspectRatioControl *This,DWORD dwARMode);
  16201     END_INTERFACE
  16202   } IVMRAspectRatioControlVtbl;
  16203   struct IVMRAspectRatioControl {
  16204     CONST_VTBL struct IVMRAspectRatioControlVtbl *lpVtbl;
  16205   };
  16206 #ifdef COBJMACROS
  16207 #define IVMRAspectRatioControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16208 #define IVMRAspectRatioControl_AddRef(This) (This)->lpVtbl->AddRef(This)
  16209 #define IVMRAspectRatioControl_Release(This) (This)->lpVtbl->Release(This)
  16210 #define IVMRAspectRatioControl_GetAspectRatioMode(This,lpdwARMode) (This)->lpVtbl->GetAspectRatioMode(This,lpdwARMode)
  16211 #define IVMRAspectRatioControl_SetAspectRatioMode(This,dwARMode) (This)->lpVtbl->SetAspectRatioMode(This,dwARMode)
  16212 #endif
  16213 #endif
  16214   HRESULT WINAPI IVMRAspectRatioControl_GetAspectRatioMode_Proxy(IVMRAspectRatioControl *This,LPDWORD lpdwARMode);
  16215   void __RPC_STUB IVMRAspectRatioControl_GetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16216   HRESULT WINAPI IVMRAspectRatioControl_SetAspectRatioMode_Proxy(IVMRAspectRatioControl *This,DWORD dwARMode);
  16217   void __RPC_STUB IVMRAspectRatioControl_SetAspectRatioMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16218 #endif
  16219 
  16220   typedef enum __MIDL___MIDL_itf_strmif_0405_0001 {
  16221     DeinterlacePref_NextBest = 0x1,DeinterlacePref_BOB = 0x2,DeinterlacePref_Weave = 0x4,DeinterlacePref_Mask = 0x7
  16222   } VMRDeinterlacePrefs;
  16223 
  16224   typedef enum __MIDL___MIDL_itf_strmif_0405_0002 {
  16225     DeinterlaceTech_Unknown = 0,DeinterlaceTech_BOBLineReplicate = 0x1,DeinterlaceTech_BOBVerticalStretch = 0x2,DeinterlaceTech_MedianFiltering = 0x4,
  16226     DeinterlaceTech_EdgeFiltering = 0x10,DeinterlaceTech_FieldAdaptive = 0x20,DeinterlaceTech_PixelAdaptive = 0x40,
  16227     DeinterlaceTech_MotionVectorSteered = 0x80
  16228   } VMRDeinterlaceTech;
  16229 
  16230   typedef struct _VMRFrequency {
  16231     DWORD dwNumerator;
  16232     DWORD dwDenominator;
  16233   } VMRFrequency;
  16234 
  16235   typedef struct _VMRVideoDesc {
  16236     DWORD dwSize;
  16237     DWORD dwSampleWidth;
  16238     DWORD dwSampleHeight;
  16239     WINBOOL SingleFieldPerSample;
  16240     DWORD dwFourCC;
  16241     VMRFrequency InputSampleFreq;
  16242     VMRFrequency OutputFrameFreq;
  16243   } VMRVideoDesc;
  16244 
  16245   typedef struct _VMRDeinterlaceCaps {
  16246     DWORD dwSize;
  16247     DWORD dwNumPreviousOutputFrames;
  16248     DWORD dwNumForwardRefSamples;
  16249     DWORD dwNumBackwardRefSamples;
  16250     VMRDeinterlaceTech DeinterlaceTechnology;
  16251   } VMRDeinterlaceCaps;
  16252 
  16253   extern RPC_IF_HANDLE __MIDL_itf_strmif_0405_v0_0_c_ifspec;
  16254   extern RPC_IF_HANDLE __MIDL_itf_strmif_0405_v0_0_s_ifspec;
  16255 #ifndef __IVMRDeinterlaceControl_INTERFACE_DEFINED__
  16256 #define __IVMRDeinterlaceControl_INTERFACE_DEFINED__
  16257   EXTERN_C const IID IID_IVMRDeinterlaceControl;
  16258 #if defined(__cplusplus) && !defined(CINTERFACE)
  16259   struct IVMRDeinterlaceControl : public IUnknown {
  16260   public:
  16261     virtual HRESULT WINAPI GetNumberOfDeinterlaceModes(VMRVideoDesc *lpVideoDescription,LPDWORD lpdwNumDeinterlaceModes,LPGUID lpDeinterlaceModes) = 0;
  16262     virtual HRESULT WINAPI GetDeinterlaceModeCaps(LPGUID lpDeinterlaceMode,VMRVideoDesc *lpVideoDescription,VMRDeinterlaceCaps *lpDeinterlaceCaps) = 0;
  16263     virtual HRESULT WINAPI GetDeinterlaceMode(DWORD dwStreamID,LPGUID lpDeinterlaceMode) = 0;
  16264     virtual HRESULT WINAPI SetDeinterlaceMode(DWORD dwStreamID,LPGUID lpDeinterlaceMode) = 0;
  16265     virtual HRESULT WINAPI GetDeinterlacePrefs(LPDWORD lpdwDeinterlacePrefs) = 0;
  16266     virtual HRESULT WINAPI SetDeinterlacePrefs(DWORD dwDeinterlacePrefs) = 0;
  16267     virtual HRESULT WINAPI GetActualDeinterlaceMode(DWORD dwStreamID,LPGUID lpDeinterlaceMode) = 0;
  16268   };
  16269 #else
  16270   typedef struct IVMRDeinterlaceControlVtbl {
  16271     BEGIN_INTERFACE
  16272       HRESULT (WINAPI *QueryInterface)(IVMRDeinterlaceControl *This,REFIID riid,void **ppvObject);
  16273       ULONG (WINAPI *AddRef)(IVMRDeinterlaceControl *This);
  16274       ULONG (WINAPI *Release)(IVMRDeinterlaceControl *This);
  16275       HRESULT (WINAPI *GetNumberOfDeinterlaceModes)(IVMRDeinterlaceControl *This,VMRVideoDesc *lpVideoDescription,LPDWORD lpdwNumDeinterlaceModes,LPGUID lpDeinterlaceModes);
  16276       HRESULT (WINAPI *GetDeinterlaceModeCaps)(IVMRDeinterlaceControl *This,LPGUID lpDeinterlaceMode,VMRVideoDesc *lpVideoDescription,VMRDeinterlaceCaps *lpDeinterlaceCaps);
  16277       HRESULT (WINAPI *GetDeinterlaceMode)(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
  16278       HRESULT (WINAPI *SetDeinterlaceMode)(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
  16279       HRESULT (WINAPI *GetDeinterlacePrefs)(IVMRDeinterlaceControl *This,LPDWORD lpdwDeinterlacePrefs);
  16280       HRESULT (WINAPI *SetDeinterlacePrefs)(IVMRDeinterlaceControl *This,DWORD dwDeinterlacePrefs);
  16281       HRESULT (WINAPI *GetActualDeinterlaceMode)(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
  16282     END_INTERFACE
  16283   } IVMRDeinterlaceControlVtbl;
  16284   struct IVMRDeinterlaceControl {
  16285     CONST_VTBL struct IVMRDeinterlaceControlVtbl *lpVtbl;
  16286   };
  16287 #ifdef COBJMACROS
  16288 #define IVMRDeinterlaceControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16289 #define IVMRDeinterlaceControl_AddRef(This) (This)->lpVtbl->AddRef(This)
  16290 #define IVMRDeinterlaceControl_Release(This) (This)->lpVtbl->Release(This)
  16291 #define IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes(This,lpVideoDescription,lpdwNumDeinterlaceModes,lpDeinterlaceModes) (This)->lpVtbl->GetNumberOfDeinterlaceModes(This,lpVideoDescription,lpdwNumDeinterlaceModes,lpDeinterlaceModes)
  16292 #define IVMRDeinterlaceControl_GetDeinterlaceModeCaps(This,lpDeinterlaceMode,lpVideoDescription,lpDeinterlaceCaps) (This)->lpVtbl->GetDeinterlaceModeCaps(This,lpDeinterlaceMode,lpVideoDescription,lpDeinterlaceCaps)
  16293 #define IVMRDeinterlaceControl_GetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode) (This)->lpVtbl->GetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
  16294 #define IVMRDeinterlaceControl_SetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode) (This)->lpVtbl->SetDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
  16295 #define IVMRDeinterlaceControl_GetDeinterlacePrefs(This,lpdwDeinterlacePrefs) (This)->lpVtbl->GetDeinterlacePrefs(This,lpdwDeinterlacePrefs)
  16296 #define IVMRDeinterlaceControl_SetDeinterlacePrefs(This,dwDeinterlacePrefs) (This)->lpVtbl->SetDeinterlacePrefs(This,dwDeinterlacePrefs)
  16297 #define IVMRDeinterlaceControl_GetActualDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode) (This)->lpVtbl->GetActualDeinterlaceMode(This,dwStreamID,lpDeinterlaceMode)
  16298 #endif
  16299 #endif
  16300   HRESULT WINAPI IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes_Proxy(IVMRDeinterlaceControl *This,VMRVideoDesc *lpVideoDescription,LPDWORD lpdwNumDeinterlaceModes,LPGUID lpDeinterlaceModes);
  16301   void __RPC_STUB IVMRDeinterlaceControl_GetNumberOfDeinterlaceModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16302   HRESULT WINAPI IVMRDeinterlaceControl_GetDeinterlaceModeCaps_Proxy(IVMRDeinterlaceControl *This,LPGUID lpDeinterlaceMode,VMRVideoDesc *lpVideoDescription,VMRDeinterlaceCaps *lpDeinterlaceCaps);
  16303   void __RPC_STUB IVMRDeinterlaceControl_GetDeinterlaceModeCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16304   HRESULT WINAPI IVMRDeinterlaceControl_GetDeinterlaceMode_Proxy(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
  16305   void __RPC_STUB IVMRDeinterlaceControl_GetDeinterlaceMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16306   HRESULT WINAPI IVMRDeinterlaceControl_SetDeinterlaceMode_Proxy(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
  16307   void __RPC_STUB IVMRDeinterlaceControl_SetDeinterlaceMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16308   HRESULT WINAPI IVMRDeinterlaceControl_GetDeinterlacePrefs_Proxy(IVMRDeinterlaceControl *This,LPDWORD lpdwDeinterlacePrefs);
  16309   void __RPC_STUB IVMRDeinterlaceControl_GetDeinterlacePrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16310   HRESULT WINAPI IVMRDeinterlaceControl_SetDeinterlacePrefs_Proxy(IVMRDeinterlaceControl *This,DWORD dwDeinterlacePrefs);
  16311   void __RPC_STUB IVMRDeinterlaceControl_SetDeinterlacePrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16312   HRESULT WINAPI IVMRDeinterlaceControl_GetActualDeinterlaceMode_Proxy(IVMRDeinterlaceControl *This,DWORD dwStreamID,LPGUID lpDeinterlaceMode);
  16313   void __RPC_STUB IVMRDeinterlaceControl_GetActualDeinterlaceMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16314 #endif
  16315 
  16316   typedef struct _VMRALPHABITMAP {
  16317     DWORD dwFlags;
  16318     HDC hdc;
  16319     LPDIRECTDRAWSURFACE7 pDDS;
  16320     RECT rSrc;
  16321     NORMALIZEDRECT rDest;
  16322     FLOAT fAlpha;
  16323     COLORREF clrSrcKey;
  16324   } VMRALPHABITMAP;
  16325 
  16326   typedef struct _VMRALPHABITMAP *PVMRALPHABITMAP;
  16327 
  16328 #define VMRBITMAP_DISABLE 0x00000001
  16329 #define VMRBITMAP_HDC 0x00000002
  16330 #define VMRBITMAP_ENTIREDDS 0x00000004
  16331 #define VMRBITMAP_SRCCOLORKEY 0x00000008
  16332 #define VMRBITMAP_SRCRECT 0x00000010
  16333 
  16334   extern RPC_IF_HANDLE __MIDL_itf_strmif_0406_v0_0_c_ifspec;
  16335   extern RPC_IF_HANDLE __MIDL_itf_strmif_0406_v0_0_s_ifspec;
  16336 #ifndef __IVMRMixerBitmap_INTERFACE_DEFINED__
  16337 #define __IVMRMixerBitmap_INTERFACE_DEFINED__
  16338   EXTERN_C const IID IID_IVMRMixerBitmap;
  16339 #if defined(__cplusplus) && !defined(CINTERFACE)
  16340   struct IVMRMixerBitmap : public IUnknown {
  16341   public:
  16342     virtual HRESULT WINAPI SetAlphaBitmap(const VMRALPHABITMAP *pBmpParms) = 0;
  16343     virtual HRESULT WINAPI UpdateAlphaBitmapParameters(PVMRALPHABITMAP pBmpParms) = 0;
  16344     virtual HRESULT WINAPI GetAlphaBitmapParameters(PVMRALPHABITMAP pBmpParms) = 0;
  16345   };
  16346 #else
  16347   typedef struct IVMRMixerBitmapVtbl {
  16348     BEGIN_INTERFACE
  16349       HRESULT (WINAPI *QueryInterface)(IVMRMixerBitmap *This,REFIID riid,void **ppvObject);
  16350       ULONG (WINAPI *AddRef)(IVMRMixerBitmap *This);
  16351       ULONG (WINAPI *Release)(IVMRMixerBitmap *This);
  16352       HRESULT (WINAPI *SetAlphaBitmap)(IVMRMixerBitmap *This,const VMRALPHABITMAP *pBmpParms);
  16353       HRESULT (WINAPI *UpdateAlphaBitmapParameters)(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
  16354       HRESULT (WINAPI *GetAlphaBitmapParameters)(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
  16355     END_INTERFACE
  16356   } IVMRMixerBitmapVtbl;
  16357   struct IVMRMixerBitmap {
  16358     CONST_VTBL struct IVMRMixerBitmapVtbl *lpVtbl;
  16359   };
  16360 #ifdef COBJMACROS
  16361 #define IVMRMixerBitmap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16362 #define IVMRMixerBitmap_AddRef(This) (This)->lpVtbl->AddRef(This)
  16363 #define IVMRMixerBitmap_Release(This) (This)->lpVtbl->Release(This)
  16364 #define IVMRMixerBitmap_SetAlphaBitmap(This,pBmpParms) (This)->lpVtbl->SetAlphaBitmap(This,pBmpParms)
  16365 #define IVMRMixerBitmap_UpdateAlphaBitmapParameters(This,pBmpParms) (This)->lpVtbl->UpdateAlphaBitmapParameters(This,pBmpParms)
  16366 #define IVMRMixerBitmap_GetAlphaBitmapParameters(This,pBmpParms) (This)->lpVtbl->GetAlphaBitmapParameters(This,pBmpParms)
  16367 #endif
  16368 #endif
  16369   HRESULT WINAPI IVMRMixerBitmap_SetAlphaBitmap_Proxy(IVMRMixerBitmap *This,const VMRALPHABITMAP *pBmpParms);
  16370   void __RPC_STUB IVMRMixerBitmap_SetAlphaBitmap_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16371   HRESULT WINAPI IVMRMixerBitmap_UpdateAlphaBitmapParameters_Proxy(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
  16372   void __RPC_STUB IVMRMixerBitmap_UpdateAlphaBitmapParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16373   HRESULT WINAPI IVMRMixerBitmap_GetAlphaBitmapParameters_Proxy(IVMRMixerBitmap *This,PVMRALPHABITMAP pBmpParms);
  16374   void __RPC_STUB IVMRMixerBitmap_GetAlphaBitmapParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16375 #endif
  16376 
  16377   typedef struct _VMRVIDEOSTREAMINFO {
  16378     LPDIRECTDRAWSURFACE7 pddsVideoSurface;
  16379     DWORD dwWidth;
  16380     DWORD dwHeight;
  16381     DWORD dwStrmID;
  16382     FLOAT fAlpha;
  16383     DDCOLORKEY ddClrKey;
  16384     NORMALIZEDRECT rNormal;
  16385   } VMRVIDEOSTREAMINFO;
  16386 
  16387   extern RPC_IF_HANDLE __MIDL_itf_strmif_0407_v0_0_c_ifspec;
  16388   extern RPC_IF_HANDLE __MIDL_itf_strmif_0407_v0_0_s_ifspec;
  16389 #ifndef __IVMRImageCompositor_INTERFACE_DEFINED__
  16390 #define __IVMRImageCompositor_INTERFACE_DEFINED__
  16391   EXTERN_C const IID IID_IVMRImageCompositor;
  16392 #if defined(__cplusplus) && !defined(CINTERFACE)
  16393   struct IVMRImageCompositor : public IUnknown {
  16394   public:
  16395     virtual HRESULT WINAPI InitCompositionTarget(IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget) = 0;
  16396     virtual HRESULT WINAPI TermCompositionTarget(IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget) = 0;
  16397     virtual HRESULT WINAPI SetStreamMediaType(DWORD dwStrmID,AM_MEDIA_TYPE *pmt,WINBOOL fTexture) = 0;
  16398     virtual HRESULT WINAPI CompositeImage(IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget,AM_MEDIA_TYPE *pmtRenderTarget,REFERENCE_TIME rtStart,REFERENCE_TIME rtEnd,DWORD dwClrBkGnd,VMRVIDEOSTREAMINFO *pVideoStreamInfo,UINT cStreams) = 0;
  16399   };
  16400 #else
  16401   typedef struct IVMRImageCompositorVtbl {
  16402     BEGIN_INTERFACE
  16403       HRESULT (WINAPI *QueryInterface)(IVMRImageCompositor *This,REFIID riid,void **ppvObject);
  16404       ULONG (WINAPI *AddRef)(IVMRImageCompositor *This);
  16405       ULONG (WINAPI *Release)(IVMRImageCompositor *This);
  16406       HRESULT (WINAPI *InitCompositionTarget)(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
  16407       HRESULT (WINAPI *TermCompositionTarget)(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
  16408       HRESULT (WINAPI *SetStreamMediaType)(IVMRImageCompositor *This,DWORD dwStrmID,AM_MEDIA_TYPE *pmt,WINBOOL fTexture);
  16409       HRESULT (WINAPI *CompositeImage)(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget,AM_MEDIA_TYPE *pmtRenderTarget,REFERENCE_TIME rtStart,REFERENCE_TIME rtEnd,DWORD dwClrBkGnd,VMRVIDEOSTREAMINFO *pVideoStreamInfo,UINT cStreams);
  16410     END_INTERFACE
  16411   } IVMRImageCompositorVtbl;
  16412   struct IVMRImageCompositor {
  16413     CONST_VTBL struct IVMRImageCompositorVtbl *lpVtbl;
  16414   };
  16415 #ifdef COBJMACROS
  16416 #define IVMRImageCompositor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16417 #define IVMRImageCompositor_AddRef(This) (This)->lpVtbl->AddRef(This)
  16418 #define IVMRImageCompositor_Release(This) (This)->lpVtbl->Release(This)
  16419 #define IVMRImageCompositor_InitCompositionTarget(This,pD3DDevice,pddsRenderTarget) (This)->lpVtbl->InitCompositionTarget(This,pD3DDevice,pddsRenderTarget)
  16420 #define IVMRImageCompositor_TermCompositionTarget(This,pD3DDevice,pddsRenderTarget) (This)->lpVtbl->TermCompositionTarget(This,pD3DDevice,pddsRenderTarget)
  16421 #define IVMRImageCompositor_SetStreamMediaType(This,dwStrmID,pmt,fTexture) (This)->lpVtbl->SetStreamMediaType(This,dwStrmID,pmt,fTexture)
  16422 #define IVMRImageCompositor_CompositeImage(This,pD3DDevice,pddsRenderTarget,pmtRenderTarget,rtStart,rtEnd,dwClrBkGnd,pVideoStreamInfo,cStreams) (This)->lpVtbl->CompositeImage(This,pD3DDevice,pddsRenderTarget,pmtRenderTarget,rtStart,rtEnd,dwClrBkGnd,pVideoStreamInfo,cStreams)
  16423 #endif
  16424 #endif
  16425   HRESULT WINAPI IVMRImageCompositor_InitCompositionTarget_Proxy(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
  16426   void __RPC_STUB IVMRImageCompositor_InitCompositionTarget_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16427   HRESULT WINAPI IVMRImageCompositor_TermCompositionTarget_Proxy(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget);
  16428   void __RPC_STUB IVMRImageCompositor_TermCompositionTarget_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16429   HRESULT WINAPI IVMRImageCompositor_SetStreamMediaType_Proxy(IVMRImageCompositor *This,DWORD dwStrmID,AM_MEDIA_TYPE *pmt,WINBOOL fTexture);
  16430   void __RPC_STUB IVMRImageCompositor_SetStreamMediaType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16431   HRESULT WINAPI IVMRImageCompositor_CompositeImage_Proxy(IVMRImageCompositor *This,IUnknown *pD3DDevice,LPDIRECTDRAWSURFACE7 pddsRenderTarget,AM_MEDIA_TYPE *pmtRenderTarget,REFERENCE_TIME rtStart,REFERENCE_TIME rtEnd,DWORD dwClrBkGnd,VMRVIDEOSTREAMINFO *pVideoStreamInfo,UINT cStreams);
  16432   void __RPC_STUB IVMRImageCompositor_CompositeImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16433 #endif
  16434 
  16435 #ifndef __IVMRVideoStreamControl_INTERFACE_DEFINED__
  16436 #define __IVMRVideoStreamControl_INTERFACE_DEFINED__
  16437   EXTERN_C const IID IID_IVMRVideoStreamControl;
  16438 #if defined(__cplusplus) && !defined(CINTERFACE)
  16439   struct IVMRVideoStreamControl : public IUnknown {
  16440   public:
  16441     virtual HRESULT WINAPI SetColorKey(LPDDCOLORKEY lpClrKey) = 0;
  16442     virtual HRESULT WINAPI GetColorKey(LPDDCOLORKEY lpClrKey) = 0;
  16443     virtual HRESULT WINAPI SetStreamActiveState(WINBOOL fActive) = 0;
  16444     virtual HRESULT WINAPI GetStreamActiveState(WINBOOL *lpfActive) = 0;
  16445   };
  16446 #else
  16447   typedef struct IVMRVideoStreamControlVtbl {
  16448     BEGIN_INTERFACE
  16449       HRESULT (WINAPI *QueryInterface)(IVMRVideoStreamControl *This,REFIID riid,void **ppvObject);
  16450       ULONG (WINAPI *AddRef)(IVMRVideoStreamControl *This);
  16451       ULONG (WINAPI *Release)(IVMRVideoStreamControl *This);
  16452       HRESULT (WINAPI *SetColorKey)(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
  16453       HRESULT (WINAPI *GetColorKey)(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
  16454       HRESULT (WINAPI *SetStreamActiveState)(IVMRVideoStreamControl *This,WINBOOL fActive);
  16455       HRESULT (WINAPI *GetStreamActiveState)(IVMRVideoStreamControl *This,WINBOOL *lpfActive);
  16456     END_INTERFACE
  16457   } IVMRVideoStreamControlVtbl;
  16458   struct IVMRVideoStreamControl {
  16459     CONST_VTBL struct IVMRVideoStreamControlVtbl *lpVtbl;
  16460   };
  16461 #ifdef COBJMACROS
  16462 #define IVMRVideoStreamControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16463 #define IVMRVideoStreamControl_AddRef(This) (This)->lpVtbl->AddRef(This)
  16464 #define IVMRVideoStreamControl_Release(This) (This)->lpVtbl->Release(This)
  16465 #define IVMRVideoStreamControl_SetColorKey(This,lpClrKey) (This)->lpVtbl->SetColorKey(This,lpClrKey)
  16466 #define IVMRVideoStreamControl_GetColorKey(This,lpClrKey) (This)->lpVtbl->GetColorKey(This,lpClrKey)
  16467 #define IVMRVideoStreamControl_SetStreamActiveState(This,fActive) (This)->lpVtbl->SetStreamActiveState(This,fActive)
  16468 #define IVMRVideoStreamControl_GetStreamActiveState(This,lpfActive) (This)->lpVtbl->GetStreamActiveState(This,lpfActive)
  16469 #endif
  16470 #endif
  16471   HRESULT WINAPI IVMRVideoStreamControl_SetColorKey_Proxy(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
  16472   void __RPC_STUB IVMRVideoStreamControl_SetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16473   HRESULT WINAPI IVMRVideoStreamControl_GetColorKey_Proxy(IVMRVideoStreamControl *This,LPDDCOLORKEY lpClrKey);
  16474   void __RPC_STUB IVMRVideoStreamControl_GetColorKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16475   HRESULT WINAPI IVMRVideoStreamControl_SetStreamActiveState_Proxy(IVMRVideoStreamControl *This,WINBOOL fActive);
  16476   void __RPC_STUB IVMRVideoStreamControl_SetStreamActiveState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16477   HRESULT WINAPI IVMRVideoStreamControl_GetStreamActiveState_Proxy(IVMRVideoStreamControl *This,WINBOOL *lpfActive);
  16478   void __RPC_STUB IVMRVideoStreamControl_GetStreamActiveState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16479 #endif
  16480 
  16481 #ifndef __IVMRSurface_INTERFACE_DEFINED__
  16482 #define __IVMRSurface_INTERFACE_DEFINED__
  16483   EXTERN_C const IID IID_IVMRSurface;
  16484 #if defined(__cplusplus) && !defined(CINTERFACE)
  16485   struct IVMRSurface : public IUnknown {
  16486   public:
  16487     virtual HRESULT WINAPI IsSurfaceLocked(void) = 0;
  16488     virtual HRESULT WINAPI LockSurface(BYTE **lpSurface) = 0;
  16489     virtual HRESULT WINAPI UnlockSurface(void) = 0;
  16490     virtual HRESULT WINAPI GetSurface(LPDIRECTDRAWSURFACE7 *lplpSurface) = 0;
  16491   };
  16492 #else
  16493   typedef struct IVMRSurfaceVtbl {
  16494     BEGIN_INTERFACE
  16495       HRESULT (WINAPI *QueryInterface)(IVMRSurface *This,REFIID riid,void **ppvObject);
  16496       ULONG (WINAPI *AddRef)(IVMRSurface *This);
  16497       ULONG (WINAPI *Release)(IVMRSurface *This);
  16498       HRESULT (WINAPI *IsSurfaceLocked)(IVMRSurface *This);
  16499       HRESULT (WINAPI *LockSurface)(IVMRSurface *This,BYTE **lpSurface);
  16500       HRESULT (WINAPI *UnlockSurface)(IVMRSurface *This);
  16501       HRESULT (WINAPI *GetSurface)(IVMRSurface *This,LPDIRECTDRAWSURFACE7 *lplpSurface);
  16502     END_INTERFACE
  16503   } IVMRSurfaceVtbl;
  16504   struct IVMRSurface {
  16505     CONST_VTBL struct IVMRSurfaceVtbl *lpVtbl;
  16506   };
  16507 #ifdef COBJMACROS
  16508 #define IVMRSurface_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16509 #define IVMRSurface_AddRef(This) (This)->lpVtbl->AddRef(This)
  16510 #define IVMRSurface_Release(This) (This)->lpVtbl->Release(This)
  16511 #define IVMRSurface_IsSurfaceLocked(This) (This)->lpVtbl->IsSurfaceLocked(This)
  16512 #define IVMRSurface_LockSurface(This,lpSurface) (This)->lpVtbl->LockSurface(This,lpSurface)
  16513 #define IVMRSurface_UnlockSurface(This) (This)->lpVtbl->UnlockSurface(This)
  16514 #define IVMRSurface_GetSurface(This,lplpSurface) (This)->lpVtbl->GetSurface(This,lplpSurface)
  16515 #endif
  16516 #endif
  16517   HRESULT WINAPI IVMRSurface_IsSurfaceLocked_Proxy(IVMRSurface *This);
  16518   void __RPC_STUB IVMRSurface_IsSurfaceLocked_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16519   HRESULT WINAPI IVMRSurface_LockSurface_Proxy(IVMRSurface *This,BYTE **lpSurface);
  16520   void __RPC_STUB IVMRSurface_LockSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16521   HRESULT WINAPI IVMRSurface_UnlockSurface_Proxy(IVMRSurface *This);
  16522   void __RPC_STUB IVMRSurface_UnlockSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16523   HRESULT WINAPI IVMRSurface_GetSurface_Proxy(IVMRSurface *This,LPDIRECTDRAWSURFACE7 *lplpSurface);
  16524   void __RPC_STUB IVMRSurface_GetSurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16525 #endif
  16526 
  16527 #ifndef __IVMRImagePresenterConfig_INTERFACE_DEFINED__
  16528 #define __IVMRImagePresenterConfig_INTERFACE_DEFINED__
  16529   EXTERN_C const IID IID_IVMRImagePresenterConfig;
  16530 
  16531 #if defined(__cplusplus) && !defined(CINTERFACE)
  16532   struct IVMRImagePresenterConfig : public IUnknown {
  16533   public:
  16534     virtual HRESULT WINAPI SetRenderingPrefs(DWORD dwRenderFlags) = 0;
  16535     virtual HRESULT WINAPI GetRenderingPrefs(DWORD *dwRenderFlags) = 0;
  16536   };
  16537 #else
  16538   typedef struct IVMRImagePresenterConfigVtbl {
  16539     BEGIN_INTERFACE
  16540       HRESULT (WINAPI *QueryInterface)(IVMRImagePresenterConfig *This,REFIID riid,void **ppvObject);
  16541       ULONG (WINAPI *AddRef)(IVMRImagePresenterConfig *This);
  16542       ULONG (WINAPI *Release)(IVMRImagePresenterConfig *This);
  16543       HRESULT (WINAPI *SetRenderingPrefs)(IVMRImagePresenterConfig *This,DWORD dwRenderFlags);
  16544       HRESULT (WINAPI *GetRenderingPrefs)(IVMRImagePresenterConfig *This,DWORD *dwRenderFlags);
  16545     END_INTERFACE
  16546   } IVMRImagePresenterConfigVtbl;
  16547   struct IVMRImagePresenterConfig {
  16548     CONST_VTBL struct IVMRImagePresenterConfigVtbl *lpVtbl;
  16549   };
  16550 #ifdef COBJMACROS
  16551 #define IVMRImagePresenterConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16552 #define IVMRImagePresenterConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
  16553 #define IVMRImagePresenterConfig_Release(This) (This)->lpVtbl->Release(This)
  16554 #define IVMRImagePresenterConfig_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags)
  16555 #define IVMRImagePresenterConfig_GetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,dwRenderFlags)
  16556 #endif
  16557 #endif
  16558   HRESULT WINAPI IVMRImagePresenterConfig_SetRenderingPrefs_Proxy(IVMRImagePresenterConfig *This,DWORD dwRenderFlags);
  16559   void __RPC_STUB IVMRImagePresenterConfig_SetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16560   HRESULT WINAPI IVMRImagePresenterConfig_GetRenderingPrefs_Proxy(IVMRImagePresenterConfig *This,DWORD *dwRenderFlags);
  16561   void __RPC_STUB IVMRImagePresenterConfig_GetRenderingPrefs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16562 #endif
  16563 
  16564 #ifndef __IVMRImagePresenterExclModeConfig_INTERFACE_DEFINED__
  16565 #define __IVMRImagePresenterExclModeConfig_INTERFACE_DEFINED__
  16566   EXTERN_C const IID IID_IVMRImagePresenterExclModeConfig;
  16567 #if defined(__cplusplus) && !defined(CINTERFACE)
  16568   struct IVMRImagePresenterExclModeConfig : public IVMRImagePresenterConfig {
  16569   public:
  16570     virtual HRESULT WINAPI SetXlcModeDDObjAndPrimarySurface(LPDIRECTDRAW7 lpDDObj,LPDIRECTDRAWSURFACE7 lpPrimarySurf) = 0;
  16571     virtual HRESULT WINAPI GetXlcModeDDObjAndPrimarySurface(LPDIRECTDRAW7 *lpDDObj,LPDIRECTDRAWSURFACE7 *lpPrimarySurf) = 0;
  16572   };
  16573 #else
  16574   typedef struct IVMRImagePresenterExclModeConfigVtbl {
  16575     BEGIN_INTERFACE
  16576       HRESULT (WINAPI *QueryInterface)(IVMRImagePresenterExclModeConfig *This,REFIID riid,void **ppvObject);
  16577       ULONG (WINAPI *AddRef)(IVMRImagePresenterExclModeConfig *This);
  16578       ULONG (WINAPI *Release)(IVMRImagePresenterExclModeConfig *This);
  16579       HRESULT (WINAPI *SetRenderingPrefs)(IVMRImagePresenterExclModeConfig *This,DWORD dwRenderFlags);
  16580       HRESULT (WINAPI *GetRenderingPrefs)(IVMRImagePresenterExclModeConfig *This,DWORD *dwRenderFlags);
  16581       HRESULT (WINAPI *SetXlcModeDDObjAndPrimarySurface)(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 lpDDObj,LPDIRECTDRAWSURFACE7 lpPrimarySurf);
  16582       HRESULT (WINAPI *GetXlcModeDDObjAndPrimarySurface)(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 *lpDDObj,LPDIRECTDRAWSURFACE7 *lpPrimarySurf);
  16583     END_INTERFACE
  16584   } IVMRImagePresenterExclModeConfigVtbl;
  16585   struct IVMRImagePresenterExclModeConfig {
  16586     CONST_VTBL struct IVMRImagePresenterExclModeConfigVtbl *lpVtbl;
  16587   };
  16588 #ifdef COBJMACROS
  16589 #define IVMRImagePresenterExclModeConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16590 #define IVMRImagePresenterExclModeConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
  16591 #define IVMRImagePresenterExclModeConfig_Release(This) (This)->lpVtbl->Release(This)
  16592 #define IVMRImagePresenterExclModeConfig_SetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->SetRenderingPrefs(This,dwRenderFlags)
  16593 #define IVMRImagePresenterExclModeConfig_GetRenderingPrefs(This,dwRenderFlags) (This)->lpVtbl->GetRenderingPrefs(This,dwRenderFlags)
  16594 #define IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf) (This)->lpVtbl->SetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf)
  16595 #define IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf) (This)->lpVtbl->GetXlcModeDDObjAndPrimarySurface(This,lpDDObj,lpPrimarySurf)
  16596 #endif
  16597 #endif
  16598   HRESULT WINAPI IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface_Proxy(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 lpDDObj,LPDIRECTDRAWSURFACE7 lpPrimarySurf);
  16599   void __RPC_STUB IVMRImagePresenterExclModeConfig_SetXlcModeDDObjAndPrimarySurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16600   HRESULT WINAPI IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface_Proxy(IVMRImagePresenterExclModeConfig *This,LPDIRECTDRAW7 *lpDDObj,LPDIRECTDRAWSURFACE7 *lpPrimarySurf);
  16601   void __RPC_STUB IVMRImagePresenterExclModeConfig_GetXlcModeDDObjAndPrimarySurface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16602 #endif
  16603 
  16604 #ifndef __IVPManager_INTERFACE_DEFINED__
  16605 #define __IVPManager_INTERFACE_DEFINED__
  16606   EXTERN_C const IID IID_IVPManager;
  16607 #if defined(__cplusplus) && !defined(CINTERFACE)
  16608   struct IVPManager : public IUnknown {
  16609   public:
  16610     virtual HRESULT WINAPI SetVideoPortIndex(DWORD dwVideoPortIndex) = 0;
  16611     virtual HRESULT WINAPI GetVideoPortIndex(DWORD *pdwVideoPortIndex) = 0;
  16612   };
  16613 #else
  16614   typedef struct IVPManagerVtbl {
  16615     BEGIN_INTERFACE
  16616       HRESULT (WINAPI *QueryInterface)(IVPManager *This,REFIID riid,void **ppvObject);
  16617       ULONG (WINAPI *AddRef)(IVPManager *This);
  16618       ULONG (WINAPI *Release)(IVPManager *This);
  16619       HRESULT (WINAPI *SetVideoPortIndex)(IVPManager *This,DWORD dwVideoPortIndex);
  16620       HRESULT (WINAPI *GetVideoPortIndex)(IVPManager *This,DWORD *pdwVideoPortIndex);
  16621     END_INTERFACE
  16622   } IVPManagerVtbl;
  16623   struct IVPManager {
  16624     CONST_VTBL struct IVPManagerVtbl *lpVtbl;
  16625   };
  16626 #ifdef COBJMACROS
  16627 #define IVPManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16628 #define IVPManager_AddRef(This) (This)->lpVtbl->AddRef(This)
  16629 #define IVPManager_Release(This) (This)->lpVtbl->Release(This)
  16630 #define IVPManager_SetVideoPortIndex(This,dwVideoPortIndex) (This)->lpVtbl->SetVideoPortIndex(This,dwVideoPortIndex)
  16631 #define IVPManager_GetVideoPortIndex(This,pdwVideoPortIndex) (This)->lpVtbl->GetVideoPortIndex(This,pdwVideoPortIndex)
  16632 #endif
  16633 #endif
  16634   HRESULT WINAPI IVPManager_SetVideoPortIndex_Proxy(IVPManager *This,DWORD dwVideoPortIndex);
  16635   void __RPC_STUB IVPManager_SetVideoPortIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16636   HRESULT WINAPI IVPManager_GetVideoPortIndex_Proxy(IVPManager *This,DWORD *pdwVideoPortIndex);
  16637   void __RPC_STUB IVPManager_GetVideoPortIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  16638 #endif
  16639 
  16640   extern RPC_IF_HANDLE __MIDL_itf_strmif_0413_v0_0_c_ifspec;
  16641   extern RPC_IF_HANDLE __MIDL_itf_strmif_0413_v0_0_s_ifspec;
  16642 /* Begin additional prototypes for all interfaces */
  16643 
  16644 
  16645 /* End additional prototypes */
  16646 
  16647 #ifdef __cplusplus
  16648 }
  16649 #endif
  16650 
  16651 #endif /* __strmif_h__ */