master
    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__
   23typedef interface ICreateDevEnum ICreateDevEnum;
   24#ifdef __cplusplus
   25interface ICreateDevEnum;
   26#endif /* __cplusplus */
   27#endif
   28
   29#ifndef __IPin_FWD_DEFINED__
   30#define __IPin_FWD_DEFINED__
   31typedef interface IPin IPin;
   32#ifdef __cplusplus
   33interface IPin;
   34#endif /* __cplusplus */
   35#endif
   36
   37#ifndef __IEnumPins_FWD_DEFINED__
   38#define __IEnumPins_FWD_DEFINED__
   39typedef interface IEnumPins IEnumPins;
   40#ifdef __cplusplus
   41interface IEnumPins;
   42#endif /* __cplusplus */
   43#endif
   44
   45#ifndef __IEnumMediaTypes_FWD_DEFINED__
   46#define __IEnumMediaTypes_FWD_DEFINED__
   47typedef interface IEnumMediaTypes IEnumMediaTypes;
   48#ifdef __cplusplus
   49interface IEnumMediaTypes;
   50#endif /* __cplusplus */
   51#endif
   52
   53#ifndef __IFilterGraph_FWD_DEFINED__
   54#define __IFilterGraph_FWD_DEFINED__
   55typedef interface IFilterGraph IFilterGraph;
   56#ifdef __cplusplus
   57interface IFilterGraph;
   58#endif /* __cplusplus */
   59#endif
   60
   61#ifndef __IEnumFilters_FWD_DEFINED__
   62#define __IEnumFilters_FWD_DEFINED__
   63typedef interface IEnumFilters IEnumFilters;
   64#ifdef __cplusplus
   65interface IEnumFilters;
   66#endif /* __cplusplus */
   67#endif
   68
   69#ifndef __IMediaFilter_FWD_DEFINED__
   70#define __IMediaFilter_FWD_DEFINED__
   71typedef interface IMediaFilter IMediaFilter;
   72#ifdef __cplusplus
   73interface IMediaFilter;
   74#endif /* __cplusplus */
   75#endif
   76
   77#ifndef __IBaseFilter_FWD_DEFINED__
   78#define __IBaseFilter_FWD_DEFINED__
   79typedef interface IBaseFilter IBaseFilter;
   80#ifdef __cplusplus
   81interface IBaseFilter;
   82#endif /* __cplusplus */
   83#endif
   84
   85#ifndef __IReferenceClock_FWD_DEFINED__
   86#define __IReferenceClock_FWD_DEFINED__
   87typedef interface IReferenceClock IReferenceClock;
   88#ifdef __cplusplus
   89interface IReferenceClock;
   90#endif /* __cplusplus */
   91#endif
   92
   93#ifndef __IReferenceClockTimerControl_FWD_DEFINED__
   94#define __IReferenceClockTimerControl_FWD_DEFINED__
   95typedef interface IReferenceClockTimerControl IReferenceClockTimerControl;
   96#ifdef __cplusplus
   97interface IReferenceClockTimerControl;
   98#endif /* __cplusplus */
   99#endif
  100
  101#ifndef __IReferenceClock2_FWD_DEFINED__
  102#define __IReferenceClock2_FWD_DEFINED__
  103typedef interface IReferenceClock2 IReferenceClock2;
  104#ifdef __cplusplus
  105interface IReferenceClock2;
  106#endif /* __cplusplus */
  107#endif
  108
  109#ifndef __IMediaSample_FWD_DEFINED__
  110#define __IMediaSample_FWD_DEFINED__
  111typedef interface IMediaSample IMediaSample;
  112#ifdef __cplusplus
  113interface IMediaSample;
  114#endif /* __cplusplus */
  115#endif
  116
  117#ifndef __IMediaSample2_FWD_DEFINED__
  118#define __IMediaSample2_FWD_DEFINED__
  119typedef interface IMediaSample2 IMediaSample2;
  120#ifdef __cplusplus
  121interface IMediaSample2;
  122#endif /* __cplusplus */
  123#endif
  124
  125#ifndef __IMediaSample2Config_FWD_DEFINED__
  126#define __IMediaSample2Config_FWD_DEFINED__
  127typedef interface IMediaSample2Config IMediaSample2Config;
  128#ifdef __cplusplus
  129interface IMediaSample2Config;
  130#endif /* __cplusplus */
  131#endif
  132
  133#ifndef __IMemAllocator_FWD_DEFINED__
  134#define __IMemAllocator_FWD_DEFINED__
  135typedef interface IMemAllocator IMemAllocator;
  136#ifdef __cplusplus
  137interface IMemAllocator;
  138#endif /* __cplusplus */
  139#endif
  140
  141#ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__
  142#define __IMemAllocatorCallbackTemp_FWD_DEFINED__
  143typedef interface IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp;
  144#ifdef __cplusplus
  145interface IMemAllocatorCallbackTemp;
  146#endif /* __cplusplus */
  147#endif
  148
  149#ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
  150#define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
  151typedef interface IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp;
  152#ifdef __cplusplus
  153interface IMemAllocatorNotifyCallbackTemp;
  154#endif /* __cplusplus */
  155#endif
  156
  157#ifndef __IMemInputPin_FWD_DEFINED__
  158#define __IMemInputPin_FWD_DEFINED__
  159typedef interface IMemInputPin IMemInputPin;
  160#ifdef __cplusplus
  161interface IMemInputPin;
  162#endif /* __cplusplus */
  163#endif
  164
  165#ifndef __IAMovieSetup_FWD_DEFINED__
  166#define __IAMovieSetup_FWD_DEFINED__
  167typedef interface IAMovieSetup IAMovieSetup;
  168#ifdef __cplusplus
  169interface IAMovieSetup;
  170#endif /* __cplusplus */
  171#endif
  172
  173#ifndef __IMediaSeeking_FWD_DEFINED__
  174#define __IMediaSeeking_FWD_DEFINED__
  175typedef interface IMediaSeeking IMediaSeeking;
  176#ifdef __cplusplus
  177interface IMediaSeeking;
  178#endif /* __cplusplus */
  179#endif
  180
  181#ifndef __IEnumRegFilters_FWD_DEFINED__
  182#define __IEnumRegFilters_FWD_DEFINED__
  183typedef interface IEnumRegFilters IEnumRegFilters;
  184#ifdef __cplusplus
  185interface IEnumRegFilters;
  186#endif /* __cplusplus */
  187#endif
  188
  189#ifndef __IFilterMapper_FWD_DEFINED__
  190#define __IFilterMapper_FWD_DEFINED__
  191typedef interface IFilterMapper IFilterMapper;
  192#ifdef __cplusplus
  193interface IFilterMapper;
  194#endif /* __cplusplus */
  195#endif
  196
  197#ifndef __IFilterMapper2_FWD_DEFINED__
  198#define __IFilterMapper2_FWD_DEFINED__
  199typedef interface IFilterMapper2 IFilterMapper2;
  200#ifdef __cplusplus
  201interface IFilterMapper2;
  202#endif /* __cplusplus */
  203#endif
  204
  205#ifndef __IFilterMapper3_FWD_DEFINED__
  206#define __IFilterMapper3_FWD_DEFINED__
  207typedef interface IFilterMapper3 IFilterMapper3;
  208#ifdef __cplusplus
  209interface IFilterMapper3;
  210#endif /* __cplusplus */
  211#endif
  212
  213#ifndef __IQualityControl_FWD_DEFINED__
  214#define __IQualityControl_FWD_DEFINED__
  215typedef interface IQualityControl IQualityControl;
  216#ifdef __cplusplus
  217interface IQualityControl;
  218#endif /* __cplusplus */
  219#endif
  220
  221#ifndef __IOverlayNotify_FWD_DEFINED__
  222#define __IOverlayNotify_FWD_DEFINED__
  223typedef interface IOverlayNotify IOverlayNotify;
  224#ifdef __cplusplus
  225interface IOverlayNotify;
  226#endif /* __cplusplus */
  227#endif
  228
  229#ifndef __IOverlayNotify2_FWD_DEFINED__
  230#define __IOverlayNotify2_FWD_DEFINED__
  231typedef interface IOverlayNotify2 IOverlayNotify2;
  232#ifdef __cplusplus
  233interface IOverlayNotify2;
  234#endif /* __cplusplus */
  235#endif
  236
  237#ifndef __IOverlay_FWD_DEFINED__
  238#define __IOverlay_FWD_DEFINED__
  239typedef interface IOverlay IOverlay;
  240#ifdef __cplusplus
  241interface IOverlay;
  242#endif /* __cplusplus */
  243#endif
  244
  245#ifndef __IMediaEventSink_FWD_DEFINED__
  246#define __IMediaEventSink_FWD_DEFINED__
  247typedef interface IMediaEventSink IMediaEventSink;
  248#ifdef __cplusplus
  249interface IMediaEventSink;
  250#endif /* __cplusplus */
  251#endif
  252
  253#ifndef __IFileSourceFilter_FWD_DEFINED__
  254#define __IFileSourceFilter_FWD_DEFINED__
  255typedef interface IFileSourceFilter IFileSourceFilter;
  256#ifdef __cplusplus
  257interface IFileSourceFilter;
  258#endif /* __cplusplus */
  259#endif
  260
  261#ifndef __IFileSinkFilter_FWD_DEFINED__
  262#define __IFileSinkFilter_FWD_DEFINED__
  263typedef interface IFileSinkFilter IFileSinkFilter;
  264#ifdef __cplusplus
  265interface IFileSinkFilter;
  266#endif /* __cplusplus */
  267#endif
  268
  269#ifndef __IFileSinkFilter2_FWD_DEFINED__
  270#define __IFileSinkFilter2_FWD_DEFINED__
  271typedef interface IFileSinkFilter2 IFileSinkFilter2;
  272#ifdef __cplusplus
  273interface IFileSinkFilter2;
  274#endif /* __cplusplus */
  275#endif
  276
  277#ifndef __IGraphBuilder_FWD_DEFINED__
  278#define __IGraphBuilder_FWD_DEFINED__
  279typedef interface IGraphBuilder IGraphBuilder;
  280#ifdef __cplusplus
  281interface IGraphBuilder;
  282#endif /* __cplusplus */
  283#endif
  284
  285#ifndef __ICaptureGraphBuilder_FWD_DEFINED__
  286#define __ICaptureGraphBuilder_FWD_DEFINED__
  287typedef interface ICaptureGraphBuilder ICaptureGraphBuilder;
  288#ifdef __cplusplus
  289interface ICaptureGraphBuilder;
  290#endif /* __cplusplus */
  291#endif
  292
  293#ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__
  294#define __IAMCopyCaptureFileProgress_FWD_DEFINED__
  295typedef interface IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
  296#ifdef __cplusplus
  297interface IAMCopyCaptureFileProgress;
  298#endif /* __cplusplus */
  299#endif
  300
  301#ifndef __ICaptureGraphBuilder2_FWD_DEFINED__
  302#define __ICaptureGraphBuilder2_FWD_DEFINED__
  303typedef interface ICaptureGraphBuilder2 ICaptureGraphBuilder2;
  304#ifdef __cplusplus
  305interface ICaptureGraphBuilder2;
  306#endif /* __cplusplus */
  307#endif
  308
  309#ifndef __IConfigAviMux_FWD_DEFINED__
  310#define __IConfigAviMux_FWD_DEFINED__
  311typedef interface IConfigAviMux IConfigAviMux;
  312#ifdef __cplusplus
  313interface IConfigAviMux;
  314#endif /* __cplusplus */
  315#endif
  316
  317#ifndef __IConfigInterleaving_FWD_DEFINED__
  318#define __IConfigInterleaving_FWD_DEFINED__
  319typedef interface IConfigInterleaving IConfigInterleaving;
  320#ifdef __cplusplus
  321interface IConfigInterleaving;
  322#endif /* __cplusplus */
  323#endif
  324
  325#ifndef __IAMClockSlave_FWD_DEFINED__
  326#define __IAMClockSlave_FWD_DEFINED__
  327typedef interface IAMClockSlave IAMClockSlave;
  328#ifdef __cplusplus
  329interface IAMClockSlave;
  330#endif /* __cplusplus */
  331#endif
  332
  333#ifndef __IAMCertifiedOutputProtection_FWD_DEFINED__
  334#define __IAMCertifiedOutputProtection_FWD_DEFINED__
  335typedef interface IAMCertifiedOutputProtection IAMCertifiedOutputProtection;
  336#ifdef __cplusplus
  337interface IAMCertifiedOutputProtection;
  338#endif /* __cplusplus */
  339#endif
  340
  341#ifndef __IFilterGraph2_FWD_DEFINED__
  342#define __IFilterGraph2_FWD_DEFINED__
  343typedef interface IFilterGraph2 IFilterGraph2;
  344#ifdef __cplusplus
  345interface IFilterGraph2;
  346#endif /* __cplusplus */
  347#endif
  348
  349#ifndef __IStreamBuilder_FWD_DEFINED__
  350#define __IStreamBuilder_FWD_DEFINED__
  351typedef interface IStreamBuilder IStreamBuilder;
  352#ifdef __cplusplus
  353interface IStreamBuilder;
  354#endif /* __cplusplus */
  355#endif
  356
  357#ifndef __IAMStreamConfig_FWD_DEFINED__
  358#define __IAMStreamConfig_FWD_DEFINED__
  359typedef interface IAMStreamConfig IAMStreamConfig;
  360#ifdef __cplusplus
  361interface IAMStreamConfig;
  362#endif /* __cplusplus */
  363#endif
  364
  365#ifndef __IAMVideoProcAmp_FWD_DEFINED__
  366#define __IAMVideoProcAmp_FWD_DEFINED__
  367typedef interface IAMVideoProcAmp IAMVideoProcAmp;
  368#ifdef __cplusplus
  369interface IAMVideoProcAmp;
  370#endif /* __cplusplus */
  371#endif
  372
  373#ifndef __IAsyncReader_FWD_DEFINED__
  374#define __IAsyncReader_FWD_DEFINED__
  375typedef interface IAsyncReader IAsyncReader;
  376#ifdef __cplusplus
  377interface IAsyncReader;
  378#endif /* __cplusplus */
  379#endif
  380
  381#ifndef __IGraphVersion_FWD_DEFINED__
  382#define __IGraphVersion_FWD_DEFINED__
  383typedef interface IGraphVersion IGraphVersion;
  384#ifdef __cplusplus
  385interface IGraphVersion;
  386#endif /* __cplusplus */
  387#endif
  388
  389#ifndef __IResourceConsumer_FWD_DEFINED__
  390#define __IResourceConsumer_FWD_DEFINED__
  391typedef interface IResourceConsumer IResourceConsumer;
  392#ifdef __cplusplus
  393interface IResourceConsumer;
  394#endif /* __cplusplus */
  395#endif
  396
  397#ifndef __IResourceManager_FWD_DEFINED__
  398#define __IResourceManager_FWD_DEFINED__
  399typedef interface IResourceManager IResourceManager;
  400#ifdef __cplusplus
  401interface IResourceManager;
  402#endif /* __cplusplus */
  403#endif
  404
  405#ifndef __IAMStreamControl_FWD_DEFINED__
  406#define __IAMStreamControl_FWD_DEFINED__
  407typedef interface IAMStreamControl IAMStreamControl;
  408#ifdef __cplusplus
  409interface IAMStreamControl;
  410#endif /* __cplusplus */
  411#endif
  412
  413#ifndef __IKsPropertySet_FWD_DEFINED__
  414#define __IKsPropertySet_FWD_DEFINED__
  415typedef interface IKsPropertySet IKsPropertySet;
  416#ifdef __cplusplus
  417interface IKsPropertySet;
  418#endif /* __cplusplus */
  419#endif
  420
  421#ifndef __IMediaPropertyBag_FWD_DEFINED__
  422#define __IMediaPropertyBag_FWD_DEFINED__
  423typedef interface IMediaPropertyBag IMediaPropertyBag;
  424#ifdef __cplusplus
  425interface IMediaPropertyBag;
  426#endif /* __cplusplus */
  427#endif
  428
  429#ifndef __IPersistMediaPropertyBag_FWD_DEFINED__
  430#define __IPersistMediaPropertyBag_FWD_DEFINED__
  431typedef interface IPersistMediaPropertyBag IPersistMediaPropertyBag;
  432#ifdef __cplusplus
  433interface IPersistMediaPropertyBag;
  434#endif /* __cplusplus */
  435#endif
  436
  437#ifndef __ISeekingPassThru_FWD_DEFINED__
  438#define __ISeekingPassThru_FWD_DEFINED__
  439typedef interface ISeekingPassThru ISeekingPassThru;
  440#ifdef __cplusplus
  441interface ISeekingPassThru;
  442#endif /* __cplusplus */
  443#endif
  444
  445#ifndef __IAMFilterMiscFlags_FWD_DEFINED__
  446#define __IAMFilterMiscFlags_FWD_DEFINED__
  447typedef interface IAMFilterMiscFlags IAMFilterMiscFlags;
  448#ifdef __cplusplus
  449interface IAMFilterMiscFlags;
  450#endif /* __cplusplus */
  451#endif
  452
  453#ifndef __IAMGraphBuilderCallback_FWD_DEFINED__
  454#define __IAMGraphBuilderCallback_FWD_DEFINED__
  455typedef interface IAMGraphBuilderCallback IAMGraphBuilderCallback;
  456#ifdef __cplusplus
  457interface IAMGraphBuilderCallback;
  458#endif /* __cplusplus */
  459#endif
  460
  461#ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__
  462#define __IAMVfwCaptureDialogs_FWD_DEFINED__
  463typedef interface IAMVfwCaptureDialogs IAMVfwCaptureDialogs;
  464#ifdef __cplusplus
  465interface IAMVfwCaptureDialogs;
  466#endif /* __cplusplus */
  467#endif
  468
  469#ifndef __IAMCameraControl_FWD_DEFINED__
  470#define __IAMCameraControl_FWD_DEFINED__
  471typedef interface IAMCameraControl IAMCameraControl;
  472#ifdef __cplusplus
  473interface IAMCameraControl;
  474#endif /* __cplusplus */
  475#endif
  476
  477#ifndef __IAMVideoControl_FWD_DEFINED__
  478#define __IAMVideoControl_FWD_DEFINED__
  479typedef interface IAMVideoControl IAMVideoControl;
  480#ifdef __cplusplus
  481interface IAMVideoControl;
  482#endif /* __cplusplus */
  483#endif
  484
  485#ifndef __IAMBufferNegotiation_FWD_DEFINED__
  486#define __IAMBufferNegotiation_FWD_DEFINED__
  487typedef interface IAMBufferNegotiation IAMBufferNegotiation;
  488#ifdef __cplusplus
  489interface IAMBufferNegotiation;
  490#endif /* __cplusplus */
  491#endif
  492
  493#ifndef __IAMDroppedFrames_FWD_DEFINED__
  494#define __IAMDroppedFrames_FWD_DEFINED__
  495typedef interface IAMDroppedFrames IAMDroppedFrames;
  496#ifdef __cplusplus
  497interface IAMDroppedFrames;
  498#endif /* __cplusplus */
  499#endif
  500
  501#ifndef __IAMLatency_FWD_DEFINED__
  502#define __IAMLatency_FWD_DEFINED__
  503typedef interface IAMLatency IAMLatency;
  504#ifdef __cplusplus
  505interface IAMLatency;
  506#endif /* __cplusplus */
  507#endif
  508
  509#ifndef __IAMPushSource_FWD_DEFINED__
  510#define __IAMPushSource_FWD_DEFINED__
  511typedef interface IAMPushSource IAMPushSource;
  512#ifdef __cplusplus
  513interface IAMPushSource;
  514#endif /* __cplusplus */
  515#endif
  516
  517#ifndef __IAMVideoCompression_FWD_DEFINED__
  518#define __IAMVideoCompression_FWD_DEFINED__
  519typedef interface IAMVideoCompression IAMVideoCompression;
  520#ifdef __cplusplus
  521interface IAMVideoCompression;
  522#endif /* __cplusplus */
  523#endif
  524
  525#ifndef __IAMCrossbar_FWD_DEFINED__
  526#define __IAMCrossbar_FWD_DEFINED__
  527typedef interface IAMCrossbar IAMCrossbar;
  528#ifdef __cplusplus
  529interface IAMCrossbar;
  530#endif /* __cplusplus */
  531#endif
  532
  533#ifndef __IAMTunerNotification_FWD_DEFINED__
  534#define __IAMTunerNotification_FWD_DEFINED__
  535typedef interface IAMTunerNotification IAMTunerNotification;
  536#ifdef __cplusplus
  537interface IAMTunerNotification;
  538#endif /* __cplusplus */
  539#endif
  540
  541#ifndef __IAMTuner_FWD_DEFINED__
  542#define __IAMTuner_FWD_DEFINED__
  543typedef interface IAMTuner IAMTuner;
  544#ifdef __cplusplus
  545interface IAMTuner;
  546#endif /* __cplusplus */
  547#endif
  548
  549#ifndef __IAMTVTuner_FWD_DEFINED__
  550#define __IAMTVTuner_FWD_DEFINED__
  551typedef interface IAMTVTuner IAMTVTuner;
  552#ifdef __cplusplus
  553interface IAMTVTuner;
  554#endif /* __cplusplus */
  555#endif
  556
  557#ifndef __IVideoFrameStep_FWD_DEFINED__
  558#define __IVideoFrameStep_FWD_DEFINED__
  559typedef interface IVideoFrameStep IVideoFrameStep;
  560#ifdef __cplusplus
  561interface IVideoFrameStep;
  562#endif /* __cplusplus */
  563#endif
  564
  565#ifndef __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
  566#define __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
  567typedef interface IAMAsyncReaderTimestampScaling IAMAsyncReaderTimestampScaling;
  568#ifdef __cplusplus
  569interface IAMAsyncReaderTimestampScaling;
  570#endif /* __cplusplus */
  571#endif
  572
  573#ifndef __IAMPluginControl_FWD_DEFINED__
  574#define __IAMPluginControl_FWD_DEFINED__
  575typedef interface IAMPluginControl IAMPluginControl;
  576#ifdef __cplusplus
  577interface IAMPluginControl;
  578#endif /* __cplusplus */
  579#endif
  580
  581#ifndef __IPinConnection_FWD_DEFINED__
  582#define __IPinConnection_FWD_DEFINED__
  583typedef interface IPinConnection IPinConnection;
  584#ifdef __cplusplus
  585interface IPinConnection;
  586#endif /* __cplusplus */
  587#endif
  588
  589#ifndef __IPinFlowControl_FWD_DEFINED__
  590#define __IPinFlowControl_FWD_DEFINED__
  591typedef interface IPinFlowControl IPinFlowControl;
  592#ifdef __cplusplus
  593interface IPinFlowControl;
  594#endif /* __cplusplus */
  595#endif
  596
  597#ifndef __IGraphConfig_FWD_DEFINED__
  598#define __IGraphConfig_FWD_DEFINED__
  599typedef interface IGraphConfig IGraphConfig;
  600#ifdef __cplusplus
  601interface IGraphConfig;
  602#endif /* __cplusplus */
  603#endif
  604
  605#ifndef __IGraphConfigCallback_FWD_DEFINED__
  606#define __IGraphConfigCallback_FWD_DEFINED__
  607typedef interface IGraphConfigCallback IGraphConfigCallback;
  608#ifdef __cplusplus
  609interface IGraphConfigCallback;
  610#endif /* __cplusplus */
  611#endif
  612
  613#ifndef __IFilterChain_FWD_DEFINED__
  614#define __IFilterChain_FWD_DEFINED__
  615typedef interface IFilterChain IFilterChain;
  616#ifdef __cplusplus
  617interface 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
  628extern "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
  657DEFINE_GUID(IID_ICreateDevEnum, 0x29840822, 0x5b84, 0x11d0, 0xbd,0x3b, 0x00,0xa0,0xc9,0x11,0xce,0x86);
  658#if defined(__cplusplus) && !defined(CINTERFACE)
  659MIDL_INTERFACE("29840822-5b84-11d0-bd3b-00a0c911ce86")
  660ICreateDevEnum : 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
  672typedef 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
  697interface 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 ***/
  711static inline HRESULT ICreateDevEnum_QueryInterface(ICreateDevEnum* This,REFIID riid,void **ppvObject) {
  712    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  713}
  714static inline ULONG ICreateDevEnum_AddRef(ICreateDevEnum* This) {
  715    return This->lpVtbl->AddRef(This);
  716}
  717static inline ULONG ICreateDevEnum_Release(ICreateDevEnum* This) {
  718    return This->lpVtbl->Release(This);
  719}
  720/*** ICreateDevEnum methods ***/
  721static 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
  748typedef 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
  760typedef 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
  770typedef LONGLONG REFERENCE_TIME;
  771#endif
  772
  773#ifndef REFTIME_DEFINED
  774#define REFTIME_DEFINED
  775typedef double REFTIME;
  776#endif
  777
  778typedef DWORD_PTR HSEMAPHORE;
  779typedef DWORD_PTR HEVENT;
  780
  781typedef 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__
  790typedef interface IAMovieSetup IAMovieSetup;
  791#ifdef __cplusplus
  792interface IAMovieSetup;
  793#endif /* __cplusplus */
  794#endif
  795
  796#ifndef __IEnumFilters_FWD_DEFINED__
  797#define __IEnumFilters_FWD_DEFINED__
  798typedef interface IEnumFilters IEnumFilters;
  799#ifdef __cplusplus
  800interface IEnumFilters;
  801#endif /* __cplusplus */
  802#endif
  803
  804#ifndef __IEnumMediaTypes_FWD_DEFINED__
  805#define __IEnumMediaTypes_FWD_DEFINED__
  806typedef interface IEnumMediaTypes IEnumMediaTypes;
  807#ifdef __cplusplus
  808interface IEnumMediaTypes;
  809#endif /* __cplusplus */
  810#endif
  811
  812#ifndef __IEnumPins_FWD_DEFINED__
  813#define __IEnumPins_FWD_DEFINED__
  814typedef interface IEnumPins IEnumPins;
  815#ifdef __cplusplus
  816interface IEnumPins;
  817#endif /* __cplusplus */
  818#endif
  819
  820#ifndef __IBaseFilter_FWD_DEFINED__
  821#define __IBaseFilter_FWD_DEFINED__
  822typedef interface IBaseFilter IBaseFilter;
  823#ifdef __cplusplus
  824interface IBaseFilter;
  825#endif /* __cplusplus */
  826#endif
  827
  828#ifndef __IFilterGraph_FWD_DEFINED__
  829#define __IFilterGraph_FWD_DEFINED__
  830typedef interface IFilterGraph IFilterGraph;
  831#ifdef __cplusplus
  832interface IFilterGraph;
  833#endif /* __cplusplus */
  834#endif
  835
  836#ifndef __IMediaFilter_FWD_DEFINED__
  837#define __IMediaFilter_FWD_DEFINED__
  838typedef interface IMediaFilter IMediaFilter;
  839#ifdef __cplusplus
  840interface IMediaFilter;
  841#endif /* __cplusplus */
  842#endif
  843
  844#ifndef __IMediaSample_FWD_DEFINED__
  845#define __IMediaSample_FWD_DEFINED__
  846typedef interface IMediaSample IMediaSample;
  847#ifdef __cplusplus
  848interface IMediaSample;
  849#endif /* __cplusplus */
  850#endif
  851
  852#ifndef __IMemAllocator_FWD_DEFINED__
  853#define __IMemAllocator_FWD_DEFINED__
  854typedef interface IMemAllocator IMemAllocator;
  855#ifdef __cplusplus
  856interface IMemAllocator;
  857#endif /* __cplusplus */
  858#endif
  859
  860#ifndef __IMemAllocatorCallbackTemp_FWD_DEFINED__
  861#define __IMemAllocatorCallbackTemp_FWD_DEFINED__
  862typedef interface IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp;
  863#ifdef __cplusplus
  864interface IMemAllocatorCallbackTemp;
  865#endif /* __cplusplus */
  866#endif
  867
  868#ifndef __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
  869#define __IMemAllocatorNotifyCallbackTemp_FWD_DEFINED__
  870typedef interface IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp;
  871#ifdef __cplusplus
  872interface IMemAllocatorNotifyCallbackTemp;
  873#endif /* __cplusplus */
  874#endif
  875
  876#ifndef __IMemInputPin_FWD_DEFINED__
  877#define __IMemInputPin_FWD_DEFINED__
  878typedef interface IMemInputPin IMemInputPin;
  879#ifdef __cplusplus
  880interface IMemInputPin;
  881#endif /* __cplusplus */
  882#endif
  883
  884#ifndef __IPin_FWD_DEFINED__
  885#define __IPin_FWD_DEFINED__
  886typedef interface IPin IPin;
  887#ifdef __cplusplus
  888interface IPin;
  889#endif /* __cplusplus */
  890#endif
  891
  892#ifndef __IReferenceClock_FWD_DEFINED__
  893#define __IReferenceClock_FWD_DEFINED__
  894typedef interface IReferenceClock IReferenceClock;
  895#ifdef __cplusplus
  896interface IReferenceClock;
  897#endif /* __cplusplus */
  898#endif
  899
  900
  901/*****************************************************************************
  902 * IPin interface
  903 */
  904#ifndef __IPin_INTERFACE_DEFINED__
  905#define __IPin_INTERFACE_DEFINED__
  906
  907typedef struct _PinInfo {
  908    IBaseFilter *pFilter;
  909    PIN_DIRECTION dir;
  910    WCHAR achName[128];
  911} PIN_INFO;
  912
  913DEFINE_GUID(IID_IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
  914#if defined(__cplusplus) && !defined(CINTERFACE)
  915MIDL_INTERFACE("56a86891-0ad4-11ce-b03a-0020af0ba770")
  916IPin : 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
  973typedef 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
 1053interface 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 ***/
 1081static inline HRESULT IPin_QueryInterface(IPin* This,REFIID riid,void **ppvObject) {
 1082    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1083}
 1084static inline ULONG IPin_AddRef(IPin* This) {
 1085    return This->lpVtbl->AddRef(This);
 1086}
 1087static inline ULONG IPin_Release(IPin* This) {
 1088    return This->lpVtbl->Release(This);
 1089}
 1090/*** IPin methods ***/
 1091static inline HRESULT IPin_Connect(IPin* This,IPin *pReceivePin,const AM_MEDIA_TYPE *pmt) {
 1092    return This->lpVtbl->Connect(This,pReceivePin,pmt);
 1093}
 1094static inline HRESULT IPin_ReceiveConnection(IPin* This,IPin *pConnector,const AM_MEDIA_TYPE *pmt) {
 1095    return This->lpVtbl->ReceiveConnection(This,pConnector,pmt);
 1096}
 1097static inline HRESULT IPin_Disconnect(IPin* This) {
 1098    return This->lpVtbl->Disconnect(This);
 1099}
 1100static inline HRESULT IPin_ConnectedTo(IPin* This,IPin **pPin) {
 1101    return This->lpVtbl->ConnectedTo(This,pPin);
 1102}
 1103static inline HRESULT IPin_ConnectionMediaType(IPin* This,AM_MEDIA_TYPE *pmt) {
 1104    return This->lpVtbl->ConnectionMediaType(This,pmt);
 1105}
 1106static inline HRESULT IPin_QueryPinInfo(IPin* This,PIN_INFO *pInfo) {
 1107    return This->lpVtbl->QueryPinInfo(This,pInfo);
 1108}
 1109static inline HRESULT IPin_QueryDirection(IPin* This,PIN_DIRECTION *pPinDir) {
 1110    return This->lpVtbl->QueryDirection(This,pPinDir);
 1111}
 1112static inline HRESULT IPin_QueryId(IPin* This,LPWSTR *Id) {
 1113    return This->lpVtbl->QueryId(This,Id);
 1114}
 1115static inline HRESULT IPin_QueryAccept(IPin* This,const AM_MEDIA_TYPE *pmt) {
 1116    return This->lpVtbl->QueryAccept(This,pmt);
 1117}
 1118static inline HRESULT IPin_EnumMediaTypes(IPin* This,IEnumMediaTypes **ppEnum) {
 1119    return This->lpVtbl->EnumMediaTypes(This,ppEnum);
 1120}
 1121static inline HRESULT IPin_QueryInternalConnections(IPin* This,IPin **apPin,ULONG *nPin) {
 1122    return This->lpVtbl->QueryInternalConnections(This,apPin,nPin);
 1123}
 1124static inline HRESULT IPin_EndOfStream(IPin* This) {
 1125    return This->lpVtbl->EndOfStream(This);
 1126}
 1127static inline HRESULT IPin_BeginFlush(IPin* This) {
 1128    return This->lpVtbl->BeginFlush(This);
 1129}
 1130static inline HRESULT IPin_EndFlush(IPin* This) {
 1131    return This->lpVtbl->EndFlush(This);
 1132}
 1133static 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
 1144typedef IPin *PPIN;
 1145
 1146/*****************************************************************************
 1147 * IEnumPins interface
 1148 */
 1149#ifndef __IEnumPins_INTERFACE_DEFINED__
 1150#define __IEnumPins_INTERFACE_DEFINED__
 1151
 1152DEFINE_GUID(IID_IEnumPins, 0x56a86892, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
 1153#if defined(__cplusplus) && !defined(CINTERFACE)
 1154MIDL_INTERFACE("56a86892-0ad4-11ce-b03a-0020af0ba770")
 1155IEnumPins : 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
 1176typedef 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
 1212interface 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 ***/
 1229static inline HRESULT IEnumPins_QueryInterface(IEnumPins* This,REFIID riid,void **ppvObject) {
 1230    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1231}
 1232static inline ULONG IEnumPins_AddRef(IEnumPins* This) {
 1233    return This->lpVtbl->AddRef(This);
 1234}
 1235static inline ULONG IEnumPins_Release(IEnumPins* This) {
 1236    return This->lpVtbl->Release(This);
 1237}
 1238/*** IEnumPins methods ***/
 1239static inline HRESULT IEnumPins_Next(IEnumPins* This,ULONG cPins,IPin **ppPins,ULONG *pcFetched) {
 1240    return This->lpVtbl->Next(This,cPins,ppPins,pcFetched);
 1241}
 1242static inline HRESULT IEnumPins_Skip(IEnumPins* This,ULONG cPins) {
 1243    return This->lpVtbl->Skip(This,cPins);
 1244}
 1245static inline HRESULT IEnumPins_Reset(IEnumPins* This) {
 1246    return This->lpVtbl->Reset(This);
 1247}
 1248static 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
 1259typedef IEnumPins *PENUMPINS;
 1260
 1261/*****************************************************************************
 1262 * IEnumMediaTypes interface
 1263 */
 1264#ifndef __IEnumMediaTypes_INTERFACE_DEFINED__
 1265#define __IEnumMediaTypes_INTERFACE_DEFINED__
 1266
 1267DEFINE_GUID(IID_IEnumMediaTypes, 0x89c31040, 0x846b, 0x11ce, 0x97,0xd3, 0x00,0xaa,0x00,0x55,0x59,0x5a);
 1268#if defined(__cplusplus) && !defined(CINTERFACE)
 1269MIDL_INTERFACE("89c31040-846b-11ce-97d3-00aa0055595a")
 1270IEnumMediaTypes : 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
 1291typedef 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
 1327interface 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 ***/
 1344static inline HRESULT IEnumMediaTypes_QueryInterface(IEnumMediaTypes* This,REFIID riid,void **ppvObject) {
 1345    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1346}
 1347static inline ULONG IEnumMediaTypes_AddRef(IEnumMediaTypes* This) {
 1348    return This->lpVtbl->AddRef(This);
 1349}
 1350static inline ULONG IEnumMediaTypes_Release(IEnumMediaTypes* This) {
 1351    return This->lpVtbl->Release(This);
 1352}
 1353/*** IEnumMediaTypes methods ***/
 1354static inline HRESULT IEnumMediaTypes_Next(IEnumMediaTypes* This,ULONG cMediaTypes,AM_MEDIA_TYPE **ppMediaTypes,ULONG *pcFetched) {
 1355    return This->lpVtbl->Next(This,cMediaTypes,ppMediaTypes,pcFetched);
 1356}
 1357static inline HRESULT IEnumMediaTypes_Skip(IEnumMediaTypes* This,ULONG cMediaTypes) {
 1358    return This->lpVtbl->Skip(This,cMediaTypes);
 1359}
 1360static inline HRESULT IEnumMediaTypes_Reset(IEnumMediaTypes* This) {
 1361    return This->lpVtbl->Reset(This);
 1362}
 1363static 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
 1374typedef IEnumMediaTypes *PENUMMEDIATYPES;
 1375
 1376/*****************************************************************************
 1377 * IFilterGraph interface
 1378 */
 1379#ifndef __IFilterGraph_INTERFACE_DEFINED__
 1380#define __IFilterGraph_INTERFACE_DEFINED__
 1381
 1382DEFINE_GUID(IID_IFilterGraph, 0x56a8689f, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
 1383#if defined(__cplusplus) && !defined(CINTERFACE)
 1384MIDL_INTERFACE("56a8689f-0ad4-11ce-b03a-0020af0ba770")
 1385IFilterGraph : 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
 1420typedef 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
 1474interface 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 ***/
 1495static inline HRESULT IFilterGraph_QueryInterface(IFilterGraph* This,REFIID riid,void **ppvObject) {
 1496    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1497}
 1498static inline ULONG IFilterGraph_AddRef(IFilterGraph* This) {
 1499    return This->lpVtbl->AddRef(This);
 1500}
 1501static inline ULONG IFilterGraph_Release(IFilterGraph* This) {
 1502    return This->lpVtbl->Release(This);
 1503}
 1504/*** IFilterGraph methods ***/
 1505static inline HRESULT IFilterGraph_AddFilter(IFilterGraph* This,IBaseFilter *pFilter,LPCWSTR pName) {
 1506    return This->lpVtbl->AddFilter(This,pFilter,pName);
 1507}
 1508static inline HRESULT IFilterGraph_RemoveFilter(IFilterGraph* This,IBaseFilter *pFilter) {
 1509    return This->lpVtbl->RemoveFilter(This,pFilter);
 1510}
 1511static inline HRESULT IFilterGraph_EnumFilters(IFilterGraph* This,IEnumFilters **ppEnum) {
 1512    return This->lpVtbl->EnumFilters(This,ppEnum);
 1513}
 1514static inline HRESULT IFilterGraph_FindFilterByName(IFilterGraph* This,LPCWSTR pName,IBaseFilter **ppFilter) {
 1515    return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
 1516}
 1517static 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}
 1520static inline HRESULT IFilterGraph_Reconnect(IFilterGraph* This,IPin *ppin) {
 1521    return This->lpVtbl->Reconnect(This,ppin);
 1522}
 1523static inline HRESULT IFilterGraph_Disconnect(IFilterGraph* This,IPin *ppin) {
 1524    return This->lpVtbl->Disconnect(This,ppin);
 1525}
 1526static 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
 1537typedef IFilterGraph *PFILTERGRAPH;
 1538
 1539/*****************************************************************************
 1540 * IEnumFilters interface
 1541 */
 1542#ifndef __IEnumFilters_INTERFACE_DEFINED__
 1543#define __IEnumFilters_INTERFACE_DEFINED__
 1544
 1545DEFINE_GUID(IID_IEnumFilters, 0x56a86893, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
 1546#if defined(__cplusplus) && !defined(CINTERFACE)
 1547MIDL_INTERFACE("56a86893-0ad4-11ce-b03a-0020af0ba770")
 1548IEnumFilters : 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
 1569typedef 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
 1605interface 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 ***/
 1622static inline HRESULT IEnumFilters_QueryInterface(IEnumFilters* This,REFIID riid,void **ppvObject) {
 1623    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1624}
 1625static inline ULONG IEnumFilters_AddRef(IEnumFilters* This) {
 1626    return This->lpVtbl->AddRef(This);
 1627}
 1628static inline ULONG IEnumFilters_Release(IEnumFilters* This) {
 1629    return This->lpVtbl->Release(This);
 1630}
 1631/*** IEnumFilters methods ***/
 1632static inline HRESULT IEnumFilters_Next(IEnumFilters* This,ULONG cFilters,IBaseFilter **ppFilter,ULONG *pcFetched) {
 1633    return This->lpVtbl->Next(This,cFilters,ppFilter,pcFetched);
 1634}
 1635static inline HRESULT IEnumFilters_Skip(IEnumFilters* This,ULONG cFilters) {
 1636    return This->lpVtbl->Skip(This,cFilters);
 1637}
 1638static inline HRESULT IEnumFilters_Reset(IEnumFilters* This) {
 1639    return This->lpVtbl->Reset(This);
 1640}
 1641static 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
 1652typedef IEnumFilters *PENUMFILTERS;
 1653
 1654/*****************************************************************************
 1655 * IMediaFilter interface
 1656 */
 1657#ifndef __IMediaFilter_INTERFACE_DEFINED__
 1658#define __IMediaFilter_INTERFACE_DEFINED__
 1659
 1660typedef enum _FilterState {
 1661    State_Stopped = 0,
 1662    State_Paused = 1,
 1663    State_Running = 2
 1664} FILTER_STATE;
 1665
 1666DEFINE_GUID(IID_IMediaFilter, 0x56a86899, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
 1667#if defined(__cplusplus) && !defined(CINTERFACE)
 1668MIDL_INTERFACE("56a86899-0ad4-11ce-b03a-0020af0ba770")
 1669IMediaFilter : 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
 1695typedef 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
 1742interface 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 ***/
 1763static inline HRESULT IMediaFilter_QueryInterface(IMediaFilter* This,REFIID riid,void **ppvObject) {
 1764    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1765}
 1766static inline ULONG IMediaFilter_AddRef(IMediaFilter* This) {
 1767    return This->lpVtbl->AddRef(This);
 1768}
 1769static inline ULONG IMediaFilter_Release(IMediaFilter* This) {
 1770    return This->lpVtbl->Release(This);
 1771}
 1772/*** IPersist methods ***/
 1773static inline HRESULT IMediaFilter_GetClassID(IMediaFilter* This,CLSID *pClassID) {
 1774    return This->lpVtbl->GetClassID(This,pClassID);
 1775}
 1776/*** IMediaFilter methods ***/
 1777static inline HRESULT IMediaFilter_Stop(IMediaFilter* This) {
 1778    return This->lpVtbl->Stop(This);
 1779}
 1780static inline HRESULT IMediaFilter_Pause(IMediaFilter* This) {
 1781    return This->lpVtbl->Pause(This);
 1782}
 1783static inline HRESULT IMediaFilter_Run(IMediaFilter* This,REFERENCE_TIME tStart) {
 1784    return This->lpVtbl->Run(This,tStart);
 1785}
 1786static inline HRESULT IMediaFilter_GetState(IMediaFilter* This,DWORD dwMilliSecsTimeout,FILTER_STATE *State) {
 1787    return This->lpVtbl->GetState(This,dwMilliSecsTimeout,State);
 1788}
 1789static inline HRESULT IMediaFilter_SetSyncSource(IMediaFilter* This,IReferenceClock *pClock) {
 1790    return This->lpVtbl->SetSyncSource(This,pClock);
 1791}
 1792static 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
 1803typedef IMediaFilter *PMEDIAFILTER;
 1804
 1805/*****************************************************************************
 1806 * IBaseFilter interface
 1807 */
 1808#ifndef __IBaseFilter_INTERFACE_DEFINED__
 1809#define __IBaseFilter_INTERFACE_DEFINED__
 1810
 1811typedef struct _FilterInfo {
 1812    WCHAR achName[128];
 1813    IFilterGraph *pGraph;
 1814} FILTER_INFO;
 1815
 1816DEFINE_GUID(IID_IBaseFilter, 0x56a86895, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
 1817#if defined(__cplusplus) && !defined(CINTERFACE)
 1818MIDL_INTERFACE("56a86895-0ad4-11ce-b03a-0020af0ba770")
 1819IBaseFilter : 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
 1843typedef 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
 1913interface 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 ***/
 1940static inline HRESULT IBaseFilter_QueryInterface(IBaseFilter* This,REFIID riid,void **ppvObject) {
 1941    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1942}
 1943static inline ULONG IBaseFilter_AddRef(IBaseFilter* This) {
 1944    return This->lpVtbl->AddRef(This);
 1945}
 1946static inline ULONG IBaseFilter_Release(IBaseFilter* This) {
 1947    return This->lpVtbl->Release(This);
 1948}
 1949/*** IPersist methods ***/
 1950static inline HRESULT IBaseFilter_GetClassID(IBaseFilter* This,CLSID *pClassID) {
 1951    return This->lpVtbl->GetClassID(This,pClassID);
 1952}
 1953/*** IMediaFilter methods ***/
 1954static inline HRESULT IBaseFilter_Stop(IBaseFilter* This) {
 1955    return This->lpVtbl->Stop(This);
 1956}
 1957static inline HRESULT IBaseFilter_Pause(IBaseFilter* This) {
 1958    return This->lpVtbl->Pause(This);
 1959}
 1960static inline HRESULT IBaseFilter_Run(IBaseFilter* This,REFERENCE_TIME tStart) {
 1961    return This->lpVtbl->Run(This,tStart);
 1962}
 1963static inline HRESULT IBaseFilter_GetState(IBaseFilter* This,DWORD dwMilliSecsTimeout,FILTER_STATE *State) {
 1964    return This->lpVtbl->GetState(This,dwMilliSecsTimeout,State);
 1965}
 1966static inline HRESULT IBaseFilter_SetSyncSource(IBaseFilter* This,IReferenceClock *pClock) {
 1967    return This->lpVtbl->SetSyncSource(This,pClock);
 1968}
 1969static inline HRESULT IBaseFilter_GetSyncSource(IBaseFilter* This,IReferenceClock **pClock) {
 1970    return This->lpVtbl->GetSyncSource(This,pClock);
 1971}
 1972/*** IBaseFilter methods ***/
 1973static inline HRESULT IBaseFilter_EnumPins(IBaseFilter* This,IEnumPins **ppEnum) {
 1974    return This->lpVtbl->EnumPins(This,ppEnum);
 1975}
 1976static inline HRESULT IBaseFilter_FindPin(IBaseFilter* This,LPCWSTR Id,IPin **ppPin) {
 1977    return This->lpVtbl->FindPin(This,Id,ppPin);
 1978}
 1979static inline HRESULT IBaseFilter_QueryFilterInfo(IBaseFilter* This,FILTER_INFO *pInfo) {
 1980    return This->lpVtbl->QueryFilterInfo(This,pInfo);
 1981}
 1982static inline HRESULT IBaseFilter_JoinFilterGraph(IBaseFilter* This,IFilterGraph *pGraph,LPCWSTR pName) {
 1983    return This->lpVtbl->JoinFilterGraph(This,pGraph,pName);
 1984}
 1985static 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
 1996typedef IBaseFilter *PFILTER;
 1997
 1998/*****************************************************************************
 1999 * IReferenceClock interface
 2000 */
 2001#ifndef __IReferenceClock_INTERFACE_DEFINED__
 2002#define __IReferenceClock_INTERFACE_DEFINED__
 2003
 2004DEFINE_GUID(IID_IReferenceClock, 0x56a86897, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
 2005#if defined(__cplusplus) && !defined(CINTERFACE)
 2006MIDL_INTERFACE("56a86897-0ad4-11ce-b03a-0020af0ba770")
 2007IReferenceClock : 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
 2032typedef 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
 2073interface 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 ***/
 2090static inline HRESULT IReferenceClock_QueryInterface(IReferenceClock* This,REFIID riid,void **ppvObject) {
 2091    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2092}
 2093static inline ULONG IReferenceClock_AddRef(IReferenceClock* This) {
 2094    return This->lpVtbl->AddRef(This);
 2095}
 2096static inline ULONG IReferenceClock_Release(IReferenceClock* This) {
 2097    return This->lpVtbl->Release(This);
 2098}
 2099/*** IReferenceClock methods ***/
 2100static inline HRESULT IReferenceClock_GetTime(IReferenceClock* This,REFERENCE_TIME *pTime) {
 2101    return This->lpVtbl->GetTime(This,pTime);
 2102}
 2103static 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}
 2106static 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}
 2109static 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
 2120typedef IReferenceClock *PREFERENCECLOCK;
 2121
 2122/*****************************************************************************
 2123 * IReferenceClockTimerControl interface
 2124 */
 2125#ifndef __IReferenceClockTimerControl_INTERFACE_DEFINED__
 2126#define __IReferenceClockTimerControl_INTERFACE_DEFINED__
 2127
 2128DEFINE_GUID(IID_IReferenceClockTimerControl, 0xebec459c, 0x2eca, 0x4d42, 0xa8,0xaf, 0x30,0xdf,0x55,0x76,0x14,0xb8);
 2129#if defined(__cplusplus) && !defined(CINTERFACE)
 2130MIDL_INTERFACE("ebec459c-2eca-4d42-a8af-30df557614b8")
 2131IReferenceClockTimerControl : 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
 2144typedef 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
 2171interface 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 ***/
 2186static inline HRESULT IReferenceClockTimerControl_QueryInterface(IReferenceClockTimerControl* This,REFIID riid,void **ppvObject) {
 2187    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2188}
 2189static inline ULONG IReferenceClockTimerControl_AddRef(IReferenceClockTimerControl* This) {
 2190    return This->lpVtbl->AddRef(This);
 2191}
 2192static inline ULONG IReferenceClockTimerControl_Release(IReferenceClockTimerControl* This) {
 2193    return This->lpVtbl->Release(This);
 2194}
 2195/*** IReferenceClockTimerControl methods ***/
 2196static inline HRESULT IReferenceClockTimerControl_SetDefaultTimerResolution(IReferenceClockTimerControl* This,REFERENCE_TIME timerResolution) {
 2197    return This->lpVtbl->SetDefaultTimerResolution(This,timerResolution);
 2198}
 2199static 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
 2217DEFINE_GUID(IID_IReferenceClock2, 0x36b73885, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
 2218#if defined(__cplusplus) && !defined(CINTERFACE)
 2219MIDL_INTERFACE("36b73885-c2c8-11cf-8b46-00805f6cef60")
 2220IReferenceClock2 : 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
 2227typedef 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
 2268interface 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 ***/
 2285static inline HRESULT IReferenceClock2_QueryInterface(IReferenceClock2* This,REFIID riid,void **ppvObject) {
 2286    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2287}
 2288static inline ULONG IReferenceClock2_AddRef(IReferenceClock2* This) {
 2289    return This->lpVtbl->AddRef(This);
 2290}
 2291static inline ULONG IReferenceClock2_Release(IReferenceClock2* This) {
 2292    return This->lpVtbl->Release(This);
 2293}
 2294/*** IReferenceClock methods ***/
 2295static inline HRESULT IReferenceClock2_GetTime(IReferenceClock2* This,REFERENCE_TIME *pTime) {
 2296    return This->lpVtbl->GetTime(This,pTime);
 2297}
 2298static 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}
 2301static 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}
 2304static 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
 2315typedef IReferenceClock2 *PREFERENCECLOCK2;
 2316
 2317/*****************************************************************************
 2318 * IMediaSample interface
 2319 */
 2320#ifndef __IMediaSample_INTERFACE_DEFINED__
 2321#define __IMediaSample_INTERFACE_DEFINED__
 2322
 2323DEFINE_GUID(IID_IMediaSample, 0x56a8689a, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
 2324#if defined(__cplusplus) && !defined(CINTERFACE)
 2325MIDL_INTERFACE("56a8689a-0ad4-11ce-b03a-0020af0ba770")
 2326IMediaSample : 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
 2385typedef 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
 2467interface 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 ***/
 2496static inline HRESULT IMediaSample_QueryInterface(IMediaSample* This,REFIID riid,void **ppvObject) {
 2497    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2498}
 2499static inline ULONG IMediaSample_AddRef(IMediaSample* This) {
 2500    return This->lpVtbl->AddRef(This);
 2501}
 2502static inline ULONG IMediaSample_Release(IMediaSample* This) {
 2503    return This->lpVtbl->Release(This);
 2504}
 2505/*** IMediaSample methods ***/
 2506static inline HRESULT IMediaSample_GetPointer(IMediaSample* This,BYTE **ppBuffer) {
 2507    return This->lpVtbl->GetPointer(This,ppBuffer);
 2508}
 2509static inline LONG IMediaSample_GetSize(IMediaSample* This) {
 2510    return This->lpVtbl->GetSize(This);
 2511}
 2512static inline HRESULT IMediaSample_GetTime(IMediaSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
 2513    return This->lpVtbl->GetTime(This,pTimeStart,pTimeEnd);
 2514}
 2515static inline HRESULT IMediaSample_SetTime(IMediaSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
 2516    return This->lpVtbl->SetTime(This,pTimeStart,pTimeEnd);
 2517}
 2518static inline HRESULT IMediaSample_IsSyncPoint(IMediaSample* This) {
 2519    return This->lpVtbl->IsSyncPoint(This);
 2520}
 2521static inline HRESULT IMediaSample_SetSyncPoint(IMediaSample* This,WINBOOL bIsSyncPoint) {
 2522    return This->lpVtbl->SetSyncPoint(This,bIsSyncPoint);
 2523}
 2524static inline HRESULT IMediaSample_IsPreroll(IMediaSample* This) {
 2525    return This->lpVtbl->IsPreroll(This);
 2526}
 2527static inline HRESULT IMediaSample_SetPreroll(IMediaSample* This,WINBOOL bIsPreroll) {
 2528    return This->lpVtbl->SetPreroll(This,bIsPreroll);
 2529}
 2530static inline LONG IMediaSample_GetActualDataLength(IMediaSample* This) {
 2531    return This->lpVtbl->GetActualDataLength(This);
 2532}
 2533static inline HRESULT IMediaSample_SetActualDataLength(IMediaSample* This,LONG a) {
 2534    return This->lpVtbl->SetActualDataLength(This,a);
 2535}
 2536static inline HRESULT IMediaSample_GetMediaType(IMediaSample* This,AM_MEDIA_TYPE **ppMediaType) {
 2537    return This->lpVtbl->GetMediaType(This,ppMediaType);
 2538}
 2539static inline HRESULT IMediaSample_SetMediaType(IMediaSample* This,AM_MEDIA_TYPE *pMediaType) {
 2540    return This->lpVtbl->SetMediaType(This,pMediaType);
 2541}
 2542static inline HRESULT IMediaSample_IsDiscontinuity(IMediaSample* This) {
 2543    return This->lpVtbl->IsDiscontinuity(This);
 2544}
 2545static inline HRESULT IMediaSample_SetDiscontinuity(IMediaSample* This,WINBOOL bDiscontinuity) {
 2546    return This->lpVtbl->SetDiscontinuity(This,bDiscontinuity);
 2547}
 2548static inline HRESULT IMediaSample_GetMediaTime(IMediaSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
 2549    return This->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd);
 2550}
 2551static 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
 2562typedef IMediaSample *PMEDIASAMPLE;
 2563
 2564enum 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
 2578typedef 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
 2597DEFINE_GUID(IID_IMediaSample2, 0x36b73884, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
 2598#if defined(__cplusplus) && !defined(CINTERFACE)
 2599MIDL_INTERFACE("36b73884-c2c8-11cf-8b46-00805f6cef60")
 2600IMediaSample2 : 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
 2615typedef 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
 2708interface 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 ***/
 2740static inline HRESULT IMediaSample2_QueryInterface(IMediaSample2* This,REFIID riid,void **ppvObject) {
 2741    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2742}
 2743static inline ULONG IMediaSample2_AddRef(IMediaSample2* This) {
 2744    return This->lpVtbl->AddRef(This);
 2745}
 2746static inline ULONG IMediaSample2_Release(IMediaSample2* This) {
 2747    return This->lpVtbl->Release(This);
 2748}
 2749/*** IMediaSample methods ***/
 2750static inline HRESULT IMediaSample2_GetPointer(IMediaSample2* This,BYTE **ppBuffer) {
 2751    return This->lpVtbl->GetPointer(This,ppBuffer);
 2752}
 2753static inline LONG IMediaSample2_GetSize(IMediaSample2* This) {
 2754    return This->lpVtbl->GetSize(This);
 2755}
 2756static inline HRESULT IMediaSample2_GetTime(IMediaSample2* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
 2757    return This->lpVtbl->GetTime(This,pTimeStart,pTimeEnd);
 2758}
 2759static inline HRESULT IMediaSample2_SetTime(IMediaSample2* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
 2760    return This->lpVtbl->SetTime(This,pTimeStart,pTimeEnd);
 2761}
 2762static inline HRESULT IMediaSample2_IsSyncPoint(IMediaSample2* This) {
 2763    return This->lpVtbl->IsSyncPoint(This);
 2764}
 2765static inline HRESULT IMediaSample2_SetSyncPoint(IMediaSample2* This,WINBOOL bIsSyncPoint) {
 2766    return This->lpVtbl->SetSyncPoint(This,bIsSyncPoint);
 2767}
 2768static inline HRESULT IMediaSample2_IsPreroll(IMediaSample2* This) {
 2769    return This->lpVtbl->IsPreroll(This);
 2770}
 2771static inline HRESULT IMediaSample2_SetPreroll(IMediaSample2* This,WINBOOL bIsPreroll) {
 2772    return This->lpVtbl->SetPreroll(This,bIsPreroll);
 2773}
 2774static inline LONG IMediaSample2_GetActualDataLength(IMediaSample2* This) {
 2775    return This->lpVtbl->GetActualDataLength(This);
 2776}
 2777static inline HRESULT IMediaSample2_SetActualDataLength(IMediaSample2* This,LONG a) {
 2778    return This->lpVtbl->SetActualDataLength(This,a);
 2779}
 2780static inline HRESULT IMediaSample2_GetMediaType(IMediaSample2* This,AM_MEDIA_TYPE **ppMediaType) {
 2781    return This->lpVtbl->GetMediaType(This,ppMediaType);
 2782}
 2783static inline HRESULT IMediaSample2_SetMediaType(IMediaSample2* This,AM_MEDIA_TYPE *pMediaType) {
 2784    return This->lpVtbl->SetMediaType(This,pMediaType);
 2785}
 2786static inline HRESULT IMediaSample2_IsDiscontinuity(IMediaSample2* This) {
 2787    return This->lpVtbl->IsDiscontinuity(This);
 2788}
 2789static inline HRESULT IMediaSample2_SetDiscontinuity(IMediaSample2* This,WINBOOL bDiscontinuity) {
 2790    return This->lpVtbl->SetDiscontinuity(This,bDiscontinuity);
 2791}
 2792static inline HRESULT IMediaSample2_GetMediaTime(IMediaSample2* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
 2793    return This->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd);
 2794}
 2795static inline HRESULT IMediaSample2_SetMediaTime(IMediaSample2* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
 2796    return This->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd);
 2797}
 2798/*** IMediaSample2 methods ***/
 2799static inline HRESULT IMediaSample2_GetProperties(IMediaSample2* This,DWORD cbProperties,BYTE *pbProperties) {
 2800    return This->lpVtbl->GetProperties(This,cbProperties,pbProperties);
 2801}
 2802static 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
 2813typedef IMediaSample2 *PMEDIASAMPLE2;
 2814
 2815/*****************************************************************************
 2816 * IMediaSample2Config interface
 2817 */
 2818#ifndef __IMediaSample2Config_INTERFACE_DEFINED__
 2819#define __IMediaSample2Config_INTERFACE_DEFINED__
 2820
 2821DEFINE_GUID(IID_IMediaSample2Config, 0x68961e68, 0x832b, 0x41ea, 0xbc,0x91, 0x63,0x59,0x3f,0x3e,0x70,0xe3);
 2822#if defined(__cplusplus) && !defined(CINTERFACE)
 2823MIDL_INTERFACE("68961e68-832b-41ea-bc91-63593f3e70e3")
 2824IMediaSample2Config : 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
 2834typedef 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
 2857interface 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 ***/
 2871static inline HRESULT IMediaSample2Config_QueryInterface(IMediaSample2Config* This,REFIID riid,void **ppvObject) {
 2872    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2873}
 2874static inline ULONG IMediaSample2Config_AddRef(IMediaSample2Config* This) {
 2875    return This->lpVtbl->AddRef(This);
 2876}
 2877static inline ULONG IMediaSample2Config_Release(IMediaSample2Config* This) {
 2878    return This->lpVtbl->Release(This);
 2879}
 2880/*** IMediaSample2Config methods ***/
 2881static 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
 2904DEFINE_GUID(IID_IMemAllocator, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
 2905#if defined(__cplusplus) && !defined(CINTERFACE)
 2906MIDL_INTERFACE("56a8689c-0ad4-11ce-b03a-0020af0ba770")
 2907IMemAllocator : 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
 2936typedef 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
 2981interface 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 ***/
 3000static inline HRESULT IMemAllocator_QueryInterface(IMemAllocator* This,REFIID riid,void **ppvObject) {
 3001    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3002}
 3003static inline ULONG IMemAllocator_AddRef(IMemAllocator* This) {
 3004    return This->lpVtbl->AddRef(This);
 3005}
 3006static inline ULONG IMemAllocator_Release(IMemAllocator* This) {
 3007    return This->lpVtbl->Release(This);
 3008}
 3009/*** IMemAllocator methods ***/
 3010static inline HRESULT IMemAllocator_SetProperties(IMemAllocator* This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual) {
 3011    return This->lpVtbl->SetProperties(This,pRequest,pActual);
 3012}
 3013static inline HRESULT IMemAllocator_GetProperties(IMemAllocator* This,ALLOCATOR_PROPERTIES *pProps) {
 3014    return This->lpVtbl->GetProperties(This,pProps);
 3015}
 3016static inline HRESULT IMemAllocator_Commit(IMemAllocator* This) {
 3017    return This->lpVtbl->Commit(This);
 3018}
 3019static inline HRESULT IMemAllocator_Decommit(IMemAllocator* This) {
 3020    return This->lpVtbl->Decommit(This);
 3021}
 3022static 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}
 3025static 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
 3036typedef IMemAllocator *PMEMALLOCATOR;
 3037
 3038/*****************************************************************************
 3039 * IMemAllocatorCallbackTemp interface
 3040 */
 3041#ifndef __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
 3042#define __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__
 3043
 3044DEFINE_GUID(IID_IMemAllocatorCallbackTemp, 0x379a0cf0, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
 3045#if defined(__cplusplus) && !defined(CINTERFACE)
 3046MIDL_INTERFACE("379a0cf0-c1de-11d2-abf5-00a0c905f375")
 3047IMemAllocatorCallbackTemp : 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
 3060typedef 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
 3114interface 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 ***/
 3136static inline HRESULT IMemAllocatorCallbackTemp_QueryInterface(IMemAllocatorCallbackTemp* This,REFIID riid,void **ppvObject) {
 3137    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3138}
 3139static inline ULONG IMemAllocatorCallbackTemp_AddRef(IMemAllocatorCallbackTemp* This) {
 3140    return This->lpVtbl->AddRef(This);
 3141}
 3142static inline ULONG IMemAllocatorCallbackTemp_Release(IMemAllocatorCallbackTemp* This) {
 3143    return This->lpVtbl->Release(This);
 3144}
 3145/*** IMemAllocator methods ***/
 3146static inline HRESULT IMemAllocatorCallbackTemp_SetProperties(IMemAllocatorCallbackTemp* This,ALLOCATOR_PROPERTIES *pRequest,ALLOCATOR_PROPERTIES *pActual) {
 3147    return This->lpVtbl->SetProperties(This,pRequest,pActual);
 3148}
 3149static inline HRESULT IMemAllocatorCallbackTemp_GetProperties(IMemAllocatorCallbackTemp* This,ALLOCATOR_PROPERTIES *pProps) {
 3150    return This->lpVtbl->GetProperties(This,pProps);
 3151}
 3152static inline HRESULT IMemAllocatorCallbackTemp_Commit(IMemAllocatorCallbackTemp* This) {
 3153    return This->lpVtbl->Commit(This);
 3154}
 3155static inline HRESULT IMemAllocatorCallbackTemp_Decommit(IMemAllocatorCallbackTemp* This) {
 3156    return This->lpVtbl->Decommit(This);
 3157}
 3158static 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}
 3161static inline HRESULT IMemAllocatorCallbackTemp_ReleaseBuffer(IMemAllocatorCallbackTemp* This,IMediaSample *pBuffer) {
 3162    return This->lpVtbl->ReleaseBuffer(This,pBuffer);
 3163}
 3164/*** IMemAllocatorCallbackTemp methods ***/
 3165static inline HRESULT IMemAllocatorCallbackTemp_SetNotify(IMemAllocatorCallbackTemp* This,IMemAllocatorNotifyCallbackTemp *pNotify) {
 3166    return This->lpVtbl->SetNotify(This,pNotify);
 3167}
 3168static 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
 3186DEFINE_GUID(IID_IMemAllocatorNotifyCallbackTemp, 0x92980b30, 0xc1de, 0x11d2, 0xab,0xf5, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
 3187#if defined(__cplusplus) && !defined(CINTERFACE)
 3188MIDL_INTERFACE("92980b30-c1de-11d2-abf5-00a0c905f375")
 3189IMemAllocatorNotifyCallbackTemp : 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
 3199typedef 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
 3221interface 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 ***/
 3235static inline HRESULT IMemAllocatorNotifyCallbackTemp_QueryInterface(IMemAllocatorNotifyCallbackTemp* This,REFIID riid,void **ppvObject) {
 3236    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3237}
 3238static inline ULONG IMemAllocatorNotifyCallbackTemp_AddRef(IMemAllocatorNotifyCallbackTemp* This) {
 3239    return This->lpVtbl->AddRef(This);
 3240}
 3241static inline ULONG IMemAllocatorNotifyCallbackTemp_Release(IMemAllocatorNotifyCallbackTemp* This) {
 3242    return This->lpVtbl->Release(This);
 3243}
 3244/*** IMemAllocatorNotifyCallbackTemp methods ***/
 3245static 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
 3263DEFINE_GUID(IID_IMemInputPin, 0x56a8689d, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
 3264#if defined(__cplusplus) && !defined(CINTERFACE)
 3265MIDL_INTERFACE("56a8689d-0ad4-11ce-b03a-0020af0ba770")
 3266IMemInputPin : 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
 3294typedef 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
 3339interface 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 ***/
 3358static inline HRESULT IMemInputPin_QueryInterface(IMemInputPin* This,REFIID riid,void **ppvObject) {
 3359    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3360}
 3361static inline ULONG IMemInputPin_AddRef(IMemInputPin* This) {
 3362    return This->lpVtbl->AddRef(This);
 3363}
 3364static inline ULONG IMemInputPin_Release(IMemInputPin* This) {
 3365    return This->lpVtbl->Release(This);
 3366}
 3367/*** IMemInputPin methods ***/
 3368static inline HRESULT IMemInputPin_GetAllocator(IMemInputPin* This,IMemAllocator **ppAllocator) {
 3369    return This->lpVtbl->GetAllocator(This,ppAllocator);
 3370}
 3371static inline HRESULT IMemInputPin_NotifyAllocator(IMemInputPin* This,IMemAllocator *pAllocator,WINBOOL bReadOnly) {
 3372    return This->lpVtbl->NotifyAllocator(This,pAllocator,bReadOnly);
 3373}
 3374static inline HRESULT IMemInputPin_GetAllocatorRequirements(IMemInputPin* This,ALLOCATOR_PROPERTIES *pProps) {
 3375    return This->lpVtbl->GetAllocatorRequirements(This,pProps);
 3376}
 3377static inline HRESULT IMemInputPin_Receive(IMemInputPin* This,IMediaSample *pSample) {
 3378    return This->lpVtbl->Receive(This,pSample);
 3379}
 3380static inline HRESULT IMemInputPin_ReceiveMultiple(IMemInputPin* This,IMediaSample **pSamples,LONG nSamples,LONG *nSamplesProcessed) {
 3381    return This->lpVtbl->ReceiveMultiple(This,pSamples,nSamples,nSamplesProcessed);
 3382}
 3383static 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
 3394typedef IMemInputPin *PMEMINPUTPIN;
 3395
 3396/*****************************************************************************
 3397 * IAMovieSetup interface
 3398 */
 3399#ifndef __IAMovieSetup_INTERFACE_DEFINED__
 3400#define __IAMovieSetup_INTERFACE_DEFINED__
 3401
 3402DEFINE_GUID(IID_IAMovieSetup, 0xa3d8cec0, 0x7e5a, 0x11cf, 0xbb,0xc5, 0x00,0x80,0x5f,0x6c,0xef,0x20);
 3403#if defined(__cplusplus) && !defined(CINTERFACE)
 3404MIDL_INTERFACE("a3d8cec0-7e5a-11cf-bbc5-00805f6cef20")
 3405IAMovieSetup : 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
 3418typedef 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
 3443interface 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 ***/
 3458static inline HRESULT IAMovieSetup_QueryInterface(IAMovieSetup* This,REFIID riid,void **ppvObject) {
 3459    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3460}
 3461static inline ULONG IAMovieSetup_AddRef(IAMovieSetup* This) {
 3462    return This->lpVtbl->AddRef(This);
 3463}
 3464static inline ULONG IAMovieSetup_Release(IAMovieSetup* This) {
 3465    return This->lpVtbl->Release(This);
 3466}
 3467/*** IAMovieSetup methods ***/
 3468static inline HRESULT IAMovieSetup_Register(IAMovieSetup* This) {
 3469    return This->lpVtbl->Register(This);
 3470}
 3471static 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
 3482typedef IAMovieSetup *PAMOVIESETUP;
 3483
 3484typedef 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
 3496typedef 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
 3514DEFINE_GUID(IID_IMediaSeeking, 0x36b73880, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
 3515#if defined(__cplusplus) && !defined(CINTERFACE)
 3516MIDL_INTERFACE("36b73880-c2c8-11cf-8b46-00805f6cef60")
 3517IMediaSeeking : 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
 3583typedef 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
 3678interface 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 ***/
 3708static inline HRESULT IMediaSeeking_QueryInterface(IMediaSeeking* This,REFIID riid,void **ppvObject) {
 3709    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3710}
 3711static inline ULONG IMediaSeeking_AddRef(IMediaSeeking* This) {
 3712    return This->lpVtbl->AddRef(This);
 3713}
 3714static inline ULONG IMediaSeeking_Release(IMediaSeeking* This) {
 3715    return This->lpVtbl->Release(This);
 3716}
 3717/*** IMediaSeeking methods ***/
 3718static inline HRESULT IMediaSeeking_GetCapabilities(IMediaSeeking* This,DWORD *pCapabilities) {
 3719    return This->lpVtbl->GetCapabilities(This,pCapabilities);
 3720}
 3721static inline HRESULT IMediaSeeking_CheckCapabilities(IMediaSeeking* This,DWORD *pCapabilities) {
 3722    return This->lpVtbl->CheckCapabilities(This,pCapabilities);
 3723}
 3724static inline HRESULT IMediaSeeking_IsFormatSupported(IMediaSeeking* This,const GUID *pFormat) {
 3725    return This->lpVtbl->IsFormatSupported(This,pFormat);
 3726}
 3727static inline HRESULT IMediaSeeking_QueryPreferredFormat(IMediaSeeking* This,GUID *pFormat) {
 3728    return This->lpVtbl->QueryPreferredFormat(This,pFormat);
 3729}
 3730static inline HRESULT IMediaSeeking_GetTimeFormat(IMediaSeeking* This,GUID *pFormat) {
 3731    return This->lpVtbl->GetTimeFormat(This,pFormat);
 3732}
 3733static inline HRESULT IMediaSeeking_IsUsingTimeFormat(IMediaSeeking* This,const GUID *pFormat) {
 3734    return This->lpVtbl->IsUsingTimeFormat(This,pFormat);
 3735}
 3736static inline HRESULT IMediaSeeking_SetTimeFormat(IMediaSeeking* This,const GUID *pFormat) {
 3737    return This->lpVtbl->SetTimeFormat(This,pFormat);
 3738}
 3739static inline HRESULT IMediaSeeking_GetDuration(IMediaSeeking* This,LONGLONG *pDuration) {
 3740    return This->lpVtbl->GetDuration(This,pDuration);
 3741}
 3742static inline HRESULT IMediaSeeking_GetStopPosition(IMediaSeeking* This,LONGLONG *pStop) {
 3743    return This->lpVtbl->GetStopPosition(This,pStop);
 3744}
 3745static inline HRESULT IMediaSeeking_GetCurrentPosition(IMediaSeeking* This,LONGLONG *pCurrent) {
 3746    return This->lpVtbl->GetCurrentPosition(This,pCurrent);
 3747}
 3748static 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}
 3751static 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}
 3754static inline HRESULT IMediaSeeking_GetPositions(IMediaSeeking* This,LONGLONG *pCurrent,LONGLONG *pStop) {
 3755    return This->lpVtbl->GetPositions(This,pCurrent,pStop);
 3756}
 3757static inline HRESULT IMediaSeeking_GetAvailable(IMediaSeeking* This,LONGLONG *pEarliest,LONGLONG *pLatest) {
 3758    return This->lpVtbl->GetAvailable(This,pEarliest,pLatest);
 3759}
 3760static inline HRESULT IMediaSeeking_SetRate(IMediaSeeking* This,double dRate) {
 3761    return This->lpVtbl->SetRate(This,dRate);
 3762}
 3763static inline HRESULT IMediaSeeking_GetRate(IMediaSeeking* This,double *pdRate) {
 3764    return This->lpVtbl->GetRate(This,pdRate);
 3765}
 3766static 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
 3777typedef IMediaSeeking *PMEDIASEEKING;
 3778
 3779enum tagAM_MEDIAEVENT_FLAGS {
 3780  AM_MEDIAEVENT_NONOTIFY = 0x1
 3781};
 3782
 3783#endif
 3784#ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
 3785#define __IAMAnalogVideoDecoder_FWD_DEFINED__
 3786typedef interface IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
 3787#ifdef __cplusplus
 3788interface IAMAnalogVideoDecoder;
 3789#endif /* __cplusplus */
 3790#endif
 3791
 3792#ifndef __IAMAnalogVideoEncoder_FWD_DEFINED__
 3793#define __IAMAnalogVideoEncoder_FWD_DEFINED__
 3794typedef interface IAMAnalogVideoEncoder IAMAnalogVideoEncoder;
 3795#ifdef __cplusplus
 3796interface IAMAnalogVideoEncoder;
 3797#endif /* __cplusplus */
 3798#endif
 3799
 3800#ifndef __IAMAudioInputMixer_FWD_DEFINED__
 3801#define __IAMAudioInputMixer_FWD_DEFINED__
 3802typedef interface IAMAudioInputMixer IAMAudioInputMixer;
 3803#ifdef __cplusplus
 3804interface IAMAudioInputMixer;
 3805#endif /* __cplusplus */
 3806#endif
 3807
 3808#ifndef __IAMAudioRendererStats_FWD_DEFINED__
 3809#define __IAMAudioRendererStats_FWD_DEFINED__
 3810typedef interface IAMAudioRendererStats IAMAudioRendererStats;
 3811#ifdef __cplusplus
 3812interface IAMAudioRendererStats;
 3813#endif /* __cplusplus */
 3814#endif
 3815
 3816#ifndef __IAMBufferNegotiation_FWD_DEFINED__
 3817#define __IAMBufferNegotiation_FWD_DEFINED__
 3818typedef interface IAMBufferNegotiation IAMBufferNegotiation;
 3819#ifdef __cplusplus
 3820interface IAMBufferNegotiation;
 3821#endif /* __cplusplus */
 3822#endif
 3823
 3824#ifndef __IAMCameraControl_FWD_DEFINED__
 3825#define __IAMCameraControl_FWD_DEFINED__
 3826typedef interface IAMCameraControl IAMCameraControl;
 3827#ifdef __cplusplus
 3828interface IAMCameraControl;
 3829#endif /* __cplusplus */
 3830#endif
 3831
 3832#ifndef __IAMCertifiedOutputProtection_FWD_DEFINED__
 3833#define __IAMCertifiedOutputProtection_FWD_DEFINED__
 3834typedef interface IAMCertifiedOutputProtection IAMCertifiedOutputProtection;
 3835#ifdef __cplusplus
 3836interface IAMCertifiedOutputProtection;
 3837#endif /* __cplusplus */
 3838#endif
 3839
 3840#ifndef __IAMClockSlave_FWD_DEFINED__
 3841#define __IAMClockSlave_FWD_DEFINED__
 3842typedef interface IAMClockSlave IAMClockSlave;
 3843#ifdef __cplusplus
 3844interface IAMClockSlave;
 3845#endif /* __cplusplus */
 3846#endif
 3847
 3848#ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__
 3849#define __IAMCopyCaptureFileProgress_FWD_DEFINED__
 3850typedef interface IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
 3851#ifdef __cplusplus
 3852interface IAMCopyCaptureFileProgress;
 3853#endif /* __cplusplus */
 3854#endif
 3855
 3856#ifndef __IAMCrossbar_FWD_DEFINED__
 3857#define __IAMCrossbar_FWD_DEFINED__
 3858typedef interface IAMCrossbar IAMCrossbar;
 3859#ifdef __cplusplus
 3860interface IAMCrossbar;
 3861#endif /* __cplusplus */
 3862#endif
 3863
 3864#ifndef __IAMDevMemoryAllocator_FWD_DEFINED__
 3865#define __IAMDevMemoryAllocator_FWD_DEFINED__
 3866typedef interface IAMDevMemoryAllocator IAMDevMemoryAllocator;
 3867#ifdef __cplusplus
 3868interface IAMDevMemoryAllocator;
 3869#endif /* __cplusplus */
 3870#endif
 3871
 3872#ifndef __IAMDevMemoryControl_FWD_DEFINED__
 3873#define __IAMDevMemoryControl_FWD_DEFINED__
 3874typedef interface IAMDevMemoryControl IAMDevMemoryControl;
 3875#ifdef __cplusplus
 3876interface IAMDevMemoryControl;
 3877#endif /* __cplusplus */
 3878#endif
 3879
 3880#ifndef __IAMDroppedFrames_FWD_DEFINED__
 3881#define __IAMDroppedFrames_FWD_DEFINED__
 3882typedef interface IAMDroppedFrames IAMDroppedFrames;
 3883#ifdef __cplusplus
 3884interface IAMDroppedFrames;
 3885#endif /* __cplusplus */
 3886#endif
 3887
 3888#ifndef __IAMExtDevice_FWD_DEFINED__
 3889#define __IAMExtDevice_FWD_DEFINED__
 3890typedef interface IAMExtDevice IAMExtDevice;
 3891#ifdef __cplusplus
 3892interface IAMExtDevice;
 3893#endif /* __cplusplus */
 3894#endif
 3895
 3896#ifndef __IAMExtTransport_FWD_DEFINED__
 3897#define __IAMExtTransport_FWD_DEFINED__
 3898typedef interface IAMExtTransport IAMExtTransport;
 3899#ifdef __cplusplus
 3900interface IAMExtTransport;
 3901#endif /* __cplusplus */
 3902#endif
 3903
 3904#ifndef __IAMGraphStreams_FWD_DEFINED__
 3905#define __IAMGraphStreams_FWD_DEFINED__
 3906typedef interface IAMGraphStreams IAMGraphStreams;
 3907#ifdef __cplusplus
 3908interface IAMGraphStreams;
 3909#endif /* __cplusplus */
 3910#endif
 3911
 3912#ifndef __IAMLatency_FWD_DEFINED__
 3913#define __IAMLatency_FWD_DEFINED__
 3914typedef interface IAMLatency IAMLatency;
 3915#ifdef __cplusplus
 3916interface IAMLatency;
 3917#endif /* __cplusplus */
 3918#endif
 3919
 3920#ifndef __IAMOpenProgress_FWD_DEFINED__
 3921#define __IAMOpenProgress_FWD_DEFINED__
 3922typedef interface IAMOpenProgress IAMOpenProgress;
 3923#ifdef __cplusplus
 3924interface IAMOpenProgress;
 3925#endif /* __cplusplus */
 3926#endif
 3927
 3928#ifndef __IAMOverlayFX_FWD_DEFINED__
 3929#define __IAMOverlayFX_FWD_DEFINED__
 3930typedef interface IAMOverlayFX IAMOverlayFX;
 3931#ifdef __cplusplus
 3932interface IAMOverlayFX;
 3933#endif /* __cplusplus */
 3934#endif
 3935
 3936#ifndef __IAMPhysicalPinInfo_FWD_DEFINED__
 3937#define __IAMPhysicalPinInfo_FWD_DEFINED__
 3938typedef interface IAMPhysicalPinInfo IAMPhysicalPinInfo;
 3939#ifdef __cplusplus
 3940interface IAMPhysicalPinInfo;
 3941#endif /* __cplusplus */
 3942#endif
 3943
 3944#ifndef __IAMPushSource_FWD_DEFINED__
 3945#define __IAMPushSource_FWD_DEFINED__
 3946typedef interface IAMPushSource IAMPushSource;
 3947#ifdef __cplusplus
 3948interface IAMPushSource;
 3949#endif /* __cplusplus */
 3950#endif
 3951
 3952#ifndef __IAMStreamConfig_FWD_DEFINED__
 3953#define __IAMStreamConfig_FWD_DEFINED__
 3954typedef interface IAMStreamConfig IAMStreamConfig;
 3955#ifdef __cplusplus
 3956interface IAMStreamConfig;
 3957#endif /* __cplusplus */
 3958#endif
 3959
 3960#ifndef __IAMTimecodeDisplay_FWD_DEFINED__
 3961#define __IAMTimecodeDisplay_FWD_DEFINED__
 3962typedef interface IAMTimecodeDisplay IAMTimecodeDisplay;
 3963#ifdef __cplusplus
 3964interface IAMTimecodeDisplay;
 3965#endif /* __cplusplus */
 3966#endif
 3967
 3968#ifndef __IAMTimecodeGenerator_FWD_DEFINED__
 3969#define __IAMTimecodeGenerator_FWD_DEFINED__
 3970typedef interface IAMTimecodeGenerator IAMTimecodeGenerator;
 3971#ifdef __cplusplus
 3972interface IAMTimecodeGenerator;
 3973#endif /* __cplusplus */
 3974#endif
 3975
 3976#ifndef __IAMTimecodeReader_FWD_DEFINED__
 3977#define __IAMTimecodeReader_FWD_DEFINED__
 3978typedef interface IAMTimecodeReader IAMTimecodeReader;
 3979#ifdef __cplusplus
 3980interface IAMTimecodeReader;
 3981#endif /* __cplusplus */
 3982#endif
 3983
 3984#ifndef __IAMTVTuner_FWD_DEFINED__
 3985#define __IAMTVTuner_FWD_DEFINED__
 3986typedef interface IAMTVTuner IAMTVTuner;
 3987#ifdef __cplusplus
 3988interface IAMTVTuner;
 3989#endif /* __cplusplus */
 3990#endif
 3991
 3992#ifndef __IAMVfwCaptureDialogs_FWD_DEFINED__
 3993#define __IAMVfwCaptureDialogs_FWD_DEFINED__
 3994typedef interface IAMVfwCaptureDialogs IAMVfwCaptureDialogs;
 3995#ifdef __cplusplus
 3996interface IAMVfwCaptureDialogs;
 3997#endif /* __cplusplus */
 3998#endif
 3999
 4000#ifndef __IAMVfwCompressDialogs_FWD_DEFINED__
 4001#define __IAMVfwCompressDialogs_FWD_DEFINED__
 4002typedef interface IAMVfwCompressDialogs IAMVfwCompressDialogs;
 4003#ifdef __cplusplus
 4004interface IAMVfwCompressDialogs;
 4005#endif /* __cplusplus */
 4006#endif
 4007
 4008#ifndef __IAMVideoCompression_FWD_DEFINED__
 4009#define __IAMVideoCompression_FWD_DEFINED__
 4010typedef interface IAMVideoCompression IAMVideoCompression;
 4011#ifdef __cplusplus
 4012interface IAMVideoCompression;
 4013#endif /* __cplusplus */
 4014#endif
 4015
 4016#ifndef __IAMVideoDecimationProperties_FWD_DEFINED__
 4017#define __IAMVideoDecimationProperties_FWD_DEFINED__
 4018typedef interface IAMVideoDecimationProperties IAMVideoDecimationProperties;
 4019#ifdef __cplusplus
 4020interface IAMVideoDecimationProperties;
 4021#endif /* __cplusplus */
 4022#endif
 4023
 4024#ifndef __IAMVideoProcAmp_FWD_DEFINED__
 4025#define __IAMVideoProcAmp_FWD_DEFINED__
 4026typedef interface IAMVideoProcAmp IAMVideoProcAmp;
 4027#ifdef __cplusplus
 4028interface IAMVideoProcAmp;
 4029#endif /* __cplusplus */
 4030#endif
 4031
 4032#ifndef __IAMGraphBuilderCallback_FWD_DEFINED__
 4033#define __IAMGraphBuilderCallback_FWD_DEFINED__
 4034typedef interface IAMGraphBuilderCallback IAMGraphBuilderCallback;
 4035#ifdef __cplusplus
 4036interface IAMGraphBuilderCallback;
 4037#endif /* __cplusplus */
 4038#endif
 4039
 4040#ifndef __ICaptureGraphBuilder_FWD_DEFINED__
 4041#define __ICaptureGraphBuilder_FWD_DEFINED__
 4042typedef interface ICaptureGraphBuilder ICaptureGraphBuilder;
 4043#ifdef __cplusplus
 4044interface ICaptureGraphBuilder;
 4045#endif /* __cplusplus */
 4046#endif
 4047
 4048#ifndef __ICaptureGraphBuilder2_FWD_DEFINED__
 4049#define __ICaptureGraphBuilder2_FWD_DEFINED__
 4050typedef interface ICaptureGraphBuilder2 ICaptureGraphBuilder2;
 4051#ifdef __cplusplus
 4052interface ICaptureGraphBuilder2;
 4053#endif /* __cplusplus */
 4054#endif
 4055
 4056#ifndef __IConfigAviMux_FWD_DEFINED__
 4057#define __IConfigAviMux_FWD_DEFINED__
 4058typedef interface IConfigAviMux IConfigAviMux;
 4059#ifdef __cplusplus
 4060interface IConfigAviMux;
 4061#endif /* __cplusplus */
 4062#endif
 4063
 4064#ifndef __IConfigInterleaving_FWD_DEFINED__
 4065#define __IConfigInterleaving_FWD_DEFINED__
 4066typedef interface IConfigInterleaving IConfigInterleaving;
 4067#ifdef __cplusplus
 4068interface IConfigInterleaving;
 4069#endif /* __cplusplus */
 4070#endif
 4071
 4072#ifndef __IDecimateVideoImage_FWD_DEFINED__
 4073#define __IDecimateVideoImage_FWD_DEFINED__
 4074typedef interface IDecimateVideoImage IDecimateVideoImage;
 4075#ifdef __cplusplus
 4076interface IDecimateVideoImage;
 4077#endif /* __cplusplus */
 4078#endif
 4079
 4080#ifndef __IDrawVideoImage_FWD_DEFINED__
 4081#define __IDrawVideoImage_FWD_DEFINED__
 4082typedef interface IDrawVideoImage IDrawVideoImage;
 4083#ifdef __cplusplus
 4084interface IDrawVideoImage;
 4085#endif /* __cplusplus */
 4086#endif
 4087
 4088#ifndef __IEnumRegFilters_FWD_DEFINED__
 4089#define __IEnumRegFilters_FWD_DEFINED__
 4090typedef interface IEnumRegFilters IEnumRegFilters;
 4091#ifdef __cplusplus
 4092interface IEnumRegFilters;
 4093#endif /* __cplusplus */
 4094#endif
 4095
 4096#ifndef __IEnumStreamIdMap_FWD_DEFINED__
 4097#define __IEnumStreamIdMap_FWD_DEFINED__
 4098typedef interface IEnumStreamIdMap IEnumStreamIdMap;
 4099#ifdef __cplusplus
 4100interface IEnumStreamIdMap;
 4101#endif /* __cplusplus */
 4102#endif
 4103
 4104#ifndef __IFileSourceFilter_FWD_DEFINED__
 4105#define __IFileSourceFilter_FWD_DEFINED__
 4106typedef interface IFileSourceFilter IFileSourceFilter;
 4107#ifdef __cplusplus
 4108interface IFileSourceFilter;
 4109#endif /* __cplusplus */
 4110#endif
 4111
 4112#ifndef __IFileSinkFilter_FWD_DEFINED__
 4113#define __IFileSinkFilter_FWD_DEFINED__
 4114typedef interface IFileSinkFilter IFileSinkFilter;
 4115#ifdef __cplusplus
 4116interface IFileSinkFilter;
 4117#endif /* __cplusplus */
 4118#endif
 4119
 4120#ifndef __IFileSinkFilter2_FWD_DEFINED__
 4121#define __IFileSinkFilter2_FWD_DEFINED__
 4122typedef interface IFileSinkFilter2 IFileSinkFilter2;
 4123#ifdef __cplusplus
 4124interface IFileSinkFilter2;
 4125#endif /* __cplusplus */
 4126#endif
 4127
 4128#ifndef __IFilterMapper_FWD_DEFINED__
 4129#define __IFilterMapper_FWD_DEFINED__
 4130typedef interface IFilterMapper IFilterMapper;
 4131#ifdef __cplusplus
 4132interface IFilterMapper;
 4133#endif /* __cplusplus */
 4134#endif
 4135
 4136#ifndef __IFilterMapper2_FWD_DEFINED__
 4137#define __IFilterMapper2_FWD_DEFINED__
 4138typedef interface IFilterMapper2 IFilterMapper2;
 4139#ifdef __cplusplus
 4140interface IFilterMapper2;
 4141#endif /* __cplusplus */
 4142#endif
 4143
 4144#ifndef __IGraphBuilder_FWD_DEFINED__
 4145#define __IGraphBuilder_FWD_DEFINED__
 4146typedef interface IGraphBuilder IGraphBuilder;
 4147#ifdef __cplusplus
 4148interface IGraphBuilder;
 4149#endif /* __cplusplus */
 4150#endif
 4151
 4152#ifndef __IKsPropertySet_FWD_DEFINED__
 4153#define __IKsPropertySet_FWD_DEFINED__
 4154typedef interface IKsPropertySet IKsPropertySet;
 4155#ifdef __cplusplus
 4156interface IKsPropertySet;
 4157#endif /* __cplusplus */
 4158#endif
 4159
 4160#ifndef __IMediaEventSink_FWD_DEFINED__
 4161#define __IMediaEventSink_FWD_DEFINED__
 4162typedef interface IMediaEventSink IMediaEventSink;
 4163#ifdef __cplusplus
 4164interface IMediaEventSink;
 4165#endif /* __cplusplus */
 4166#endif
 4167
 4168#ifndef __IMpeg2Demultiplexer_FWD_DEFINED__
 4169#define __IMpeg2Demultiplexer_FWD_DEFINED__
 4170typedef interface IMpeg2Demultiplexer IMpeg2Demultiplexer;
 4171#ifdef __cplusplus
 4172interface IMpeg2Demultiplexer;
 4173#endif /* __cplusplus */
 4174#endif
 4175
 4176#ifndef __IMPEG2StreamIdMap_FWD_DEFINED__
 4177#define __IMPEG2StreamIdMap_FWD_DEFINED__
 4178typedef interface IMPEG2StreamIdMap IMPEG2StreamIdMap;
 4179#ifdef __cplusplus
 4180interface IMPEG2StreamIdMap;
 4181#endif /* __cplusplus */
 4182#endif
 4183
 4184#ifndef __IOverlay_FWD_DEFINED__
 4185#define __IOverlay_FWD_DEFINED__
 4186typedef interface IOverlay IOverlay;
 4187#ifdef __cplusplus
 4188interface IOverlay;
 4189#endif /* __cplusplus */
 4190#endif
 4191
 4192#ifndef __IOverlayNotify_FWD_DEFINED__
 4193#define __IOverlayNotify_FWD_DEFINED__
 4194typedef interface IOverlayNotify IOverlayNotify;
 4195#ifdef __cplusplus
 4196interface IOverlayNotify;
 4197#endif /* __cplusplus */
 4198#endif
 4199
 4200#ifndef __IOverlayNotify2_FWD_DEFINED__
 4201#define __IOverlayNotify2_FWD_DEFINED__
 4202typedef interface IOverlayNotify2 IOverlayNotify2;
 4203#ifdef __cplusplus
 4204interface IOverlayNotify2;
 4205#endif /* __cplusplus */
 4206#endif
 4207
 4208#ifndef __IQualityControl_FWD_DEFINED__
 4209#define __IQualityControl_FWD_DEFINED__
 4210typedef interface IQualityControl IQualityControl;
 4211#ifdef __cplusplus
 4212interface IQualityControl;
 4213#endif /* __cplusplus */
 4214#endif
 4215
 4216#ifndef __ISeekingPassThru_FWD_DEFINED__
 4217#define __ISeekingPassThru_FWD_DEFINED__
 4218typedef interface ISeekingPassThru ISeekingPassThru;
 4219#ifdef __cplusplus
 4220interface ISeekingPassThru;
 4221#endif /* __cplusplus */
 4222#endif
 4223
 4224typedef 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;
 4250typedef enum tagTunerInputType {
 4251    TunerInputCable = 0,
 4252    TunerInputAntenna = 1
 4253} TunerInputType;
 4254typedef struct __WIDL_strmif_generated_name_0000000F {
 4255    CLSID Clsid;
 4256    LPWSTR Name;
 4257} REGFILTER;
 4258typedef 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
 4275DEFINE_GUID(IID_IEnumRegFilters, 0x56a868a4, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
 4276#if defined(__cplusplus) && !defined(CINTERFACE)
 4277MIDL_INTERFACE("56a868a4-0ad4-11ce-b03a-0020af0ba770")
 4278IEnumRegFilters : 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
 4299typedef 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
 4335interface 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 ***/
 4352static inline HRESULT IEnumRegFilters_QueryInterface(IEnumRegFilters* This,REFIID riid,void **ppvObject) {
 4353    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4354}
 4355static inline ULONG IEnumRegFilters_AddRef(IEnumRegFilters* This) {
 4356    return This->lpVtbl->AddRef(This);
 4357}
 4358static inline ULONG IEnumRegFilters_Release(IEnumRegFilters* This) {
 4359    return This->lpVtbl->Release(This);
 4360}
 4361/*** IEnumRegFilters methods ***/
 4362static inline HRESULT IEnumRegFilters_Next(IEnumRegFilters* This,ULONG cFilters,REGFILTER **apRegFilter,ULONG *pcFetched) {
 4363    return This->lpVtbl->Next(This,cFilters,apRegFilter,pcFetched);
 4364}
 4365static inline HRESULT IEnumRegFilters_Skip(IEnumRegFilters* This,ULONG cFilters) {
 4366    return This->lpVtbl->Skip(This,cFilters);
 4367}
 4368static inline HRESULT IEnumRegFilters_Reset(IEnumRegFilters* This) {
 4369    return This->lpVtbl->Reset(This);
 4370}
 4371static 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
 4382typedef IEnumRegFilters *PENUMREGFILTERS;
 4383/*****************************************************************************
 4384 * IFilterMapper interface
 4385 */
 4386#ifndef __IFilterMapper_INTERFACE_DEFINED__
 4387#define __IFilterMapper_INTERFACE_DEFINED__
 4388
 4389enum {
 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};
 4397DEFINE_GUID(IID_IFilterMapper, 0x56a868a3, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
 4398#if defined(__cplusplus) && !defined(CINTERFACE)
 4399MIDL_INTERFACE("56a868a3-0ad4-11ce-b03a-0020af0ba770")
 4400IFilterMapper : 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
 4454typedef 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
 4528interface 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 ***/
 4549static inline HRESULT IFilterMapper_QueryInterface(IFilterMapper* This,REFIID riid,void **ppvObject) {
 4550    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4551}
 4552static inline ULONG IFilterMapper_AddRef(IFilterMapper* This) {
 4553    return This->lpVtbl->AddRef(This);
 4554}
 4555static inline ULONG IFilterMapper_Release(IFilterMapper* This) {
 4556    return This->lpVtbl->Release(This);
 4557}
 4558/*** IFilterMapper methods ***/
 4559static inline HRESULT IFilterMapper_RegisterFilter(IFilterMapper* This,CLSID clsid,LPCWSTR Name,DWORD dwMerit) {
 4560    return This->lpVtbl->RegisterFilter(This,clsid,Name,dwMerit);
 4561}
 4562static inline HRESULT IFilterMapper_RegisterFilterInstance(IFilterMapper* This,CLSID clsid,LPCWSTR Name,CLSID *MRId) {
 4563    return This->lpVtbl->RegisterFilterInstance(This,clsid,Name,MRId);
 4564}
 4565static 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}
 4568static 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}
 4571static inline HRESULT IFilterMapper_UnregisterFilter(IFilterMapper* This,CLSID Filter) {
 4572    return This->lpVtbl->UnregisterFilter(This,Filter);
 4573}
 4574static inline HRESULT IFilterMapper_UnregisterFilterInstance(IFilterMapper* This,CLSID MRId) {
 4575    return This->lpVtbl->UnregisterFilterInstance(This,MRId);
 4576}
 4577static inline HRESULT IFilterMapper_UnregisterPin(IFilterMapper* This,CLSID Filter,LPCWSTR Name) {
 4578    return This->lpVtbl->UnregisterPin(This,Filter,Name);
 4579}
 4580static 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
 4591typedef struct __WIDL_strmif_generated_name_00000010 {
 4592    const CLSID *clsMajorType;
 4593    const CLSID *clsMinorType;
 4594} REGPINTYPES;
 4595typedef 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;
 4606typedef struct __WIDL_strmif_generated_name_00000012 {
 4607    CLSID clsMedium;
 4608    DWORD dw1;
 4609    DWORD dw2;
 4610} REGPINMEDIUM;
 4611enum {
 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};
 4617typedef 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;
 4626typedef 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
 4646DEFINE_GUID(IID_IFilterMapper2, 0xb79bb0b0, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
 4647#if defined(__cplusplus) && !defined(CINTERFACE)
 4648MIDL_INTERFACE("b79bb0b0-33c1-11d1-abe1-00a0c905f375")
 4649IFilterMapper2 : 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
 4691typedef 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
 4749interface 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 ***/
 4766static inline HRESULT IFilterMapper2_QueryInterface(IFilterMapper2* This,REFIID riid,void **ppvObject) {
 4767    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4768}
 4769static inline ULONG IFilterMapper2_AddRef(IFilterMapper2* This) {
 4770    return This->lpVtbl->AddRef(This);
 4771}
 4772static inline ULONG IFilterMapper2_Release(IFilterMapper2* This) {
 4773    return This->lpVtbl->Release(This);
 4774}
 4775/*** IFilterMapper2 methods ***/
 4776static inline HRESULT IFilterMapper2_CreateCategory(IFilterMapper2* This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description) {
 4777    return This->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description);
 4778}
 4779static inline HRESULT IFilterMapper2_UnregisterFilter(IFilterMapper2* This,const CLSID *pclsidCategory,LPCOLESTR szInstance,REFCLSID Filter) {
 4780    return This->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter);
 4781}
 4782static 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}
 4785static 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
 4802DEFINE_GUID(IID_IFilterMapper3, 0xb79bb0b1, 0x33c1, 0x11d1, 0xab,0xe1, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
 4803#if defined(__cplusplus) && !defined(CINTERFACE)
 4804MIDL_INTERFACE("b79bb0b1-33c1-11d1-abe1-00a0c905f375")
 4805IFilterMapper3 : 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
 4815typedef 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
 4878interface 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 ***/
 4897static inline HRESULT IFilterMapper3_QueryInterface(IFilterMapper3* This,REFIID riid,void **ppvObject) {
 4898    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4899}
 4900static inline ULONG IFilterMapper3_AddRef(IFilterMapper3* This) {
 4901    return This->lpVtbl->AddRef(This);
 4902}
 4903static inline ULONG IFilterMapper3_Release(IFilterMapper3* This) {
 4904    return This->lpVtbl->Release(This);
 4905}
 4906/*** IFilterMapper2 methods ***/
 4907static inline HRESULT IFilterMapper3_CreateCategory(IFilterMapper3* This,REFCLSID clsidCategory,DWORD dwCategoryMerit,LPCWSTR Description) {
 4908    return This->lpVtbl->CreateCategory(This,clsidCategory,dwCategoryMerit,Description);
 4909}
 4910static inline HRESULT IFilterMapper3_UnregisterFilter(IFilterMapper3* This,const CLSID *pclsidCategory,LPCOLESTR szInstance,REFCLSID Filter) {
 4911    return This->lpVtbl->UnregisterFilter(This,pclsidCategory,szInstance,Filter);
 4912}
 4913static 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}
 4916static 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 ***/
 4920static 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
 4931typedef enum tagQualityMessageType {
 4932    Famine = 0,
 4933    Flood = 1
 4934} QualityMessageType;
 4935typedef struct tagQuality {
 4936    QualityMessageType Type;
 4937    LONG Proportion;
 4938    REFERENCE_TIME Late;
 4939    REFERENCE_TIME TimeStamp;
 4940} Quality;
 4941typedef IQualityControl *PQUALITYCONTROL;
 4942/*****************************************************************************
 4943 * IQualityControl interface
 4944 */
 4945#ifndef __IQualityControl_INTERFACE_DEFINED__
 4946#define __IQualityControl_INTERFACE_DEFINED__
 4947
 4948DEFINE_GUID(IID_IQualityControl, 0x56a868a5, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
 4949#if defined(__cplusplus) && !defined(CINTERFACE)
 4950MIDL_INTERFACE("56a868a5-0ad4-11ce-b03a-0020af0ba770")
 4951IQualityControl : 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
 4965typedef 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
 4993interface 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 ***/
 5008static inline HRESULT IQualityControl_QueryInterface(IQualityControl* This,REFIID riid,void **ppvObject) {
 5009    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5010}
 5011static inline ULONG IQualityControl_AddRef(IQualityControl* This) {
 5012    return This->lpVtbl->AddRef(This);
 5013}
 5014static inline ULONG IQualityControl_Release(IQualityControl* This) {
 5015    return This->lpVtbl->Release(This);
 5016}
 5017/*** IQualityControl methods ***/
 5018static inline HRESULT IQualityControl_Notify(IQualityControl* This,IBaseFilter *pSelf,Quality q) {
 5019    return This->lpVtbl->Notify(This,pSelf,q);
 5020}
 5021static 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
 5032enum {
 5033    CK_NOCOLORKEY = 0x0,
 5034    CK_INDEX = 0x1,
 5035    CK_RGB = 0x2
 5036};
 5037typedef struct tagCOLORKEY {
 5038    DWORD KeyType;
 5039    DWORD PaletteIndex;
 5040    COLORREF LowColorValue;
 5041    COLORREF HighColorValue;
 5042} COLORKEY;
 5043enum {
 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_
 5056typedef struct _RGNDATAHEADER {
 5057    DWORD dwSize;
 5058    DWORD iType;
 5059    DWORD nCount;
 5060    DWORD nRgnSize;
 5061    RECT rcBound;
 5062} RGNDATAHEADER;
 5063typedef 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
 5074DEFINE_GUID(IID_IOverlayNotify, 0x56a868a0, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
 5075#if defined(__cplusplus) && !defined(CINTERFACE)
 5076MIDL_INTERFACE("56a868a0-0ad4-11ce-b03a-0020af0ba770")
 5077IOverlayNotify : 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
 5100typedef 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
 5139interface 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 ***/
 5156static inline HRESULT IOverlayNotify_QueryInterface(IOverlayNotify* This,REFIID riid,void **ppvObject) {
 5157    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5158}
 5159static inline ULONG IOverlayNotify_AddRef(IOverlayNotify* This) {
 5160    return This->lpVtbl->AddRef(This);
 5161}
 5162static inline ULONG IOverlayNotify_Release(IOverlayNotify* This) {
 5163    return This->lpVtbl->Release(This);
 5164}
 5165/*** IOverlayNotify methods ***/
 5166static inline HRESULT IOverlayNotify_OnPaletteChange(IOverlayNotify* This,DWORD dwColors,const PALETTEENTRY *pPalette) {
 5167    return This->lpVtbl->OnPaletteChange(This,dwColors,pPalette);
 5168}
 5169static 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}
 5172static inline HRESULT IOverlayNotify_OnColorKeyChange(IOverlayNotify* This,const COLORKEY *pColorKey) {
 5173    return This->lpVtbl->OnColorKeyChange(This,pColorKey);
 5174}
 5175static 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
 5186typedef IOverlayNotify *POVERLAYNOTIFY;
 5187#if 0
 5188typedef HANDLE HMONITOR;
 5189#endif /* 0 */
 5190/*****************************************************************************
 5191 * IOverlayNotify2 interface
 5192 */
 5193#ifndef __IOverlayNotify2_INTERFACE_DEFINED__
 5194#define __IOverlayNotify2_INTERFACE_DEFINED__
 5195
 5196DEFINE_GUID(IID_IOverlayNotify2, 0x680efa10, 0xd535, 0x11d1, 0x87,0xc8, 0x00,0xa0,0xc9,0x22,0x31,0x96);
 5197#if defined(__cplusplus) && !defined(CINTERFACE)
 5198MIDL_INTERFACE("680efa10-d535-11d1-87c8-00a0c9223196")
 5199IOverlayNotify2 : 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
 5209typedef 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
 5253interface 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 ***/
 5272static inline HRESULT IOverlayNotify2_QueryInterface(IOverlayNotify2* This,REFIID riid,void **ppvObject) {
 5273    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5274}
 5275static inline ULONG IOverlayNotify2_AddRef(IOverlayNotify2* This) {
 5276    return This->lpVtbl->AddRef(This);
 5277}
 5278static inline ULONG IOverlayNotify2_Release(IOverlayNotify2* This) {
 5279    return This->lpVtbl->Release(This);
 5280}
 5281/*** IOverlayNotify methods ***/
 5282static inline HRESULT IOverlayNotify2_OnPaletteChange(IOverlayNotify2* This,DWORD dwColors,const PALETTEENTRY *pPalette) {
 5283    return This->lpVtbl->OnPaletteChange(This,dwColors,pPalette);
 5284}
 5285static 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}
 5288static inline HRESULT IOverlayNotify2_OnColorKeyChange(IOverlayNotify2* This,const COLORKEY *pColorKey) {
 5289    return This->lpVtbl->OnColorKeyChange(This,pColorKey);
 5290}
 5291static inline HRESULT IOverlayNotify2_OnPositionChange(IOverlayNotify2* This,const RECT *pSourceRect,const RECT *pDestinationRect) {
 5292    return This->lpVtbl->OnPositionChange(This,pSourceRect,pDestinationRect);
 5293}
 5294/*** IOverlayNotify2 methods ***/
 5295static 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
 5306typedef IOverlayNotify2 *POVERLAYNOTIFY2;
 5307/*****************************************************************************
 5308 * IOverlay interface
 5309 */
 5310#ifndef __IOverlay_INTERFACE_DEFINED__
 5311#define __IOverlay_INTERFACE_DEFINED__
 5312
 5313DEFINE_GUID(IID_IOverlay, 0x56a868a1, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
 5314#if defined(__cplusplus) && !defined(CINTERFACE)
 5315MIDL_INTERFACE("56a868a1-0ad4-11ce-b03a-0020af0ba770")
 5316IOverlay : 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
 5359typedef 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
 5423interface 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 ***/
 5446static inline HRESULT IOverlay_QueryInterface(IOverlay* This,REFIID riid,void **ppvObject) {
 5447    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5448}
 5449static inline ULONG IOverlay_AddRef(IOverlay* This) {
 5450    return This->lpVtbl->AddRef(This);
 5451}
 5452static inline ULONG IOverlay_Release(IOverlay* This) {
 5453    return This->lpVtbl->Release(This);
 5454}
 5455/*** IOverlay methods ***/
 5456static inline HRESULT IOverlay_GetPalette(IOverlay* This,DWORD *pdwColors,PALETTEENTRY **ppPalette) {
 5457    return This->lpVtbl->GetPalette(This,pdwColors,ppPalette);
 5458}
 5459static inline HRESULT IOverlay_SetPalette(IOverlay* This,DWORD dwColors,PALETTEENTRY *pPalette) {
 5460    return This->lpVtbl->SetPalette(This,dwColors,pPalette);
 5461}
 5462static inline HRESULT IOverlay_GetDefaultColorKey(IOverlay* This,COLORKEY *pColorKey) {
 5463    return This->lpVtbl->GetDefaultColorKey(This,pColorKey);
 5464}
 5465static inline HRESULT IOverlay_GetColorKey(IOverlay* This,COLORKEY *pColorKey) {
 5466    return This->lpVtbl->GetColorKey(This,pColorKey);
 5467}
 5468static inline HRESULT IOverlay_SetColorKey(IOverlay* This,COLORKEY *pColorKey) {
 5469    return This->lpVtbl->SetColorKey(This,pColorKey);
 5470}
 5471static inline HRESULT IOverlay_GetWindowHandle(IOverlay* This,HWND *pHwnd) {
 5472    return This->lpVtbl->GetWindowHandle(This,pHwnd);
 5473}
 5474static inline HRESULT IOverlay_GetClipList(IOverlay* This,RECT *pSourceRect,RECT *pDestinationRect,RGNDATA **ppRgnData) {
 5475    return This->lpVtbl->GetClipList(This,pSourceRect,pDestinationRect,ppRgnData);
 5476}
 5477static inline HRESULT IOverlay_GetVideoPosition(IOverlay* This,RECT *pSourceRect,RECT *pDestinationRect) {
 5478    return This->lpVtbl->GetVideoPosition(This,pSourceRect,pDestinationRect);
 5479}
 5480static inline HRESULT IOverlay_Advise(IOverlay* This,IOverlayNotify *pOverlayNotify,DWORD dwInterests) {
 5481    return This->lpVtbl->Advise(This,pOverlayNotify,dwInterests);
 5482}
 5483static 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
 5494typedef IOverlay *POVERLAY;
 5495/*****************************************************************************
 5496 * IMediaEventSink interface
 5497 */
 5498#ifndef __IMediaEventSink_INTERFACE_DEFINED__
 5499#define __IMediaEventSink_INTERFACE_DEFINED__
 5500
 5501DEFINE_GUID(IID_IMediaEventSink, 0x56a868a2, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
 5502#if defined(__cplusplus) && !defined(CINTERFACE)
 5503MIDL_INTERFACE("56a868a2-0ad4-11ce-b03a-0020af0ba770")
 5504IMediaEventSink : 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
 5516typedef 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
 5541interface 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 ***/
 5555static inline HRESULT IMediaEventSink_QueryInterface(IMediaEventSink* This,REFIID riid,void **ppvObject) {
 5556    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5557}
 5558static inline ULONG IMediaEventSink_AddRef(IMediaEventSink* This) {
 5559    return This->lpVtbl->AddRef(This);
 5560}
 5561static inline ULONG IMediaEventSink_Release(IMediaEventSink* This) {
 5562    return This->lpVtbl->Release(This);
 5563}
 5564/*** IMediaEventSink methods ***/
 5565static 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
 5576typedef IMediaEventSink *PMEDIAEVENTSINK;
 5577/*****************************************************************************
 5578 * IFileSourceFilter interface
 5579 */
 5580#ifndef __IFileSourceFilter_INTERFACE_DEFINED__
 5581#define __IFileSourceFilter_INTERFACE_DEFINED__
 5582
 5583DEFINE_GUID(IID_IFileSourceFilter, 0x56a868a6, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
 5584#if defined(__cplusplus) && !defined(CINTERFACE)
 5585MIDL_INTERFACE("56a868a6-0ad4-11ce-b03a-0020af0ba770")
 5586IFileSourceFilter : 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
 5601typedef 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
 5630interface 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 ***/
 5645static inline HRESULT IFileSourceFilter_QueryInterface(IFileSourceFilter* This,REFIID riid,void **ppvObject) {
 5646    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5647}
 5648static inline ULONG IFileSourceFilter_AddRef(IFileSourceFilter* This) {
 5649    return This->lpVtbl->AddRef(This);
 5650}
 5651static inline ULONG IFileSourceFilter_Release(IFileSourceFilter* This) {
 5652    return This->lpVtbl->Release(This);
 5653}
 5654/*** IFileSourceFilter methods ***/
 5655static inline HRESULT IFileSourceFilter_Load(IFileSourceFilter* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
 5656    return This->lpVtbl->Load(This,pszFileName,pmt);
 5657}
 5658static 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
 5669typedef IFileSourceFilter *PFILTERFILESOURCE;
 5670/*****************************************************************************
 5671 * IFileSinkFilter interface
 5672 */
 5673#ifndef __IFileSinkFilter_INTERFACE_DEFINED__
 5674#define __IFileSinkFilter_INTERFACE_DEFINED__
 5675
 5676DEFINE_GUID(IID_IFileSinkFilter, 0xa2104830, 0x7c70, 0x11cf, 0x8b,0xce, 0x00,0xaa,0x00,0xa3,0xf1,0xa6);
 5677#if defined(__cplusplus) && !defined(CINTERFACE)
 5678MIDL_INTERFACE("a2104830-7c70-11cf-8bce-00aa00a3f1a6")
 5679IFileSinkFilter : 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
 5694typedef 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
 5723interface 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 ***/
 5738static inline HRESULT IFileSinkFilter_QueryInterface(IFileSinkFilter* This,REFIID riid,void **ppvObject) {
 5739    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5740}
 5741static inline ULONG IFileSinkFilter_AddRef(IFileSinkFilter* This) {
 5742    return This->lpVtbl->AddRef(This);
 5743}
 5744static inline ULONG IFileSinkFilter_Release(IFileSinkFilter* This) {
 5745    return This->lpVtbl->Release(This);
 5746}
 5747/*** IFileSinkFilter methods ***/
 5748static inline HRESULT IFileSinkFilter_SetFileName(IFileSinkFilter* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
 5749    return This->lpVtbl->SetFileName(This,pszFileName,pmt);
 5750}
 5751static 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
 5762typedef IFileSinkFilter *PFILTERFILESINK;
 5763/*****************************************************************************
 5764 * IFileSinkFilter2 interface
 5765 */
 5766#ifndef __IFileSinkFilter2_INTERFACE_DEFINED__
 5767#define __IFileSinkFilter2_INTERFACE_DEFINED__
 5768
 5769DEFINE_GUID(IID_IFileSinkFilter2, 0x00855b90, 0xce1b, 0x11d0, 0xbd,0x4f, 0x00,0xa0,0xc9,0x11,0xce,0x86);
 5770#if defined(__cplusplus) && !defined(CINTERFACE)
 5771MIDL_INTERFACE("00855b90-ce1b-11d0-bd4f-00a0c911ce86")
 5772IFileSinkFilter2 : 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
 5785typedef 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
 5823interface 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 ***/
 5841static inline HRESULT IFileSinkFilter2_QueryInterface(IFileSinkFilter2* This,REFIID riid,void **ppvObject) {
 5842    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5843}
 5844static inline ULONG IFileSinkFilter2_AddRef(IFileSinkFilter2* This) {
 5845    return This->lpVtbl->AddRef(This);
 5846}
 5847static inline ULONG IFileSinkFilter2_Release(IFileSinkFilter2* This) {
 5848    return This->lpVtbl->Release(This);
 5849}
 5850/*** IFileSinkFilter methods ***/
 5851static inline HRESULT IFileSinkFilter2_SetFileName(IFileSinkFilter2* This,LPCOLESTR pszFileName,const AM_MEDIA_TYPE *pmt) {
 5852    return This->lpVtbl->SetFileName(This,pszFileName,pmt);
 5853}
 5854static inline HRESULT IFileSinkFilter2_GetCurFile(IFileSinkFilter2* This,LPOLESTR *ppszFileName,AM_MEDIA_TYPE *pmt) {
 5855    return This->lpVtbl->GetCurFile(This,ppszFileName,pmt);
 5856}
 5857/*** IFileSinkFilter2 methods ***/
 5858static inline HRESULT IFileSinkFilter2_SetMode(IFileSinkFilter2* This,DWORD dwFlags) {
 5859    return This->lpVtbl->SetMode(This,dwFlags);
 5860}
 5861static 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
 5872typedef IFileSinkFilter2 *PFILESINKFILTER2;
 5873typedef 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
 5882DEFINE_GUID(IID_IGraphBuilder, 0x56a868a9, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
 5883#if defined(__cplusplus) && !defined(CINTERFACE)
 5884MIDL_INTERFACE("56a868a9-0ad4-11ce-b03a-0020af0ba770")
 5885IGraphBuilder : 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
 5917typedef 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
 6002interface 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 ***/
 6031static inline HRESULT IGraphBuilder_QueryInterface(IGraphBuilder* This,REFIID riid,void **ppvObject) {
 6032    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6033}
 6034static inline ULONG IGraphBuilder_AddRef(IGraphBuilder* This) {
 6035    return This->lpVtbl->AddRef(This);
 6036}
 6037static inline ULONG IGraphBuilder_Release(IGraphBuilder* This) {
 6038    return This->lpVtbl->Release(This);
 6039}
 6040/*** IFilterGraph methods ***/
 6041static inline HRESULT IGraphBuilder_AddFilter(IGraphBuilder* This,IBaseFilter *pFilter,LPCWSTR pName) {
 6042    return This->lpVtbl->AddFilter(This,pFilter,pName);
 6043}
 6044static inline HRESULT IGraphBuilder_RemoveFilter(IGraphBuilder* This,IBaseFilter *pFilter) {
 6045    return This->lpVtbl->RemoveFilter(This,pFilter);
 6046}
 6047static inline HRESULT IGraphBuilder_EnumFilters(IGraphBuilder* This,IEnumFilters **ppEnum) {
 6048    return This->lpVtbl->EnumFilters(This,ppEnum);
 6049}
 6050static inline HRESULT IGraphBuilder_FindFilterByName(IGraphBuilder* This,LPCWSTR pName,IBaseFilter **ppFilter) {
 6051    return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
 6052}
 6053static 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}
 6056static inline HRESULT IGraphBuilder_Reconnect(IGraphBuilder* This,IPin *ppin) {
 6057    return This->lpVtbl->Reconnect(This,ppin);
 6058}
 6059static inline HRESULT IGraphBuilder_Disconnect(IGraphBuilder* This,IPin *ppin) {
 6060    return This->lpVtbl->Disconnect(This,ppin);
 6061}
 6062static inline HRESULT IGraphBuilder_SetDefaultSyncSource(IGraphBuilder* This) {
 6063    return This->lpVtbl->SetDefaultSyncSource(This);
 6064}
 6065/*** IGraphBuilder methods ***/
 6066static inline HRESULT IGraphBuilder_Connect(IGraphBuilder* This,IPin *ppinOut,IPin *ppinIn) {
 6067    return This->lpVtbl->Connect(This,ppinOut,ppinIn);
 6068}
 6069static inline HRESULT IGraphBuilder_Render(IGraphBuilder* This,IPin *ppinOut) {
 6070    return This->lpVtbl->Render(This,ppinOut);
 6071}
 6072static inline HRESULT IGraphBuilder_RenderFile(IGraphBuilder* This,LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList) {
 6073    return This->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList);
 6074}
 6075static inline HRESULT IGraphBuilder_AddSourceFilter(IGraphBuilder* This,LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) {
 6076    return This->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter);
 6077}
 6078static inline HRESULT IGraphBuilder_SetLogFile(IGraphBuilder* This,DWORD_PTR hFile) {
 6079    return This->lpVtbl->SetLogFile(This,hFile);
 6080}
 6081static inline HRESULT IGraphBuilder_Abort(IGraphBuilder* This) {
 6082    return This->lpVtbl->Abort(This);
 6083}
 6084static 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
 6101DEFINE_GUID(IID_ICaptureGraphBuilder, 0xbf87b6e0, 0x8c27, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
 6102#if defined(__cplusplus) && !defined(CINTERFACE)
 6103MIDL_INTERFACE("bf87b6e0-8c27-11d0-b3f0-00aa003761c5")
 6104ICaptureGraphBuilder : 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
 6153typedef 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
 6222interface 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 ***/
 6243static inline HRESULT ICaptureGraphBuilder_QueryInterface(ICaptureGraphBuilder* This,REFIID riid,void **ppvObject) {
 6244    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6245}
 6246static inline ULONG ICaptureGraphBuilder_AddRef(ICaptureGraphBuilder* This) {
 6247    return This->lpVtbl->AddRef(This);
 6248}
 6249static inline ULONG ICaptureGraphBuilder_Release(ICaptureGraphBuilder* This) {
 6250    return This->lpVtbl->Release(This);
 6251}
 6252/*** ICaptureGraphBuilder methods ***/
 6253static inline HRESULT ICaptureGraphBuilder_SetFiltergraph(ICaptureGraphBuilder* This,IGraphBuilder *pfg) {
 6254    return This->lpVtbl->SetFiltergraph(This,pfg);
 6255}
 6256static inline HRESULT ICaptureGraphBuilder_GetFiltergraph(ICaptureGraphBuilder* This,IGraphBuilder **ppfg) {
 6257    return This->lpVtbl->GetFiltergraph(This,ppfg);
 6258}
 6259static 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}
 6262static 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}
 6265static 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}
 6268static 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}
 6271static inline HRESULT ICaptureGraphBuilder_AllocCapFile(ICaptureGraphBuilder* This,LPCOLESTR lpstr,DWORDLONG dwlSize) {
 6272    return This->lpVtbl->AllocCapFile(This,lpstr,dwlSize);
 6273}
 6274static 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
 6282HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder_RemoteFindInterface_Proxy(
 6283    ICaptureGraphBuilder* This,
 6284    const GUID *pCategory,
 6285    IBaseFilter *pf,
 6286    REFIID riid,
 6287    IUnknown **ppint);
 6288void __RPC_STUB ICaptureGraphBuilder_RemoteFindInterface_Stub(
 6289    IRpcStubBuffer* This,
 6290    IRpcChannelBuffer* pRpcChannelBuffer,
 6291    PRPC_MESSAGE pRpcMessage,
 6292    DWORD* pdwStubPhase);
 6293HRESULT CALLBACK ICaptureGraphBuilder_FindInterface_Proxy(
 6294    ICaptureGraphBuilder* This,
 6295    const GUID *pCategory,
 6296    IBaseFilter *pf,
 6297    REFIID riid,
 6298    void **ppint);
 6299HRESULT __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
 6314DEFINE_GUID(IID_IAMCopyCaptureFileProgress, 0x670d1d20, 0xa068, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
 6315#if defined(__cplusplus) && !defined(CINTERFACE)
 6316MIDL_INTERFACE("670d1d20-a068-11d0-b3f0-00aa003761c5")
 6317IAMCopyCaptureFileProgress : 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
 6327typedef 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
 6350interface 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 ***/
 6364static inline HRESULT IAMCopyCaptureFileProgress_QueryInterface(IAMCopyCaptureFileProgress* This,REFIID riid,void **ppvObject) {
 6365    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6366}
 6367static inline ULONG IAMCopyCaptureFileProgress_AddRef(IAMCopyCaptureFileProgress* This) {
 6368    return This->lpVtbl->AddRef(This);
 6369}
 6370static inline ULONG IAMCopyCaptureFileProgress_Release(IAMCopyCaptureFileProgress* This) {
 6371    return This->lpVtbl->Release(This);
 6372}
 6373/*** IAMCopyCaptureFileProgress methods ***/
 6374static 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
 6391DEFINE_GUID(IID_ICaptureGraphBuilder2, 0x93e5a4e0, 0x2d50, 0x11d2, 0xab,0xfa, 0x00,0xa0,0xc9,0xc6,0xe3,0x8d);
 6392#if defined(__cplusplus) && !defined(CINTERFACE)
 6393MIDL_INTERFACE("93e5a4e0-2d50-11d2-abfa-00a0c9c6e38d")
 6394ICaptureGraphBuilder2 : 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
 6455typedef 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
 6537interface 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 ***/
 6559static inline HRESULT ICaptureGraphBuilder2_QueryInterface(ICaptureGraphBuilder2* This,REFIID riid,void **ppvObject) {
 6560    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6561}
 6562static inline ULONG ICaptureGraphBuilder2_AddRef(ICaptureGraphBuilder2* This) {
 6563    return This->lpVtbl->AddRef(This);
 6564}
 6565static inline ULONG ICaptureGraphBuilder2_Release(ICaptureGraphBuilder2* This) {
 6566    return This->lpVtbl->Release(This);
 6567}
 6568/*** ICaptureGraphBuilder2 methods ***/
 6569static inline HRESULT ICaptureGraphBuilder2_SetFiltergraph(ICaptureGraphBuilder2* This,IGraphBuilder *pfg) {
 6570    return This->lpVtbl->SetFiltergraph(This,pfg);
 6571}
 6572static inline HRESULT ICaptureGraphBuilder2_GetFiltergraph(ICaptureGraphBuilder2* This,IGraphBuilder **ppfg) {
 6573    return This->lpVtbl->GetFiltergraph(This,ppfg);
 6574}
 6575static 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}
 6578static 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}
 6581static 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}
 6584static 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}
 6587static inline HRESULT ICaptureGraphBuilder2_AllocCapFile(ICaptureGraphBuilder2* This,LPCOLESTR lpstr,DWORDLONG dwlSize) {
 6588    return This->lpVtbl->AllocCapFile(This,lpstr,dwlSize);
 6589}
 6590static 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}
 6593static 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
 6601HRESULT STDMETHODCALLTYPE ICaptureGraphBuilder2_RemoteFindInterface_Proxy(
 6602    ICaptureGraphBuilder2* This,
 6603    const GUID *pCategory,
 6604    const GUID *pType,
 6605    IBaseFilter *pf,
 6606    REFIID riid,
 6607    IUnknown **ppint);
 6608void __RPC_STUB ICaptureGraphBuilder2_RemoteFindInterface_Stub(
 6609    IRpcStubBuffer* This,
 6610    IRpcChannelBuffer* pRpcChannelBuffer,
 6611    PRPC_MESSAGE pRpcMessage,
 6612    DWORD* pdwStubPhase);
 6613HRESULT CALLBACK ICaptureGraphBuilder2_FindInterface_Proxy(
 6614    ICaptureGraphBuilder2* This,
 6615    const GUID *pCategory,
 6616    const GUID *pType,
 6617    IBaseFilter *pf,
 6618    REFIID riid,
 6619    void **ppint);
 6620HRESULT __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
 6636DEFINE_GUID(IID_IConfigAviMux, 0x5acd6aa0, 0xf482, 0x11ce, 0x8b,0x67, 0x00,0xaa,0x00,0xa3,0xf1,0xa6);
 6637#if defined(__cplusplus) && !defined(CINTERFACE)
 6638MIDL_INTERFACE("5acd6aa0-f482-11ce-8b67-00aa00a3f1a6")
 6639IConfigAviMux : 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
 6658typedef 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
 6693interface 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 ***/
 6710static inline HRESULT IConfigAviMux_QueryInterface(IConfigAviMux* This,REFIID riid,void **ppvObject) {
 6711    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6712}
 6713static inline ULONG IConfigAviMux_AddRef(IConfigAviMux* This) {
 6714    return This->lpVtbl->AddRef(This);
 6715}
 6716static inline ULONG IConfigAviMux_Release(IConfigAviMux* This) {
 6717    return This->lpVtbl->Release(This);
 6718}
 6719/*** IConfigAviMux methods ***/
 6720static inline HRESULT IConfigAviMux_SetMasterStream(IConfigAviMux* This,LONG iStream) {
 6721    return This->lpVtbl->SetMasterStream(This,iStream);
 6722}
 6723static inline HRESULT IConfigAviMux_GetMasterStream(IConfigAviMux* This,LONG *pStream) {
 6724    return This->lpVtbl->GetMasterStream(This,pStream);
 6725}
 6726static inline HRESULT IConfigAviMux_SetOutputCompatibilityIndex(IConfigAviMux* This,WINBOOL fOldIndex) {
 6727    return This->lpVtbl->SetOutputCompatibilityIndex(This,fOldIndex);
 6728}
 6729static 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
 6746typedef enum InterleavingMode {
 6747    INTERLEAVE_NONE = 0,
 6748    INTERLEAVE_CAPTURE = 1,
 6749    INTERLEAVE_FULL = 2,
 6750    INTERLEAVE_NONE_BUFFERED = 3
 6751} InterleavingMode;
 6752DEFINE_GUID(IID_IConfigInterleaving, 0xbee3d220, 0x157b, 0x11d0, 0xbd,0x23, 0x00,0xa0,0xc9,0x11,0xce,0x86);
 6753#if defined(__cplusplus) && !defined(CINTERFACE)
 6754MIDL_INTERFACE("bee3d220-157b-11d0-bd23-00a0c911ce86")
 6755IConfigInterleaving : 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
 6776typedef 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
 6813interface 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 ***/
 6830static inline HRESULT IConfigInterleaving_QueryInterface(IConfigInterleaving* This,REFIID riid,void **ppvObject) {
 6831    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6832}
 6833static inline ULONG IConfigInterleaving_AddRef(IConfigInterleaving* This) {
 6834    return This->lpVtbl->AddRef(This);
 6835}
 6836static inline ULONG IConfigInterleaving_Release(IConfigInterleaving* This) {
 6837    return This->lpVtbl->Release(This);
 6838}
 6839/*** IConfigInterleaving methods ***/
 6840static inline HRESULT IConfigInterleaving_put_Mode(IConfigInterleaving* This,InterleavingMode mode) {
 6841    return This->lpVtbl->put_Mode(This,mode);
 6842}
 6843static inline HRESULT IConfigInterleaving_get_Mode(IConfigInterleaving* This,InterleavingMode *pMode) {
 6844    return This->lpVtbl->get_Mode(This,pMode);
 6845}
 6846static 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}
 6849static 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
 6866DEFINE_GUID(IID_IAMClockSlave, 0x9fd52741, 0x176d, 0x4b36, 0x8f,0x51, 0xca,0x8f,0x93,0x32,0x23,0xbe);
 6867#if defined(__cplusplus) && !defined(CINTERFACE)
 6868MIDL_INTERFACE("9fd52741-176d-4b36-8f51-ca8f933223be")
 6869IAMClockSlave : 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
 6882typedef 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
 6909interface 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 ***/
 6924static inline HRESULT IAMClockSlave_QueryInterface(IAMClockSlave* This,REFIID riid,void **ppvObject) {
 6925    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6926}
 6927static inline ULONG IAMClockSlave_AddRef(IAMClockSlave* This) {
 6928    return This->lpVtbl->AddRef(This);
 6929}
 6930static inline ULONG IAMClockSlave_Release(IAMClockSlave* This) {
 6931    return This->lpVtbl->Release(This);
 6932}
 6933/*** IAMClockSlave methods ***/
 6934static inline HRESULT IAMClockSlave_SetErrorTolerance(IAMClockSlave* This,DWORD dwTolerance) {
 6935    return This->lpVtbl->SetErrorTolerance(This,dwTolerance);
 6936}
 6937static 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
 6948typedef struct _AMCOPPSignature {
 6949    BYTE Signature[256];
 6950} AMCOPPSignature;
 6951typedef struct _AMCOPPCommand {
 6952    GUID macKDI;
 6953    GUID guidCommandID;
 6954    DWORD dwSequence;
 6955    DWORD bSizeData;
 6956    BYTE CommandData[4056];
 6957} AMCOPPCommand;
 6958typedef struct _AMCOPPCommand *LPAMCOPPCommand;
 6959typedef struct _AMCOPPStatusInput {
 6960    GUID rApp;
 6961    GUID guidStatusRequestID;
 6962    DWORD dwSequence;
 6963    DWORD cbSizeData;
 6964    BYTE StatusData[4056];
 6965} AMCOPPStatusInput;
 6966typedef struct _AMCOPPStatusInput *LPAMCOPPStatusInput;
 6967typedef struct _AMCOPPStatusOutput {
 6968    GUID macKDI;
 6969    DWORD cbSizeData;
 6970    BYTE COPPStatus[4076];
 6971} AMCOPPStatusOutput;
 6972typedef struct _AMCOPPStatusOutput *LPAMCOPPStatusOutput;
 6973/*****************************************************************************
 6974 * IAMCertifiedOutputProtection interface
 6975 */
 6976#ifndef __IAMCertifiedOutputProtection_INTERFACE_DEFINED__
 6977#define __IAMCertifiedOutputProtection_INTERFACE_DEFINED__
 6978
 6979DEFINE_GUID(IID_IAMCertifiedOutputProtection, 0x6feded3e, 0x0ff1, 0x4901, 0xa2,0xf1, 0x43,0xf7,0x01,0x2c,0x85,0x15);
 6980#if defined(__cplusplus) && !defined(CINTERFACE)
 6981MIDL_INTERFACE("6feded3e-0ff1-4901-a2f1-43f7012c8515")
 6982IAMCertifiedOutputProtection : 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
 7004typedef 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
 7042interface 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 ***/
 7059static inline HRESULT IAMCertifiedOutputProtection_QueryInterface(IAMCertifiedOutputProtection* This,REFIID riid,void **ppvObject) {
 7060    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7061}
 7062static inline ULONG IAMCertifiedOutputProtection_AddRef(IAMCertifiedOutputProtection* This) {
 7063    return This->lpVtbl->AddRef(This);
 7064}
 7065static inline ULONG IAMCertifiedOutputProtection_Release(IAMCertifiedOutputProtection* This) {
 7066    return This->lpVtbl->Release(This);
 7067}
 7068/*** IAMCertifiedOutputProtection methods ***/
 7069static inline HRESULT IAMCertifiedOutputProtection_KeyExchange(IAMCertifiedOutputProtection* This,GUID *pRandom,BYTE **VarLenCertGH,DWORD *pdwLengthCertGH) {
 7070    return This->lpVtbl->KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH);
 7071}
 7072static inline HRESULT IAMCertifiedOutputProtection_SessionSequenceStart(IAMCertifiedOutputProtection* This,AMCOPPSignature *pSig) {
 7073    return This->lpVtbl->SessionSequenceStart(This,pSig);
 7074}
 7075static inline HRESULT IAMCertifiedOutputProtection_ProtectionCommand(IAMCertifiedOutputProtection* This,const AMCOPPCommand *cmd) {
 7076    return This->lpVtbl->ProtectionCommand(This,cmd);
 7077}
 7078static 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
 7089enum _AM_RENSDEREXFLAGS {
 7090    AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x1
 7091};
 7092/*****************************************************************************
 7093 * IFilterGraph2 interface
 7094 */
 7095#ifndef __IFilterGraph2_INTERFACE_DEFINED__
 7096#define __IFilterGraph2_INTERFACE_DEFINED__
 7097
 7098DEFINE_GUID(IID_IFilterGraph2, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
 7099#if defined(__cplusplus) && !defined(CINTERFACE)
 7100MIDL_INTERFACE("36b73882-c2c8-11cf-8b46-00805f6cef60")
 7101IFilterGraph2 : 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
 7123typedef 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
 7227interface 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 ***/
 7260static inline HRESULT IFilterGraph2_QueryInterface(IFilterGraph2* This,REFIID riid,void **ppvObject) {
 7261    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7262}
 7263static inline ULONG IFilterGraph2_AddRef(IFilterGraph2* This) {
 7264    return This->lpVtbl->AddRef(This);
 7265}
 7266static inline ULONG IFilterGraph2_Release(IFilterGraph2* This) {
 7267    return This->lpVtbl->Release(This);
 7268}
 7269/*** IFilterGraph methods ***/
 7270static inline HRESULT IFilterGraph2_AddFilter(IFilterGraph2* This,IBaseFilter *pFilter,LPCWSTR pName) {
 7271    return This->lpVtbl->AddFilter(This,pFilter,pName);
 7272}
 7273static inline HRESULT IFilterGraph2_RemoveFilter(IFilterGraph2* This,IBaseFilter *pFilter) {
 7274    return This->lpVtbl->RemoveFilter(This,pFilter);
 7275}
 7276static inline HRESULT IFilterGraph2_EnumFilters(IFilterGraph2* This,IEnumFilters **ppEnum) {
 7277    return This->lpVtbl->EnumFilters(This,ppEnum);
 7278}
 7279static inline HRESULT IFilterGraph2_FindFilterByName(IFilterGraph2* This,LPCWSTR pName,IBaseFilter **ppFilter) {
 7280    return This->lpVtbl->FindFilterByName(This,pName,ppFilter);
 7281}
 7282static 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}
 7285static inline HRESULT IFilterGraph2_Reconnect(IFilterGraph2* This,IPin *ppin) {
 7286    return This->lpVtbl->Reconnect(This,ppin);
 7287}
 7288static inline HRESULT IFilterGraph2_Disconnect(IFilterGraph2* This,IPin *ppin) {
 7289    return This->lpVtbl->Disconnect(This,ppin);
 7290}
 7291static inline HRESULT IFilterGraph2_SetDefaultSyncSource(IFilterGraph2* This) {
 7292    return This->lpVtbl->SetDefaultSyncSource(This);
 7293}
 7294/*** IGraphBuilder methods ***/
 7295static inline HRESULT IFilterGraph2_Connect(IFilterGraph2* This,IPin *ppinOut,IPin *ppinIn) {
 7296    return This->lpVtbl->Connect(This,ppinOut,ppinIn);
 7297}
 7298static inline HRESULT IFilterGraph2_Render(IFilterGraph2* This,IPin *ppinOut) {
 7299    return This->lpVtbl->Render(This,ppinOut);
 7300}
 7301static inline HRESULT IFilterGraph2_RenderFile(IFilterGraph2* This,LPCWSTR lpcwstrFile,LPCWSTR lpcwstrPlayList) {
 7302    return This->lpVtbl->RenderFile(This,lpcwstrFile,lpcwstrPlayList);
 7303}
 7304static inline HRESULT IFilterGraph2_AddSourceFilter(IFilterGraph2* This,LPCWSTR lpcwstrFileName,LPCWSTR lpcwstrFilterName,IBaseFilter **ppFilter) {
 7305    return This->lpVtbl->AddSourceFilter(This,lpcwstrFileName,lpcwstrFilterName,ppFilter);
 7306}
 7307static inline HRESULT IFilterGraph2_SetLogFile(IFilterGraph2* This,DWORD_PTR hFile) {
 7308    return This->lpVtbl->SetLogFile(This,hFile);
 7309}
 7310static inline HRESULT IFilterGraph2_Abort(IFilterGraph2* This) {
 7311    return This->lpVtbl->Abort(This);
 7312}
 7313static inline HRESULT IFilterGraph2_ShouldOperationContinue(IFilterGraph2* This) {
 7314    return This->lpVtbl->ShouldOperationContinue(This);
 7315}
 7316/*** IFilterGraph2 methods ***/
 7317static 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}
 7320static inline HRESULT IFilterGraph2_ReconnectEx(IFilterGraph2* This,IPin *ppin,const AM_MEDIA_TYPE *pmt) {
 7321    return This->lpVtbl->ReconnectEx(This,ppin,pmt);
 7322}
 7323static 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
 7340DEFINE_GUID(IID_IStreamBuilder, 0x56a868bf, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
 7341#if defined(__cplusplus) && !defined(CINTERFACE)
 7342MIDL_INTERFACE("56a868bf-0ad4-11ce-b03a-0020af0ba770")
 7343IStreamBuilder : 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
 7358typedef 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
 7387interface 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 ***/
 7402static inline HRESULT IStreamBuilder_QueryInterface(IStreamBuilder* This,REFIID riid,void **ppvObject) {
 7403    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7404}
 7405static inline ULONG IStreamBuilder_AddRef(IStreamBuilder* This) {
 7406    return This->lpVtbl->AddRef(This);
 7407}
 7408static inline ULONG IStreamBuilder_Release(IStreamBuilder* This) {
 7409    return This->lpVtbl->Release(This);
 7410}
 7411/*** IStreamBuilder methods ***/
 7412static inline HRESULT IStreamBuilder_Render(IStreamBuilder* This,IPin *ppinOut,IGraphBuilder *pGraph) {
 7413    return This->lpVtbl->Render(This,ppinOut,pGraph);
 7414}
 7415static 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
 7432typedef 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;
 7455typedef 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;
 7467DEFINE_GUID(IID_IAMStreamConfig, 0xc6e13340, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
 7468#if defined(__cplusplus) && !defined(CINTERFACE)
 7469MIDL_INTERFACE("c6e13340-30ac-11d0-a18c-00a0c9118956")
 7470IAMStreamConfig : 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
 7492typedef 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
 7530interface 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 ***/
 7547static inline HRESULT IAMStreamConfig_QueryInterface(IAMStreamConfig* This,REFIID riid,void **ppvObject) {
 7548    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7549}
 7550static inline ULONG IAMStreamConfig_AddRef(IAMStreamConfig* This) {
 7551    return This->lpVtbl->AddRef(This);
 7552}
 7553static inline ULONG IAMStreamConfig_Release(IAMStreamConfig* This) {
 7554    return This->lpVtbl->Release(This);
 7555}
 7556/*** IAMStreamConfig methods ***/
 7557static inline HRESULT IAMStreamConfig_SetFormat(IAMStreamConfig* This,AM_MEDIA_TYPE *pmt) {
 7558    return This->lpVtbl->SetFormat(This,pmt);
 7559}
 7560static inline HRESULT IAMStreamConfig_GetFormat(IAMStreamConfig* This,AM_MEDIA_TYPE **pmt) {
 7561    return This->lpVtbl->GetFormat(This,pmt);
 7562}
 7563static inline HRESULT IAMStreamConfig_GetNumberOfCapabilities(IAMStreamConfig* This,int *piCount,int *piSize) {
 7564    return This->lpVtbl->GetNumberOfCapabilities(This,piCount,piSize);
 7565}
 7566static 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
 7577typedef 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;
 7589typedef 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
 7599DEFINE_GUID(IID_IAMVideoProcAmp, 0xc6e13360, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
 7600#if defined(__cplusplus) && !defined(CINTERFACE)
 7601MIDL_INTERFACE("c6e13360-30ac-11d0-a18c-00a0c9118956")
 7602IAMVideoProcAmp : 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
 7627typedef 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
 7667interface 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 ***/
 7683static inline HRESULT IAMVideoProcAmp_QueryInterface(IAMVideoProcAmp* This,REFIID riid,void **ppvObject) {
 7684    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7685}
 7686static inline ULONG IAMVideoProcAmp_AddRef(IAMVideoProcAmp* This) {
 7687    return This->lpVtbl->AddRef(This);
 7688}
 7689static inline ULONG IAMVideoProcAmp_Release(IAMVideoProcAmp* This) {
 7690    return This->lpVtbl->Release(This);
 7691}
 7692/*** IAMVideoProcAmp methods ***/
 7693static 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}
 7696static inline HRESULT IAMVideoProcAmp_Set(IAMVideoProcAmp* This,LONG Property,LONG lValue,LONG Flags) {
 7697    return This->lpVtbl->Set(This,Property,lValue,Flags);
 7698}
 7699static 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
 7716DEFINE_GUID(IID_IAsyncReader, 0x56a868aa, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
 7717#if defined(__cplusplus) && !defined(CINTERFACE)
 7718MIDL_INTERFACE("56a868aa-0ad4-11ce-b03a-0020af0ba770")
 7719IAsyncReader : 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
 7758typedef 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
 7815interface 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 ***/
 7836static inline HRESULT IAsyncReader_QueryInterface(IAsyncReader* This,REFIID riid,void **ppvObject) {
 7837    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7838}
 7839static inline ULONG IAsyncReader_AddRef(IAsyncReader* This) {
 7840    return This->lpVtbl->AddRef(This);
 7841}
 7842static inline ULONG IAsyncReader_Release(IAsyncReader* This) {
 7843    return This->lpVtbl->Release(This);
 7844}
 7845/*** IAsyncReader methods ***/
 7846static inline HRESULT IAsyncReader_RequestAllocator(IAsyncReader* This,IMemAllocator *pPreferred,ALLOCATOR_PROPERTIES *pProps,IMemAllocator **ppActual) {
 7847    return This->lpVtbl->RequestAllocator(This,pPreferred,pProps,ppActual);
 7848}
 7849static inline HRESULT IAsyncReader_Request(IAsyncReader* This,IMediaSample *pSample,DWORD_PTR dwUser) {
 7850    return This->lpVtbl->Request(This,pSample,dwUser);
 7851}
 7852static inline HRESULT IAsyncReader_WaitForNext(IAsyncReader* This,DWORD dwTimeout,IMediaSample **ppSample,DWORD_PTR *pdwUser) {
 7853    return This->lpVtbl->WaitForNext(This,dwTimeout,ppSample,pdwUser);
 7854}
 7855static inline HRESULT IAsyncReader_SyncReadAligned(IAsyncReader* This,IMediaSample *pSample) {
 7856    return This->lpVtbl->SyncReadAligned(This,pSample);
 7857}
 7858static inline HRESULT IAsyncReader_SyncRead(IAsyncReader* This,LONGLONG llPosition,LONG lLength,BYTE *pBuffer) {
 7859    return This->lpVtbl->SyncRead(This,llPosition,lLength,pBuffer);
 7860}
 7861static inline HRESULT IAsyncReader_Length(IAsyncReader* This,LONGLONG *pTotal,LONGLONG *pAvailable) {
 7862    return This->lpVtbl->Length(This,pTotal,pAvailable);
 7863}
 7864static inline HRESULT IAsyncReader_BeginFlush(IAsyncReader* This) {
 7865    return This->lpVtbl->BeginFlush(This);
 7866}
 7867static 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
 7884DEFINE_GUID(IID_IGraphVersion, 0x56a868ab, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
 7885#if defined(__cplusplus) && !defined(CINTERFACE)
 7886MIDL_INTERFACE("56a868ab-0ad4-11ce-b03a-0020af0ba770")
 7887IGraphVersion : 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
 7897typedef 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
 7920interface 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 ***/
 7934static inline HRESULT IGraphVersion_QueryInterface(IGraphVersion* This,REFIID riid,void **ppvObject) {
 7935    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7936}
 7937static inline ULONG IGraphVersion_AddRef(IGraphVersion* This) {
 7938    return This->lpVtbl->AddRef(This);
 7939}
 7940static inline ULONG IGraphVersion_Release(IGraphVersion* This) {
 7941    return This->lpVtbl->Release(This);
 7942}
 7943/*** IGraphVersion methods ***/
 7944static 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
 7961DEFINE_GUID(IID_IResourceConsumer, 0x56a868ad, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
 7962#if defined(__cplusplus) && !defined(CINTERFACE)
 7963MIDL_INTERFACE("56a868ad-0ad4-11ce-b03a-0020af0ba770")
 7964IResourceConsumer : 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
 7977typedef 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
 8004interface 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 ***/
 8019static inline HRESULT IResourceConsumer_QueryInterface(IResourceConsumer* This,REFIID riid,void **ppvObject) {
 8020    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8021}
 8022static inline ULONG IResourceConsumer_AddRef(IResourceConsumer* This) {
 8023    return This->lpVtbl->AddRef(This);
 8024}
 8025static inline ULONG IResourceConsumer_Release(IResourceConsumer* This) {
 8026    return This->lpVtbl->Release(This);
 8027}
 8028/*** IResourceConsumer methods ***/
 8029static inline HRESULT IResourceConsumer_AcquireResource(IResourceConsumer* This,LONG idResource) {
 8030    return This->lpVtbl->AcquireResource(This,idResource);
 8031}
 8032static 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
 8049DEFINE_GUID(IID_IResourceManager, 0x56a868ac, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
 8050#if defined(__cplusplus) && !defined(CINTERFACE)
 8051MIDL_INTERFACE("56a868ac-0ad4-11ce-b03a-0020af0ba770")
 8052IResourceManager : 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
 8095typedef 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
 8158interface 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 ***/
 8179static inline HRESULT IResourceManager_QueryInterface(IResourceManager* This,REFIID riid,void **ppvObject) {
 8180    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8181}
 8182static inline ULONG IResourceManager_AddRef(IResourceManager* This) {
 8183    return This->lpVtbl->AddRef(This);
 8184}
 8185static inline ULONG IResourceManager_Release(IResourceManager* This) {
 8186    return This->lpVtbl->Release(This);
 8187}
 8188/*** IResourceManager methods ***/
 8189static inline HRESULT IResourceManager_Register(IResourceManager* This,LPCWSTR pName,LONG cResource,LONG *plToken) {
 8190    return This->lpVtbl->Register(This,pName,cResource,plToken);
 8191}
 8192static 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}
 8195static inline HRESULT IResourceManager_RequestResource(IResourceManager* This,LONG idResource,IUnknown *pFocusObject,IResourceConsumer *pConsumer) {
 8196    return This->lpVtbl->RequestResource(This,idResource,pFocusObject,pConsumer);
 8197}
 8198static inline HRESULT IResourceManager_NotifyAcquire(IResourceManager* This,LONG idResource,IResourceConsumer *pConsumer,HRESULT hr) {
 8199    return This->lpVtbl->NotifyAcquire(This,idResource,pConsumer,hr);
 8200}
 8201static inline HRESULT IResourceManager_NotifyRelease(IResourceManager* This,LONG idResource,IResourceConsumer *pConsumer,WINBOOL bStillWant) {
 8202    return This->lpVtbl->NotifyRelease(This,idResource,pConsumer,bStillWant);
 8203}
 8204static inline HRESULT IResourceManager_CancelRequest(IResourceManager* This,LONG idResource,IResourceConsumer *pConsumer) {
 8205    return This->lpVtbl->CancelRequest(This,idResource,pConsumer);
 8206}
 8207static inline HRESULT IResourceManager_SetFocus(IResourceManager* This,IUnknown *pFocusObject) {
 8208    return This->lpVtbl->SetFocus(This,pFocusObject);
 8209}
 8210static 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
 8221typedef 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;
 8227typedef 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
 8240DEFINE_GUID(IID_IAMStreamControl, 0x36b73881, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
 8241#if defined(__cplusplus) && !defined(CINTERFACE)
 8242MIDL_INTERFACE("36b73881-c2c8-11cf-8b46-00805f6cef60")
 8243IAMStreamControl : 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
 8262typedef 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
 8296interface 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 ***/
 8312static inline HRESULT IAMStreamControl_QueryInterface(IAMStreamControl* This,REFIID riid,void **ppvObject) {
 8313    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8314}
 8315static inline ULONG IAMStreamControl_AddRef(IAMStreamControl* This) {
 8316    return This->lpVtbl->AddRef(This);
 8317}
 8318static inline ULONG IAMStreamControl_Release(IAMStreamControl* This) {
 8319    return This->lpVtbl->Release(This);
 8320}
 8321/*** IAMStreamControl methods ***/
 8322static inline HRESULT IAMStreamControl_StartAt(IAMStreamControl* This,const REFERENCE_TIME *ptStart,DWORD dwCookie) {
 8323    return This->lpVtbl->StartAt(This,ptStart,dwCookie);
 8324}
 8325static inline HRESULT IAMStreamControl_StopAt(IAMStreamControl* This,const REFERENCE_TIME *ptStop,WINBOOL bSendExtra,DWORD dwCookie) {
 8326    return This->lpVtbl->StopAt(This,ptStop,bSendExtra,dwCookie);
 8327}
 8328static 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
 8343typedef 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
 8353DEFINE_GUID(IID_IKsPropertySet, 0x31efac30, 0x515c, 0x11d0, 0xa9,0xaa, 0x00,0xaa,0x00,0x61,0xbe,0x93);
 8354#if defined(__cplusplus) && !defined(CINTERFACE)
 8355MIDL_INTERFACE("31efac30-515c-11d0-a9aa-00aa0061be93")
 8356IKsPropertySet : 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
 8385typedef 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
 8429interface 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 ***/
 8445static inline HRESULT IKsPropertySet_QueryInterface(IKsPropertySet* This,REFIID riid,void **ppvObject) {
 8446    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8447}
 8448static inline ULONG IKsPropertySet_AddRef(IKsPropertySet* This) {
 8449    return This->lpVtbl->AddRef(This);
 8450}
 8451static inline ULONG IKsPropertySet_Release(IKsPropertySet* This) {
 8452    return This->lpVtbl->Release(This);
 8453}
 8454/*** IKsPropertySet methods ***/
 8455static 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}
 8458static 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}
 8461static 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
 8479typedef IMediaPropertyBag *LPMEDIAPROPERTYBAG;
 8480DEFINE_GUID(IID_IMediaPropertyBag, 0x6025a880, 0xc0d5, 0x11d0, 0xbd,0x4e, 0x00,0xa0,0xc9,0x11,0xce,0x86);
 8481#if defined(__cplusplus) && !defined(CINTERFACE)
 8482MIDL_INTERFACE("6025a880-c0d5-11d0-bd4e-00a0c911ce86")
 8483IMediaPropertyBag : 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
 8495typedef 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
 8532interface 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 ***/
 8549static inline HRESULT IMediaPropertyBag_QueryInterface(IMediaPropertyBag* This,REFIID riid,void **ppvObject) {
 8550    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8551}
 8552static inline ULONG IMediaPropertyBag_AddRef(IMediaPropertyBag* This) {
 8553    return This->lpVtbl->AddRef(This);
 8554}
 8555static inline ULONG IMediaPropertyBag_Release(IMediaPropertyBag* This) {
 8556    return This->lpVtbl->Release(This);
 8557}
 8558/*** IPropertyBag methods ***/
 8559static inline HRESULT IMediaPropertyBag_Read(IMediaPropertyBag* This,LPCOLESTR pszPropName,VARIANT *pVar,IErrorLog *pErrorLog) {
 8560    return This->lpVtbl->Read(This,pszPropName,pVar,pErrorLog);
 8561}
 8562static inline HRESULT IMediaPropertyBag_Write(IMediaPropertyBag* This,LPCOLESTR pszPropName,VARIANT *pVar) {
 8563    return This->lpVtbl->Write(This,pszPropName,pVar);
 8564}
 8565/*** IMediaPropertyBag methods ***/
 8566static 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
 8583typedef IPersistMediaPropertyBag *LPPERSISTMEDIAPROPERTYBAG;
 8584DEFINE_GUID(IID_IPersistMediaPropertyBag, 0x5738e040, 0xb67f, 0x11d0, 0xbd,0x4d, 0x00,0xa0,0xc9,0x11,0xce,0x86);
 8585#if defined(__cplusplus) && !defined(CINTERFACE)
 8586MIDL_INTERFACE("5738e040-b67f-11d0-bd4d-00a0c911ce86")
 8587IPersistMediaPropertyBag : 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
 8606typedef 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
 8644interface 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 ***/
 8662static inline HRESULT IPersistMediaPropertyBag_QueryInterface(IPersistMediaPropertyBag* This,REFIID riid,void **ppvObject) {
 8663    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8664}
 8665static inline ULONG IPersistMediaPropertyBag_AddRef(IPersistMediaPropertyBag* This) {
 8666    return This->lpVtbl->AddRef(This);
 8667}
 8668static inline ULONG IPersistMediaPropertyBag_Release(IPersistMediaPropertyBag* This) {
 8669    return This->lpVtbl->Release(This);
 8670}
 8671/*** IPersist methods ***/
 8672static inline HRESULT IPersistMediaPropertyBag_GetClassID(IPersistMediaPropertyBag* This,CLSID *pClassID) {
 8673    return This->lpVtbl->GetClassID(This,pClassID);
 8674}
 8675/*** IPersistMediaPropertyBag methods ***/
 8676static inline HRESULT IPersistMediaPropertyBag_InitNew(IPersistMediaPropertyBag* This) {
 8677    return This->lpVtbl->InitNew(This);
 8678}
 8679static inline HRESULT IPersistMediaPropertyBag_Load(IPersistMediaPropertyBag* This,IMediaPropertyBag *pPropBag,IErrorLog *pErrorLog) {
 8680    return This->lpVtbl->Load(This,pPropBag,pErrorLog);
 8681}
 8682static 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
 8699DEFINE_GUID(IID_ISeekingPassThru, 0x36b73883, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
 8700#if defined(__cplusplus) && !defined(CINTERFACE)
 8701MIDL_INTERFACE("36b73883-c2c8-11cf-8b46-00805f6cef60")
 8702ISeekingPassThru : 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
 8713typedef 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
 8737interface 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 ***/
 8751static inline HRESULT ISeekingPassThru_QueryInterface(ISeekingPassThru* This,REFIID riid,void **ppvObject) {
 8752    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8753}
 8754static inline ULONG ISeekingPassThru_AddRef(ISeekingPassThru* This) {
 8755    return This->lpVtbl->AddRef(This);
 8756}
 8757static inline ULONG ISeekingPassThru_Release(ISeekingPassThru* This) {
 8758    return This->lpVtbl->Release(This);
 8759}
 8760/*** ISeekingPassThru methods ***/
 8761static 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
 8772enum _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
 8782DEFINE_GUID(IID_IAMFilterMiscFlags, 0x2dd74950, 0xa890, 0x11d1, 0xab,0xe8, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
 8783#if defined(__cplusplus) && !defined(CINTERFACE)
 8784MIDL_INTERFACE("2dd74950-a890-11d1-abe8-00a0c905f375")
 8785IAMFilterMiscFlags : 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
 8795typedef 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
 8817interface 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 ***/
 8831static inline HRESULT IAMFilterMiscFlags_QueryInterface(IAMFilterMiscFlags* This,REFIID riid,void **ppvObject) {
 8832    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8833}
 8834static inline ULONG IAMFilterMiscFlags_AddRef(IAMFilterMiscFlags* This) {
 8835    return This->lpVtbl->AddRef(This);
 8836}
 8837static inline ULONG IAMFilterMiscFlags_Release(IAMFilterMiscFlags* This) {
 8838    return This->lpVtbl->Release(This);
 8839}
 8840/*** IAMFilterMiscFlags methods ***/
 8841static 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
 8858DEFINE_GUID(IID_IAMGraphBuilderCallback, 0x4995f511, 0x9ddb, 0x4f12, 0xbd,0x3b, 0xf0,0x46,0x11,0x80,0x7b,0x79);
 8859#if defined(__cplusplus) && !defined(CINTERFACE)
 8860MIDL_INTERFACE("4995f511-9ddb-4f12-bd3b-f04611807b79")
 8861IAMGraphBuilderCallback : 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
 8874typedef 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
 8901interface 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 ***/
 8916static inline HRESULT IAMGraphBuilderCallback_QueryInterface(IAMGraphBuilderCallback* This,REFIID riid,void **ppvObject) {
 8917    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8918}
 8919static inline ULONG IAMGraphBuilderCallback_AddRef(IAMGraphBuilderCallback* This) {
 8920    return This->lpVtbl->AddRef(This);
 8921}
 8922static inline ULONG IAMGraphBuilderCallback_Release(IAMGraphBuilderCallback* This) {
 8923    return This->lpVtbl->Release(This);
 8924}
 8925/*** IAMGraphBuilderCallback methods ***/
 8926static inline HRESULT IAMGraphBuilderCallback_SelectedFilter(IAMGraphBuilderCallback* This,IMoniker *pMon) {
 8927    return This->lpVtbl->SelectedFilter(This,pMon);
 8928}
 8929static 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
 8946DEFINE_GUID(IID_IAMVfwCaptureDialogs, 0xd8d715a0, 0x6e5e, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
 8947#if defined(__cplusplus) && !defined(CINTERFACE)
 8948MIDL_INTERFACE("d8d715a0-6e5e-11d0-b3f0-00aa003761c5")
 8949IAMVfwCaptureDialogs : 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
 8969typedef 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
 9004interface 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 ***/
 9020static inline HRESULT IAMVfwCaptureDialogs_QueryInterface(IAMVfwCaptureDialogs* This,REFIID riid,void **ppvObject) {
 9021    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9022}
 9023static inline ULONG IAMVfwCaptureDialogs_AddRef(IAMVfwCaptureDialogs* This) {
 9024    return This->lpVtbl->AddRef(This);
 9025}
 9026static inline ULONG IAMVfwCaptureDialogs_Release(IAMVfwCaptureDialogs* This) {
 9027    return This->lpVtbl->Release(This);
 9028}
 9029/*** IAMVfwCaptureDialogs methods ***/
 9030static inline HRESULT IAMVfwCaptureDialogs_HasDialog(IAMVfwCaptureDialogs* This,int dialog) {
 9031    return This->lpVtbl->HasDialog(This,dialog);
 9032}
 9033static inline HRESULT IAMVfwCaptureDialogs_ShowDialog(IAMVfwCaptureDialogs* This,int dialog,HWND hwnd) {
 9034    return This->lpVtbl->ShowDialog(This,dialog,hwnd);
 9035}
 9036static 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
 9053DEFINE_GUID(IID_IAMCameraControl, 0xc6e13370, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
 9054#if defined(__cplusplus) && !defined(CINTERFACE)
 9055MIDL_INTERFACE("c6e13370-30ac-11d0-a18c-00a0c9118956")
 9056IAMCameraControl : 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
 9081typedef 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
 9121interface 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 ***/
 9137static inline HRESULT IAMCameraControl_QueryInterface(IAMCameraControl* This,REFIID riid,void **ppvObject) {
 9138    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9139}
 9140static inline ULONG IAMCameraControl_AddRef(IAMCameraControl* This) {
 9141    return This->lpVtbl->AddRef(This);
 9142}
 9143static inline ULONG IAMCameraControl_Release(IAMCameraControl* This) {
 9144    return This->lpVtbl->Release(This);
 9145}
 9146/*** IAMCameraControl methods ***/
 9147static 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}
 9150static inline HRESULT IAMCameraControl_Set(IAMCameraControl* This,LONG property,LONG property_value,LONG flags) {
 9151    return This->lpVtbl->Set(This,property,property_value,flags);
 9152}
 9153static 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
 9170DEFINE_GUID(IID_IAMVideoControl, 0x6a2e0670, 0x28e4, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
 9171#if defined(__cplusplus) && !defined(CINTERFACE)
 9172MIDL_INTERFACE("6a2e0670-28e4-11d0-a18c-00a0c9118956")
 9173IAMVideoControl : 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
 9209typedef 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
 9263interface 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 ***/
 9282static inline HRESULT IAMVideoControl_QueryInterface(IAMVideoControl* This,REFIID riid,void **ppvObject) {
 9283    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9284}
 9285static inline ULONG IAMVideoControl_AddRef(IAMVideoControl* This) {
 9286    return This->lpVtbl->AddRef(This);
 9287}
 9288static inline ULONG IAMVideoControl_Release(IAMVideoControl* This) {
 9289    return This->lpVtbl->Release(This);
 9290}
 9291/*** IAMVideoControl methods ***/
 9292static inline HRESULT IAMVideoControl_GetCaps(IAMVideoControl* This,IPin *pin,LONG *flags) {
 9293    return This->lpVtbl->GetCaps(This,pin,flags);
 9294}
 9295static inline HRESULT IAMVideoControl_SetMode(IAMVideoControl* This,IPin *pin,LONG mode) {
 9296    return This->lpVtbl->SetMode(This,pin,mode);
 9297}
 9298static inline HRESULT IAMVideoControl_GetMode(IAMVideoControl* This,IPin *pin,LONG *mode) {
 9299    return This->lpVtbl->GetMode(This,pin,mode);
 9300}
 9301static inline HRESULT IAMVideoControl_GetCurrentActualFrameRate(IAMVideoControl* This,IPin *pin,LONGLONG *frame_rate) {
 9302    return This->lpVtbl->GetCurrentActualFrameRate(This,pin,frame_rate);
 9303}
 9304static 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}
 9307static 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
 9324DEFINE_GUID(IID_IAMBufferNegotiation, 0x56ed71a0, 0xaf5f, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
 9325#if defined(__cplusplus) && !defined(CINTERFACE)
 9326MIDL_INTERFACE("56ed71a0-af5f-11d0-b3f0-00aa003761c5")
 9327IAMBufferNegotiation : 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
 9340typedef 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
 9367interface 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 ***/
 9382static inline HRESULT IAMBufferNegotiation_QueryInterface(IAMBufferNegotiation* This,REFIID riid,void **ppvObject) {
 9383    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9384}
 9385static inline ULONG IAMBufferNegotiation_AddRef(IAMBufferNegotiation* This) {
 9386    return This->lpVtbl->AddRef(This);
 9387}
 9388static inline ULONG IAMBufferNegotiation_Release(IAMBufferNegotiation* This) {
 9389    return This->lpVtbl->Release(This);
 9390}
 9391/*** IAMBufferNegotiation methods ***/
 9392static inline HRESULT IAMBufferNegotiation_SuggestAllocatorProperties(IAMBufferNegotiation* This,const ALLOCATOR_PROPERTIES *prop) {
 9393    return This->lpVtbl->SuggestAllocatorProperties(This,prop);
 9394}
 9395static 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
 9412DEFINE_GUID(IID_IAMDroppedFrames, 0xc6e13344, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
 9413#if defined(__cplusplus) && !defined(CINTERFACE)
 9414MIDL_INTERFACE("c6e13344-30ac-11d0-a18c-00a0c9118956")
 9415IAMDroppedFrames : 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
 9436typedef 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
 9473interface 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 ***/
 9490static inline HRESULT IAMDroppedFrames_QueryInterface(IAMDroppedFrames* This,REFIID riid,void **ppvObject) {
 9491    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9492}
 9493static inline ULONG IAMDroppedFrames_AddRef(IAMDroppedFrames* This) {
 9494    return This->lpVtbl->AddRef(This);
 9495}
 9496static inline ULONG IAMDroppedFrames_Release(IAMDroppedFrames* This) {
 9497    return This->lpVtbl->Release(This);
 9498}
 9499/*** IAMDroppedFrames methods ***/
 9500static inline HRESULT IAMDroppedFrames_GetNumDropped(IAMDroppedFrames* This,LONG *number) {
 9501    return This->lpVtbl->GetNumDropped(This,number);
 9502}
 9503static inline HRESULT IAMDroppedFrames_GetNumNotDropped(IAMDroppedFrames* This,LONG *number) {
 9504    return This->lpVtbl->GetNumNotDropped(This,number);
 9505}
 9506static inline HRESULT IAMDroppedFrames_GetDroppedInfo(IAMDroppedFrames* This,LONG size,LONG *array,LONG *copied) {
 9507    return This->lpVtbl->GetDroppedInfo(This,size,array,copied);
 9508}
 9509static 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
 9526DEFINE_GUID(IID_IAMLatency, 0x62ea93ba, 0xec62, 0x11d2, 0xb7,0x70, 0x00,0xc0,0x4f,0xb6,0xbd,0x3d);
 9527#if defined(__cplusplus) && !defined(CINTERFACE)
 9528MIDL_INTERFACE("62ea93ba-ec62-11d2-b770-00c04fb6bd3d")
 9529IAMLatency : 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
 9539typedef 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
 9562interface 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 ***/
 9576static inline HRESULT IAMLatency_QueryInterface(IAMLatency* This,REFIID riid,void **ppvObject) {
 9577    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9578}
 9579static inline ULONG IAMLatency_AddRef(IAMLatency* This) {
 9580    return This->lpVtbl->AddRef(This);
 9581}
 9582static inline ULONG IAMLatency_Release(IAMLatency* This) {
 9583    return This->lpVtbl->Release(This);
 9584}
 9585/*** IAMLatency methods ***/
 9586static 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
 9603DEFINE_GUID(IID_IAMPushSource, 0xf185fe76, 0xe64e, 0x11d2, 0xb7,0x6e, 0x00,0xc0,0x4f,0xb6,0xbd,0x3d);
 9604#if defined(__cplusplus) && !defined(CINTERFACE)
 9605MIDL_INTERFACE("f185fe76-e64e-11d2-b76e-00c04fb6bd3d")
 9606IAMPushSource : 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
 9631typedef 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
 9679interface 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 ***/
 9700static inline HRESULT IAMPushSource_QueryInterface(IAMPushSource* This,REFIID riid,void **ppvObject) {
 9701    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9702}
 9703static inline ULONG IAMPushSource_AddRef(IAMPushSource* This) {
 9704    return This->lpVtbl->AddRef(This);
 9705}
 9706static inline ULONG IAMPushSource_Release(IAMPushSource* This) {
 9707    return This->lpVtbl->Release(This);
 9708}
 9709/*** IAMLatency methods ***/
 9710static inline HRESULT IAMPushSource_GetLatency(IAMPushSource* This,REFERENCE_TIME *latency) {
 9711    return This->lpVtbl->GetLatency(This,latency);
 9712}
 9713/*** IAMPushSource methods ***/
 9714static inline HRESULT IAMPushSource_GetPushSourceFlags(IAMPushSource* This,ULONG *flags) {
 9715    return This->lpVtbl->GetPushSourceFlags(This,flags);
 9716}
 9717static inline HRESULT IAMPushSource_SetPushSourceFlags(IAMPushSource* This,ULONG flags) {
 9718    return This->lpVtbl->SetPushSourceFlags(This,flags);
 9719}
 9720static inline HRESULT IAMPushSource_SetStreamOffset(IAMPushSource* This,REFERENCE_TIME offset) {
 9721    return This->lpVtbl->SetStreamOffset(This,offset);
 9722}
 9723static inline HRESULT IAMPushSource_GetStreamOffset(IAMPushSource* This,REFERENCE_TIME *offset) {
 9724    return This->lpVtbl->GetStreamOffset(This,offset);
 9725}
 9726static inline HRESULT IAMPushSource_GetMaxStreamOffset(IAMPushSource* This,REFERENCE_TIME *offset) {
 9727    return This->lpVtbl->GetMaxStreamOffset(This,offset);
 9728}
 9729static 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
 9746DEFINE_GUID(IID_IAMVideoCompression, 0xc6e13343, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
 9747#if defined(__cplusplus) && !defined(CINTERFACE)
 9748MIDL_INTERFACE("c6e13343-30ac-11d0-a18c-00a0c9118956")
 9749IAMVideoCompression : 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
 9797typedef 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
 9868interface 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 ***/
 9892static inline HRESULT IAMVideoCompression_QueryInterface(IAMVideoCompression* This,REFIID riid,void **ppvObject) {
 9893    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9894}
 9895static inline ULONG IAMVideoCompression_AddRef(IAMVideoCompression* This) {
 9896    return This->lpVtbl->AddRef(This);
 9897}
 9898static inline ULONG IAMVideoCompression_Release(IAMVideoCompression* This) {
 9899    return This->lpVtbl->Release(This);
 9900}
 9901/*** IAMVideoCompression methods ***/
 9902static inline HRESULT IAMVideoCompression_put_KeyFrameRate(IAMVideoCompression* This,LONG frame_rate) {
 9903    return This->lpVtbl->put_KeyFrameRate(This,frame_rate);
 9904}
 9905static inline HRESULT IAMVideoCompression_get_KeyFrameRate(IAMVideoCompression* This,LONG *frame_rate) {
 9906    return This->lpVtbl->get_KeyFrameRate(This,frame_rate);
 9907}
 9908static inline HRESULT IAMVideoCompression_put_PFramesPerKeyFrame(IAMVideoCompression* This,LONG frame) {
 9909    return This->lpVtbl->put_PFramesPerKeyFrame(This,frame);
 9910}
 9911static inline HRESULT IAMVideoCompression_get_PFramesPerKeyFrame(IAMVideoCompression* This,LONG *frame) {
 9912    return This->lpVtbl->get_PFramesPerKeyFrame(This,frame);
 9913}
 9914static inline HRESULT IAMVideoCompression_put_Quality(IAMVideoCompression* This,double quality) {
 9915    return This->lpVtbl->put_Quality(This,quality);
 9916}
 9917static inline HRESULT IAMVideoCompression_get_Quality(IAMVideoCompression* This,double *quality) {
 9918    return This->lpVtbl->get_Quality(This,quality);
 9919}
 9920static inline HRESULT IAMVideoCompression_put_WindowSize(IAMVideoCompression* This,DWORDLONG size) {
 9921    return This->lpVtbl->put_WindowSize(This,size);
 9922}
 9923static inline HRESULT IAMVideoCompression_get_WindowSize(IAMVideoCompression* This,DWORDLONG *size) {
 9924    return This->lpVtbl->get_WindowSize(This,size);
 9925}
 9926static 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}
 9929static inline HRESULT IAMVideoCompression_OverrideKeyFrame(IAMVideoCompression* This,LONG number) {
 9930    return This->lpVtbl->OverrideKeyFrame(This,number);
 9931}
 9932static 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
 9949DEFINE_GUID(IID_IAMCrossbar, 0xc6e13380, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
 9950#if defined(__cplusplus) && !defined(CINTERFACE)
 9951MIDL_INTERFACE("c6e13380-30ac-11d0-a18c-00a0c9118956")
 9952IAMCrossbar : 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
 9981typedef 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
10027interface 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 ***/
10045static inline HRESULT IAMCrossbar_QueryInterface(IAMCrossbar* This,REFIID riid,void **ppvObject) {
10046    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10047}
10048static inline ULONG IAMCrossbar_AddRef(IAMCrossbar* This) {
10049    return This->lpVtbl->AddRef(This);
10050}
10051static inline ULONG IAMCrossbar_Release(IAMCrossbar* This) {
10052    return This->lpVtbl->Release(This);
10053}
10054/*** IAMCrossbar methods ***/
10055static inline HRESULT IAMCrossbar_get_PinCounts(IAMCrossbar* This,LONG *output,LONG *intput) {
10056    return This->lpVtbl->get_PinCounts(This,output,intput);
10057}
10058static inline HRESULT IAMCrossbar_CanRoute(IAMCrossbar* This,LONG output,LONG input) {
10059    return This->lpVtbl->CanRoute(This,output,input);
10060}
10061static inline HRESULT IAMCrossbar_Route(IAMCrossbar* This,LONG output,LONG input) {
10062    return This->lpVtbl->Route(This,output,input);
10063}
10064static inline HRESULT IAMCrossbar_get_IsRoutedTo(IAMCrossbar* This,LONG output,LONG *input) {
10065    return This->lpVtbl->get_IsRoutedTo(This,output,input);
10066}
10067static 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
10078typedef 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
10087DEFINE_GUID(IID_IAMTunerNotification, 0x211a8760, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39);
10088#if defined(__cplusplus) && !defined(CINTERFACE)
10089MIDL_INTERFACE("211a8760-03ac-11d1-8d13-00aa00bd8339")
10090IAMTunerNotification : 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
10100typedef 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
10123interface 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 ***/
10137static inline HRESULT IAMTunerNotification_QueryInterface(IAMTunerNotification* This,REFIID riid,void **ppvObject) {
10138    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10139}
10140static inline ULONG IAMTunerNotification_AddRef(IAMTunerNotification* This) {
10141    return This->lpVtbl->AddRef(This);
10142}
10143static inline ULONG IAMTunerNotification_Release(IAMTunerNotification* This) {
10144    return This->lpVtbl->Release(This);
10145}
10146/*** IAMTunerNotification methods ***/
10147static 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
10158typedef 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
10171DEFINE_GUID(IID_IAMTuner, 0x211a8761, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39);
10172#if defined(__cplusplus) && !defined(CINTERFACE)
10173MIDL_INTERFACE("211a8761-03ac-11d1-8d13-00aa00bd8339")
10174IAMTuner : 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
10232typedef 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
10316interface 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 ***/
10344static inline HRESULT IAMTuner_QueryInterface(IAMTuner* This,REFIID riid,void **ppvObject) {
10345    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10346}
10347static inline ULONG IAMTuner_AddRef(IAMTuner* This) {
10348    return This->lpVtbl->AddRef(This);
10349}
10350static inline ULONG IAMTuner_Release(IAMTuner* This) {
10351    return This->lpVtbl->Release(This);
10352}
10353/*** IAMTuner methods ***/
10354static inline HRESULT IAMTuner_put_Channel(IAMTuner* This,LONG channel,LONG video,LONG audio) {
10355    return This->lpVtbl->put_Channel(This,channel,video,audio);
10356}
10357static inline HRESULT IAMTuner_get_Channel(IAMTuner* This,LONG *channel,LONG *video,LONG *audio) {
10358    return This->lpVtbl->get_Channel(This,channel,video,audio);
10359}
10360static inline HRESULT IAMTuner_ChannelMinMax(IAMTuner* This,LONG *min,LONG *max) {
10361    return This->lpVtbl->ChannelMinMax(This,min,max);
10362}
10363static inline HRESULT IAMTuner_put_CountryCode(IAMTuner* This,LONG country) {
10364    return This->lpVtbl->put_CountryCode(This,country);
10365}
10366static inline HRESULT IAMTuner_get_CountryCode(IAMTuner* This,LONG *country) {
10367    return This->lpVtbl->get_CountryCode(This,country);
10368}
10369static inline HRESULT IAMTuner_put_TuningSpace(IAMTuner* This,LONG tuning_space) {
10370    return This->lpVtbl->put_TuningSpace(This,tuning_space);
10371}
10372static inline HRESULT IAMTuner_get_TuningSpace(IAMTuner* This,LONG *tuning_space) {
10373    return This->lpVtbl->get_TuningSpace(This,tuning_space);
10374}
10375static inline HRESULT IAMTuner_Logon(IAMTuner* This,HANDLE user) {
10376    return This->lpVtbl->Logon(This,user);
10377}
10378static inline HRESULT IAMTuner_Logout(IAMTuner* This) {
10379    return This->lpVtbl->Logout(This);
10380}
10381static inline HRESULT IAMTuner_SignalPresent(IAMTuner* This,LONG *signal_strength) {
10382    return This->lpVtbl->SignalPresent(This,signal_strength);
10383}
10384static inline HRESULT IAMTuner_put_Mode(IAMTuner* This,AMTunerModeType mode) {
10385    return This->lpVtbl->put_Mode(This,mode);
10386}
10387static inline HRESULT IAMTuner_get_Mode(IAMTuner* This,AMTunerModeType *mode) {
10388    return This->lpVtbl->get_Mode(This,mode);
10389}
10390static inline HRESULT IAMTuner_GetAvailableModes(IAMTuner* This,LONG *modes) {
10391    return This->lpVtbl->GetAvailableModes(This,modes);
10392}
10393static inline HRESULT IAMTuner_RegisterNotificationCallBack(IAMTuner* This,IAMTunerNotification *notify,LONG events) {
10394    return This->lpVtbl->RegisterNotificationCallBack(This,notify,events);
10395}
10396static 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
10413DEFINE_GUID(IID_IAMTVTuner, 0x211a8766, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39);
10414#if defined(__cplusplus) && !defined(CINTERFACE)
10415MIDL_INTERFACE("211a8766-03ac-11d1-8d13-00aa00bd8339")
10416IAMTVTuner : 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
10459typedef 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
10590interface 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 ***/
10630static inline HRESULT IAMTVTuner_QueryInterface(IAMTVTuner* This,REFIID riid,void **ppvObject) {
10631    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10632}
10633static inline ULONG IAMTVTuner_AddRef(IAMTVTuner* This) {
10634    return This->lpVtbl->AddRef(This);
10635}
10636static inline ULONG IAMTVTuner_Release(IAMTVTuner* This) {
10637    return This->lpVtbl->Release(This);
10638}
10639/*** IAMTuner methods ***/
10640static inline HRESULT IAMTVTuner_put_Channel(IAMTVTuner* This,LONG channel,LONG video,LONG audio) {
10641    return This->lpVtbl->put_Channel(This,channel,video,audio);
10642}
10643static inline HRESULT IAMTVTuner_get_Channel(IAMTVTuner* This,LONG *channel,LONG *video,LONG *audio) {
10644    return This->lpVtbl->get_Channel(This,channel,video,audio);
10645}
10646static inline HRESULT IAMTVTuner_ChannelMinMax(IAMTVTuner* This,LONG *min,LONG *max) {
10647    return This->lpVtbl->ChannelMinMax(This,min,max);
10648}
10649static inline HRESULT IAMTVTuner_put_CountryCode(IAMTVTuner* This,LONG country) {
10650    return This->lpVtbl->put_CountryCode(This,country);
10651}
10652static inline HRESULT IAMTVTuner_get_CountryCode(IAMTVTuner* This,LONG *country) {
10653    return This->lpVtbl->get_CountryCode(This,country);
10654}
10655static inline HRESULT IAMTVTuner_put_TuningSpace(IAMTVTuner* This,LONG tuning_space) {
10656    return This->lpVtbl->put_TuningSpace(This,tuning_space);
10657}
10658static inline HRESULT IAMTVTuner_get_TuningSpace(IAMTVTuner* This,LONG *tuning_space) {
10659    return This->lpVtbl->get_TuningSpace(This,tuning_space);
10660}
10661static inline HRESULT IAMTVTuner_Logon(IAMTVTuner* This,HANDLE user) {
10662    return This->lpVtbl->Logon(This,user);
10663}
10664static inline HRESULT IAMTVTuner_Logout(IAMTVTuner* This) {
10665    return This->lpVtbl->Logout(This);
10666}
10667static inline HRESULT IAMTVTuner_SignalPresent(IAMTVTuner* This,LONG *signal_strength) {
10668    return This->lpVtbl->SignalPresent(This,signal_strength);
10669}
10670static inline HRESULT IAMTVTuner_put_Mode(IAMTVTuner* This,AMTunerModeType mode) {
10671    return This->lpVtbl->put_Mode(This,mode);
10672}
10673static inline HRESULT IAMTVTuner_get_Mode(IAMTVTuner* This,AMTunerModeType *mode) {
10674    return This->lpVtbl->get_Mode(This,mode);
10675}
10676static inline HRESULT IAMTVTuner_GetAvailableModes(IAMTVTuner* This,LONG *modes) {
10677    return This->lpVtbl->GetAvailableModes(This,modes);
10678}
10679static inline HRESULT IAMTVTuner_RegisterNotificationCallBack(IAMTVTuner* This,IAMTunerNotification *notify,LONG events) {
10680    return This->lpVtbl->RegisterNotificationCallBack(This,notify,events);
10681}
10682static inline HRESULT IAMTVTuner_UnRegisterNotificationCallBack(IAMTVTuner* This,IAMTunerNotification *notify) {
10683    return This->lpVtbl->UnRegisterNotificationCallBack(This,notify);
10684}
10685/*** IAMTVTuner methods ***/
10686static inline HRESULT IAMTVTuner_get_AvailableTVFormats(IAMTVTuner* This,LONG *standard) {
10687    return This->lpVtbl->get_AvailableTVFormats(This,standard);
10688}
10689static inline HRESULT IAMTVTuner_get_TVFormat(IAMTVTuner* This,LONG *standard) {
10690    return This->lpVtbl->get_TVFormat(This,standard);
10691}
10692static inline HRESULT IAMTVTuner_AutoTune(IAMTVTuner* This,LONG channel,LONG *signal) {
10693    return This->lpVtbl->AutoTune(This,channel,signal);
10694}
10695static inline HRESULT IAMTVTuner_StoreAutoTune(IAMTVTuner* This) {
10696    return This->lpVtbl->StoreAutoTune(This);
10697}
10698static inline HRESULT IAMTVTuner_get_NumInputConnections(IAMTVTuner* This,LONG *number) {
10699    return This->lpVtbl->get_NumInputConnections(This,number);
10700}
10701static inline HRESULT IAMTVTuner_put_InputType(IAMTVTuner* This,LONG index,TunerInputType type) {
10702    return This->lpVtbl->put_InputType(This,index,type);
10703}
10704static inline HRESULT IAMTVTuner_get_InputType(IAMTVTuner* This,LONG index,TunerInputType *type) {
10705    return This->lpVtbl->get_InputType(This,index,type);
10706}
10707static inline HRESULT IAMTVTuner_put_ConnectInput(IAMTVTuner* This,LONG index) {
10708    return This->lpVtbl->put_ConnectInput(This,index);
10709}
10710static inline HRESULT IAMTVTuner_get_ConnectInput(IAMTVTuner* This,LONG *index) {
10711    return This->lpVtbl->get_ConnectInput(This,index);
10712}
10713static inline HRESULT IAMTVTuner_get_VideoFrequency(IAMTVTuner* This,LONG *freq) {
10714    return This->lpVtbl->get_VideoFrequency(This,freq);
10715}
10716static 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
10733DEFINE_GUID(IID_IVideoFrameStep, 0xe46a9787, 0x2b71, 0x444d, 0xa4,0xb5, 0x1f,0xab,0x7b,0x70,0x8d,0x6a);
10734#if defined(__cplusplus) && !defined(CINTERFACE)
10735MIDL_INTERFACE("e46a9787-2b71-444d-a4b5-1fab7b708d6a")
10736IVideoFrameStep : 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
10754typedef 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
10786interface 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 ***/
10802static inline HRESULT IVideoFrameStep_QueryInterface(IVideoFrameStep* This,REFIID riid,void **ppvObject) {
10803    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10804}
10805static inline ULONG IVideoFrameStep_AddRef(IVideoFrameStep* This) {
10806    return This->lpVtbl->AddRef(This);
10807}
10808static inline ULONG IVideoFrameStep_Release(IVideoFrameStep* This) {
10809    return This->lpVtbl->Release(This);
10810}
10811/*** IVideoFrameStep methods ***/
10812static inline HRESULT IVideoFrameStep_Step(IVideoFrameStep* This,DWORD frame_count,IUnknown *filter) {
10813    return This->lpVtbl->Step(This,frame_count,filter);
10814}
10815static inline HRESULT IVideoFrameStep_CanStep(IVideoFrameStep* This,LONG multiple,IUnknown *filter) {
10816    return This->lpVtbl->CanStep(This,multiple,filter);
10817}
10818static 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
10836DEFINE_GUID(IID_IAMAsyncReaderTimestampScaling, 0xcf7b26fc, 0x9a00, 0x485b, 0x81,0x47, 0x3e,0x78,0x9d,0x5e,0x8f,0x67);
10837#if defined(__cplusplus) && !defined(CINTERFACE)
10838MIDL_INTERFACE("cf7b26fc-9a00-485b-8147-3e789d5e8f67")
10839IAMAsyncReaderTimestampScaling : 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
10852typedef 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
10879interface 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 ***/
10894static inline HRESULT IAMAsyncReaderTimestampScaling_QueryInterface(IAMAsyncReaderTimestampScaling* This,REFIID riid,void **ppvObject) {
10895    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10896}
10897static inline ULONG IAMAsyncReaderTimestampScaling_AddRef(IAMAsyncReaderTimestampScaling* This) {
10898    return This->lpVtbl->AddRef(This);
10899}
10900static inline ULONG IAMAsyncReaderTimestampScaling_Release(IAMAsyncReaderTimestampScaling* This) {
10901    return This->lpVtbl->Release(This);
10902}
10903/*** IAMAsyncReaderTimestampScaling methods ***/
10904static inline HRESULT IAMAsyncReaderTimestampScaling_GetTimestampMode(IAMAsyncReaderTimestampScaling* This,WINBOOL *pfRaw) {
10905    return This->lpVtbl->GetTimestampMode(This,pfRaw);
10906}
10907static 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
10924DEFINE_GUID(IID_IAMPluginControl, 0x0e26a181, 0xf40c, 0x4635, 0x87,0x86, 0x97,0x62,0x84,0xb5,0x29,0x81);
10925#if defined(__cplusplus) && !defined(CINTERFACE)
10926MIDL_INTERFACE("0e26a181-f40c-4635-8786-976284b52981")
10927IAMPluginControl : 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
10961typedef 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
11014interface 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 ***/
11034static inline HRESULT IAMPluginControl_QueryInterface(IAMPluginControl* This,REFIID riid,void **ppvObject) {
11035    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11036}
11037static inline ULONG IAMPluginControl_AddRef(IAMPluginControl* This) {
11038    return This->lpVtbl->AddRef(This);
11039}
11040static inline ULONG IAMPluginControl_Release(IAMPluginControl* This) {
11041    return This->lpVtbl->Release(This);
11042}
11043/*** IAMPluginControl methods ***/
11044static inline HRESULT IAMPluginControl_GetPreferredClsid(IAMPluginControl* This,REFGUID subType,CLSID *clsid) {
11045    return This->lpVtbl->GetPreferredClsid(This,subType,clsid);
11046}
11047static inline HRESULT IAMPluginControl_GetPreferredClsidByIndex(IAMPluginControl* This,DWORD index,GUID *subType,CLSID *clsid) {
11048    return This->lpVtbl->GetPreferredClsidByIndex(This,index,subType,clsid);
11049}
11050static inline HRESULT IAMPluginControl_SetPreferredClsid(IAMPluginControl* This,REFGUID subType,const CLSID *clsid) {
11051    return This->lpVtbl->SetPreferredClsid(This,subType,clsid);
11052}
11053static inline HRESULT IAMPluginControl_IsDisabled(IAMPluginControl* This,REFCLSID clsid) {
11054    return This->lpVtbl->IsDisabled(This,clsid);
11055}
11056static inline HRESULT IAMPluginControl_GetDisabledByIndex(IAMPluginControl* This,DWORD index,CLSID *clsid) {
11057    return This->lpVtbl->GetDisabledByIndex(This,index,clsid);
11058}
11059static inline HRESULT IAMPluginControl_SetDisabled(IAMPluginControl* This,REFCLSID clsid,WINBOOL disabled) {
11060    return This->lpVtbl->SetDisabled(This,clsid,disabled);
11061}
11062static 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__
11076typedef interface IPinConnection IPinConnection;
11077#ifdef __cplusplus
11078interface IPinConnection;
11079#endif /* __cplusplus */
11080#endif
11081
11082#ifndef __IPinFlowControl_FWD_DEFINED__
11083#define __IPinFlowControl_FWD_DEFINED__
11084typedef interface IPinFlowControl IPinFlowControl;
11085#ifdef __cplusplus
11086interface IPinFlowControl;
11087#endif /* __cplusplus */
11088#endif
11089
11090#ifndef __IGraphConfig_FWD_DEFINED__
11091#define __IGraphConfig_FWD_DEFINED__
11092typedef interface IGraphConfig IGraphConfig;
11093#ifdef __cplusplus
11094interface IGraphConfig;
11095#endif /* __cplusplus */
11096#endif
11097
11098#ifndef __IGraphConfigCallback_FWD_DEFINED__
11099#define __IGraphConfigCallback_FWD_DEFINED__
11100typedef interface IGraphConfigCallback IGraphConfigCallback;
11101#ifdef __cplusplus
11102interface IGraphConfigCallback;
11103#endif /* __cplusplus */
11104#endif
11105
11106/*****************************************************************************
11107 * IPinConnection interface
11108 */
11109#ifndef __IPinConnection_INTERFACE_DEFINED__
11110#define __IPinConnection_INTERFACE_DEFINED__
11111
11112DEFINE_GUID(IID_IPinConnection, 0x4a9a62d3, 0x27d4, 0x403d, 0x91,0xe9, 0x89,0xf5,0x40,0xe5,0x55,0x34);
11113#if defined(__cplusplus) && !defined(CINTERFACE)
11114MIDL_INTERFACE("4a9a62d3-27d4-403d-91e9-89f540e55534")
11115IPinConnection : 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
11134typedef 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
11167interface 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 ***/
11184static inline HRESULT IPinConnection_QueryInterface(IPinConnection* This,REFIID riid,void **ppvObject) {
11185    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11186}
11187static inline ULONG IPinConnection_AddRef(IPinConnection* This) {
11188    return This->lpVtbl->AddRef(This);
11189}
11190static inline ULONG IPinConnection_Release(IPinConnection* This) {
11191    return This->lpVtbl->Release(This);
11192}
11193/*** IPinConnection methods ***/
11194static inline HRESULT IPinConnection_DynamicQueryAccept(IPinConnection* This,const AM_MEDIA_TYPE *pmt) {
11195    return This->lpVtbl->DynamicQueryAccept(This,pmt);
11196}
11197static inline HRESULT IPinConnection_NotifyEndOfStream(IPinConnection* This,HANDLE hNotifyEvent) {
11198    return This->lpVtbl->NotifyEndOfStream(This,hNotifyEvent);
11199}
11200static inline HRESULT IPinConnection_IsEndPin(IPinConnection* This) {
11201    return This->lpVtbl->IsEndPin(This);
11202}
11203static 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
11220DEFINE_GUID(IID_IPinFlowControl, 0xc56e9858, 0xdbf3, 0x4f6b, 0x81,0x19, 0x38,0x4a,0xf2,0x06,0x0d,0xeb);
11221#if defined(__cplusplus) && !defined(CINTERFACE)
11222MIDL_INTERFACE("c56e9858-dbf3-4f6b-8119-384af2060deb")
11223IPinFlowControl : 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
11234typedef 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
11258interface 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 ***/
11272static inline HRESULT IPinFlowControl_QueryInterface(IPinFlowControl* This,REFIID riid,void **ppvObject) {
11273    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11274}
11275static inline ULONG IPinFlowControl_AddRef(IPinFlowControl* This) {
11276    return This->lpVtbl->AddRef(This);
11277}
11278static inline ULONG IPinFlowControl_Release(IPinFlowControl* This) {
11279    return This->lpVtbl->Release(This);
11280}
11281/*** IPinFlowControl methods ***/
11282static 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
11293enum _AM_PIN_FLOW_CONTROL_BLOCK_FLAGS {
11294    AM_PIN_FLOW_CONTROL_BLOCK = 0x1
11295};
11296typedef 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;
11301enum _REM_FILTER_FLAGS {
11302    REMFILTERF_LEAVECONNECTED = 0x1
11303};
11304typedef 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
11313DEFINE_GUID(IID_IGraphConfig, 0x03a1eb8e, 0x32bf, 0x4245, 0x85,0x02, 0x11,0x4d,0x08,0xa9,0xcb,0x88);
11314#if defined(__cplusplus) && !defined(CINTERFACE)
11315MIDL_INTERFACE("03a1eb8e-32bf-4245-8502-114d08a9cb88")
11316IGraphConfig : 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
11366typedef 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
11438interface 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 ***/
11461static inline HRESULT IGraphConfig_QueryInterface(IGraphConfig* This,REFIID riid,void **ppvObject) {
11462    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11463}
11464static inline ULONG IGraphConfig_AddRef(IGraphConfig* This) {
11465    return This->lpVtbl->AddRef(This);
11466}
11467static inline ULONG IGraphConfig_Release(IGraphConfig* This) {
11468    return This->lpVtbl->Release(This);
11469}
11470/*** IGraphConfig methods ***/
11471static 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}
11474static 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}
11477static inline HRESULT IGraphConfig_AddFilterToCache(IGraphConfig* This,IBaseFilter *pFilter) {
11478    return This->lpVtbl->AddFilterToCache(This,pFilter);
11479}
11480static inline HRESULT IGraphConfig_EnumCacheFilter(IGraphConfig* This,IEnumFilters **pEnum) {
11481    return This->lpVtbl->EnumCacheFilter(This,pEnum);
11482}
11483static inline HRESULT IGraphConfig_RemoveFilterFromCache(IGraphConfig* This,IBaseFilter *pFilter) {
11484    return This->lpVtbl->RemoveFilterFromCache(This,pFilter);
11485}
11486static inline HRESULT IGraphConfig_GetStartTime(IGraphConfig* This,REFERENCE_TIME *prtStart) {
11487    return This->lpVtbl->GetStartTime(This,prtStart);
11488}
11489static inline HRESULT IGraphConfig_PushThroughData(IGraphConfig* This,IPin *pOutputPin,IPinConnection *pConnection,HANDLE hEventAbort) {
11490    return This->lpVtbl->PushThroughData(This,pOutputPin,pConnection,hEventAbort);
11491}
11492static inline HRESULT IGraphConfig_SetFilterFlags(IGraphConfig* This,IBaseFilter *pFilter,DWORD dwFlags) {
11493    return This->lpVtbl->SetFilterFlags(This,pFilter,dwFlags);
11494}
11495static inline HRESULT IGraphConfig_GetFilterFlags(IGraphConfig* This,IBaseFilter *pFilter,DWORD *pdwFlags) {
11496    return This->lpVtbl->GetFilterFlags(This,pFilter,pdwFlags);
11497}
11498static 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
11515DEFINE_GUID(IID_IGraphConfigCallback, 0xade0fd60, 0xd19d, 0x11d2, 0xab,0xf6, 0x00,0xa0,0xc9,0x05,0xf3,0x75);
11516#if defined(__cplusplus) && !defined(CINTERFACE)
11517MIDL_INTERFACE("ade0fd60-d19d-11d2-abf6-00a0c905f375")
11518IGraphConfigCallback : 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
11529typedef 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
11553interface 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 ***/
11567static inline HRESULT IGraphConfigCallback_QueryInterface(IGraphConfigCallback* This,REFIID riid,void **ppvObject) {
11568    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11569}
11570static inline ULONG IGraphConfigCallback_AddRef(IGraphConfigCallback* This) {
11571    return This->lpVtbl->AddRef(This);
11572}
11573static inline ULONG IGraphConfigCallback_Release(IGraphConfigCallback* This) {
11574    return This->lpVtbl->Release(This);
11575}
11576/*** IGraphConfigCallback methods ***/
11577static 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
11594DEFINE_GUID(IID_IFilterChain, 0xdcfbdcf6, 0x0dc2, 0x45f5, 0x9a,0xb2, 0x7c,0x33,0x0e,0xa0,0x9c,0x29);
11595#if defined(__cplusplus) && !defined(CINTERFACE)
11596MIDL_INTERFACE("dcfbdcf6-0dc2-45f5-9ab2-7c330ea09c29")
11597IFilterChain : 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
11620typedef 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
11659interface 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 ***/
11676static inline HRESULT IFilterChain_QueryInterface(IFilterChain* This,REFIID riid,void **ppvObject) {
11677    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11678}
11679static inline ULONG IFilterChain_AddRef(IFilterChain* This) {
11680    return This->lpVtbl->AddRef(This);
11681}
11682static inline ULONG IFilterChain_Release(IFilterChain* This) {
11683    return This->lpVtbl->Release(This);
11684}
11685/*** IFilterChain methods ***/
11686static inline HRESULT IFilterChain_StartChain(IFilterChain* This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) {
11687    return This->lpVtbl->StartChain(This,pStartFilter,pEndFilter);
11688}
11689static inline HRESULT IFilterChain_PauseChain(IFilterChain* This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) {
11690    return This->lpVtbl->PauseChain(This,pStartFilter,pEndFilter);
11691}
11692static inline HRESULT IFilterChain_StopChain(IFilterChain* This,IBaseFilter *pStartFilter,IBaseFilter *pEndFilter) {
11693    return This->lpVtbl->StopChain(This,pStartFilter,pEndFilter);
11694}
11695static 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__
11708typedef struct IReferenceClock2 IReferenceClock2;
11709#endif
11710#ifndef __IDistributorNotify_FWD_DEFINED__
11711#define __IDistributorNotify_FWD_DEFINED__
11712typedef struct IDistributorNotify IDistributorNotify;
11713#endif
11714
11715#ifndef __IAMVfwCompressDialogs_FWD_DEFINED__
11716#define __IAMVfwCompressDialogs_FWD_DEFINED__
11717typedef struct IAMVfwCompressDialogs IAMVfwCompressDialogs;
11718#endif
11719
11720#ifndef __IAMAudioInputMixer_FWD_DEFINED__
11721#define __IAMAudioInputMixer_FWD_DEFINED__
11722typedef struct IAMAudioInputMixer IAMAudioInputMixer;
11723#endif
11724
11725#ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
11726#define __IAMAnalogVideoDecoder_FWD_DEFINED__
11727typedef struct IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
11728#endif
11729
11730#ifndef __IBPCSatelliteTuner_FWD_DEFINED__
11731#define __IBPCSatelliteTuner_FWD_DEFINED__
11732typedef struct IBPCSatelliteTuner IBPCSatelliteTuner;
11733#endif
11734
11735#ifndef __IAMTVAudio_FWD_DEFINED__
11736#define __IAMTVAudio_FWD_DEFINED__
11737typedef struct IAMTVAudio IAMTVAudio;
11738#endif
11739
11740#ifndef __IAMTVAudioNotification_FWD_DEFINED__
11741#define __IAMTVAudioNotification_FWD_DEFINED__
11742typedef struct IAMTVAudioNotification IAMTVAudioNotification;
11743#endif
11744
11745#ifndef __IAMAnalogVideoEncoder_FWD_DEFINED__
11746#define __IAMAnalogVideoEncoder_FWD_DEFINED__
11747typedef struct IAMAnalogVideoEncoder IAMAnalogVideoEncoder;
11748#endif
11749
11750#ifndef __IAMPhysicalPinInfo_FWD_DEFINED__
11751#define __IAMPhysicalPinInfo_FWD_DEFINED__
11752typedef struct IAMPhysicalPinInfo IAMPhysicalPinInfo;
11753#endif
11754
11755#ifndef __IAMExtDevice_FWD_DEFINED__
11756#define __IAMExtDevice_FWD_DEFINED__
11757typedef struct IAMExtDevice IAMExtDevice;
11758#endif
11759
11760#ifndef __IAMExtTransport_FWD_DEFINED__
11761#define __IAMExtTransport_FWD_DEFINED__
11762typedef struct IAMExtTransport IAMExtTransport;
11763#endif
11764
11765#ifndef __IAMTimecodeReader_FWD_DEFINED__
11766#define __IAMTimecodeReader_FWD_DEFINED__
11767typedef struct IAMTimecodeReader IAMTimecodeReader;
11768#endif
11769
11770#ifndef __IAMTimecodeGenerator_FWD_DEFINED__
11771#define __IAMTimecodeGenerator_FWD_DEFINED__
11772typedef struct IAMTimecodeGenerator IAMTimecodeGenerator;
11773#endif
11774
11775#ifndef __IAMTimecodeDisplay_FWD_DEFINED__
11776#define __IAMTimecodeDisplay_FWD_DEFINED__
11777typedef struct IAMTimecodeDisplay IAMTimecodeDisplay;
11778#endif
11779
11780#ifndef __IAMDevMemoryAllocator_FWD_DEFINED__
11781#define __IAMDevMemoryAllocator_FWD_DEFINED__
11782typedef struct IAMDevMemoryAllocator IAMDevMemoryAllocator;
11783#endif
11784
11785#ifndef __IAMDevMemoryControl_FWD_DEFINED__
11786#define __IAMDevMemoryControl_FWD_DEFINED__
11787typedef struct IAMDevMemoryControl IAMDevMemoryControl;
11788#endif
11789
11790#ifndef __IAMStreamSelect_FWD_DEFINED__
11791#define __IAMStreamSelect_FWD_DEFINED__
11792typedef struct IAMStreamSelect IAMStreamSelect;
11793#endif
11794
11795#ifndef __IAMResourceControl_FWD_DEFINED__
11796#define __IAMResourceControl_FWD_DEFINED__
11797typedef struct IAMResourceControl IAMResourceControl;
11798#endif
11799
11800#ifndef __IAMClockAdjust_FWD_DEFINED__
11801#define __IAMClockAdjust_FWD_DEFINED__
11802typedef struct IAMClockAdjust IAMClockAdjust;
11803#endif
11804
11805#ifndef __IDrawVideoImage_FWD_DEFINED__
11806#define __IDrawVideoImage_FWD_DEFINED__
11807typedef struct IDrawVideoImage IDrawVideoImage;
11808#endif
11809
11810#ifndef __IDecimateVideoImage_FWD_DEFINED__
11811#define __IDecimateVideoImage_FWD_DEFINED__
11812typedef struct IDecimateVideoImage IDecimateVideoImage;
11813#endif
11814
11815#ifndef __IAMVideoDecimationProperties_FWD_DEFINED__
11816#define __IAMVideoDecimationProperties_FWD_DEFINED__
11817typedef struct IAMVideoDecimationProperties IAMVideoDecimationProperties;
11818#endif
11819
11820#ifndef __IAMDeviceRemoval_FWD_DEFINED__
11821#define __IAMDeviceRemoval_FWD_DEFINED__
11822typedef struct IAMDeviceRemoval IAMDeviceRemoval;
11823#endif
11824
11825#ifndef __IDVEnc_FWD_DEFINED__
11826#define __IDVEnc_FWD_DEFINED__
11827typedef struct IDVEnc IDVEnc;
11828#endif
11829
11830#ifndef __IIPDVDec_FWD_DEFINED__
11831#define __IIPDVDec_FWD_DEFINED__
11832typedef struct IIPDVDec IIPDVDec;
11833#endif
11834
11835#ifndef __IDVRGB219_FWD_DEFINED__
11836#define __IDVRGB219_FWD_DEFINED__
11837typedef struct IDVRGB219 IDVRGB219;
11838#endif
11839
11840#ifndef __IDVSplitter_FWD_DEFINED__
11841#define __IDVSplitter_FWD_DEFINED__
11842typedef struct IDVSplitter IDVSplitter;
11843#endif
11844
11845#ifndef __IAMAudioRendererStats_FWD_DEFINED__
11846#define __IAMAudioRendererStats_FWD_DEFINED__
11847typedef struct IAMAudioRendererStats IAMAudioRendererStats;
11848#endif
11849
11850#ifndef __IAMGraphStreams_FWD_DEFINED__
11851#define __IAMGraphStreams_FWD_DEFINED__
11852typedef struct IAMGraphStreams IAMGraphStreams;
11853#endif
11854
11855#ifndef __IAMOverlayFX_FWD_DEFINED__
11856#define __IAMOverlayFX_FWD_DEFINED__
11857typedef struct IAMOverlayFX IAMOverlayFX;
11858#endif
11859
11860#ifndef __IAMOpenProgress_FWD_DEFINED__
11861#define __IAMOpenProgress_FWD_DEFINED__
11862typedef struct IAMOpenProgress IAMOpenProgress;
11863#endif
11864
11865#ifndef __IMpeg2Demultiplexer_FWD_DEFINED__
11866#define __IMpeg2Demultiplexer_FWD_DEFINED__
11867typedef struct IMpeg2Demultiplexer IMpeg2Demultiplexer;
11868#endif
11869
11870#ifndef __IEnumStreamIdMap_FWD_DEFINED__
11871#define __IEnumStreamIdMap_FWD_DEFINED__
11872typedef struct IEnumStreamIdMap IEnumStreamIdMap;
11873#endif
11874
11875#ifndef __IMPEG2StreamIdMap_FWD_DEFINED__
11876#define __IMPEG2StreamIdMap_FWD_DEFINED__
11877typedef struct IMPEG2StreamIdMap IMPEG2StreamIdMap;
11878#endif
11879
11880#ifndef __IRegisterServiceProvider_FWD_DEFINED__
11881#define __IRegisterServiceProvider_FWD_DEFINED__
11882typedef struct IRegisterServiceProvider IRegisterServiceProvider;
11883#endif
11884
11885#ifndef __ICodecAPI_FWD_DEFINED__
11886#define __ICodecAPI_FWD_DEFINED__
11887typedef struct ICodecAPI ICodecAPI;
11888#endif
11889
11890#ifndef __IGetCapabilitiesKey_FWD_DEFINED__
11891#define __IGetCapabilitiesKey_FWD_DEFINED__
11892typedef struct IGetCapabilitiesKey IGetCapabilitiesKey;
11893#endif
11894
11895#ifndef __IEncoderAPI_FWD_DEFINED__
11896#define __IEncoderAPI_FWD_DEFINED__
11897typedef struct IEncoderAPI IEncoderAPI;
11898#endif
11899
11900#ifndef __IVideoEncoder_FWD_DEFINED__
11901#define __IVideoEncoder_FWD_DEFINED__
11902typedef struct IVideoEncoder IVideoEncoder;
11903#endif
11904
11905#ifndef __IAMDecoderCaps_FWD_DEFINED__
11906#define __IAMDecoderCaps_FWD_DEFINED__
11907typedef struct IAMDecoderCaps IAMDecoderCaps;
11908#endif
11909
11910#ifndef __IDvdControl_FWD_DEFINED__
11911#define __IDvdControl_FWD_DEFINED__
11912typedef struct IDvdControl IDvdControl;
11913#endif
11914
11915#ifndef __IDvdInfo_FWD_DEFINED__
11916#define __IDvdInfo_FWD_DEFINED__
11917typedef struct IDvdInfo IDvdInfo;
11918#endif
11919
11920#ifndef __IDvdCmd_FWD_DEFINED__
11921#define __IDvdCmd_FWD_DEFINED__
11922typedef struct IDvdCmd IDvdCmd;
11923#endif
11924
11925#ifndef __IDvdState_FWD_DEFINED__
11926#define __IDvdState_FWD_DEFINED__
11927typedef struct IDvdState IDvdState;
11928#endif
11929
11930#ifndef __IDvdControl2_FWD_DEFINED__
11931#define __IDvdControl2_FWD_DEFINED__
11932typedef struct IDvdControl2 IDvdControl2;
11933#endif
11934
11935#ifndef __IDvdInfo2_FWD_DEFINED__
11936#define __IDvdInfo2_FWD_DEFINED__
11937typedef struct IDvdInfo2 IDvdInfo2;
11938#endif
11939
11940#ifndef __IDvdGraphBuilder_FWD_DEFINED__
11941#define __IDvdGraphBuilder_FWD_DEFINED__
11942typedef struct IDvdGraphBuilder IDvdGraphBuilder;
11943#endif
11944
11945#ifndef __IDDrawExclModeVideo_FWD_DEFINED__
11946#define __IDDrawExclModeVideo_FWD_DEFINED__
11947typedef struct IDDrawExclModeVideo IDDrawExclModeVideo;
11948#endif
11949
11950#ifndef __IDDrawExclModeVideoCallback_FWD_DEFINED__
11951#define __IDDrawExclModeVideoCallback_FWD_DEFINED__
11952typedef struct IDDrawExclModeVideoCallback IDDrawExclModeVideoCallback;
11953#endif
11954
11955#ifndef __IVMRImagePresenter_FWD_DEFINED__
11956#define __IVMRImagePresenter_FWD_DEFINED__
11957typedef struct IVMRImagePresenter IVMRImagePresenter;
11958#endif
11959
11960#ifndef __IVMRSurfaceAllocator_FWD_DEFINED__
11961#define __IVMRSurfaceAllocator_FWD_DEFINED__
11962typedef struct IVMRSurfaceAllocator IVMRSurfaceAllocator;
11963#endif
11964
11965#ifndef __IVMRSurfaceAllocatorNotify_FWD_DEFINED__
11966#define __IVMRSurfaceAllocatorNotify_FWD_DEFINED__
11967typedef struct IVMRSurfaceAllocatorNotify IVMRSurfaceAllocatorNotify;
11968#endif
11969
11970#ifndef __IVMRWindowlessControl_FWD_DEFINED__
11971#define __IVMRWindowlessControl_FWD_DEFINED__
11972typedef struct IVMRWindowlessControl IVMRWindowlessControl;
11973#endif
11974
11975#ifndef __IVMRMixerControl_FWD_DEFINED__
11976#define __IVMRMixerControl_FWD_DEFINED__
11977typedef struct IVMRMixerControl IVMRMixerControl;
11978#endif
11979
11980#ifndef __IVMRMonitorConfig_FWD_DEFINED__
11981#define __IVMRMonitorConfig_FWD_DEFINED__
11982typedef struct IVMRMonitorConfig IVMRMonitorConfig;
11983#endif
11984
11985#ifndef __IVMRFilterConfig_FWD_DEFINED__
11986#define __IVMRFilterConfig_FWD_DEFINED__
11987typedef struct IVMRFilterConfig IVMRFilterConfig;
11988#endif
11989
11990#ifndef __IVMRAspectRatioControl_FWD_DEFINED__
11991#define __IVMRAspectRatioControl_FWD_DEFINED__
11992typedef struct IVMRAspectRatioControl IVMRAspectRatioControl;
11993#endif
11994
11995#ifndef __IVMRDeinterlaceControl_FWD_DEFINED__
11996#define __IVMRDeinterlaceControl_FWD_DEFINED__
11997typedef struct IVMRDeinterlaceControl IVMRDeinterlaceControl;
11998#endif
11999
12000#ifndef __IVMRMixerBitmap_FWD_DEFINED__
12001#define __IVMRMixerBitmap_FWD_DEFINED__
12002typedef struct IVMRMixerBitmap IVMRMixerBitmap;
12003#endif
12004
12005#ifndef __IVMRImageCompositor_FWD_DEFINED__
12006#define __IVMRImageCompositor_FWD_DEFINED__
12007typedef struct IVMRImageCompositor IVMRImageCompositor;
12008#endif
12009
12010#ifndef __IVMRVideoStreamControl_FWD_DEFINED__
12011#define __IVMRVideoStreamControl_FWD_DEFINED__
12012typedef struct IVMRVideoStreamControl IVMRVideoStreamControl;
12013#endif
12014
12015#ifndef __IVMRSurface_FWD_DEFINED__
12016#define __IVMRSurface_FWD_DEFINED__
12017typedef struct IVMRSurface IVMRSurface;
12018#endif
12019
12020#ifndef __IVMRImagePresenterConfig_FWD_DEFINED__
12021#define __IVMRImagePresenterConfig_FWD_DEFINED__
12022typedef struct IVMRImagePresenterConfig IVMRImagePresenterConfig;
12023#endif
12024
12025#ifndef __IVMRImagePresenterExclModeConfig_FWD_DEFINED__
12026#define __IVMRImagePresenterExclModeConfig_FWD_DEFINED__
12027typedef struct IVMRImagePresenterExclModeConfig IVMRImagePresenterExclModeConfig;
12028#endif
12029
12030#ifndef __IVPManager_FWD_DEFINED__
12031#define __IVPManager_FWD_DEFINED__
12032typedef struct IVPManager IVPManager;
12033#endif
12034
12035#ifndef __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
12036#define __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
12037typedef struct IAMAsyncReaderTimestampScaling IAMAsyncReaderTimestampScaling;
12038#endif
12039
12040#ifndef __IAMPluginControl_FWD_DEFINED__
12041#define __IAMPluginControl_FWD_DEFINED__
12042typedef 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__ */