zig

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

blob 45f38c2e (69670B) - Raw


      1 /*** Autogenerated by WIDL 4.19 from direct-x/include/amstream.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 __amstream_h__
     17 #define __amstream_h__
     18 
     19 /* Forward declarations */
     20 
     21 #ifndef __IDirectShowStream_FWD_DEFINED__
     22 #define __IDirectShowStream_FWD_DEFINED__
     23 typedef interface IDirectShowStream IDirectShowStream;
     24 #ifdef __cplusplus
     25 interface IDirectShowStream;
     26 #endif /* __cplusplus */
     27 #endif
     28 
     29 #ifndef __IAMMultiMediaStream_FWD_DEFINED__
     30 #define __IAMMultiMediaStream_FWD_DEFINED__
     31 typedef interface IAMMultiMediaStream IAMMultiMediaStream;
     32 #ifdef __cplusplus
     33 interface IAMMultiMediaStream;
     34 #endif /* __cplusplus */
     35 #endif
     36 
     37 #ifndef __IAMMediaStream_FWD_DEFINED__
     38 #define __IAMMediaStream_FWD_DEFINED__
     39 typedef interface IAMMediaStream IAMMediaStream;
     40 #ifdef __cplusplus
     41 interface IAMMediaStream;
     42 #endif /* __cplusplus */
     43 #endif
     44 
     45 #ifndef __IMediaStreamFilter_FWD_DEFINED__
     46 #define __IMediaStreamFilter_FWD_DEFINED__
     47 typedef interface IMediaStreamFilter IMediaStreamFilter;
     48 #ifdef __cplusplus
     49 interface IMediaStreamFilter;
     50 #endif /* __cplusplus */
     51 #endif
     52 
     53 #ifndef __IDirectDrawMediaSampleAllocator_FWD_DEFINED__
     54 #define __IDirectDrawMediaSampleAllocator_FWD_DEFINED__
     55 typedef interface IDirectDrawMediaSampleAllocator IDirectDrawMediaSampleAllocator;
     56 #ifdef __cplusplus
     57 interface IDirectDrawMediaSampleAllocator;
     58 #endif /* __cplusplus */
     59 #endif
     60 
     61 #ifndef __IDirectDrawMediaSample_FWD_DEFINED__
     62 #define __IDirectDrawMediaSample_FWD_DEFINED__
     63 typedef interface IDirectDrawMediaSample IDirectDrawMediaSample;
     64 #ifdef __cplusplus
     65 interface IDirectDrawMediaSample;
     66 #endif /* __cplusplus */
     67 #endif
     68 
     69 #ifndef __IAMMediaTypeStream_FWD_DEFINED__
     70 #define __IAMMediaTypeStream_FWD_DEFINED__
     71 typedef interface IAMMediaTypeStream IAMMediaTypeStream;
     72 #ifdef __cplusplus
     73 interface IAMMediaTypeStream;
     74 #endif /* __cplusplus */
     75 #endif
     76 
     77 #ifndef __IAMMediaTypeSample_FWD_DEFINED__
     78 #define __IAMMediaTypeSample_FWD_DEFINED__
     79 typedef interface IAMMediaTypeSample IAMMediaTypeSample;
     80 #ifdef __cplusplus
     81 interface IAMMediaTypeSample;
     82 #endif /* __cplusplus */
     83 #endif
     84 
     85 #ifndef __AMMultiMediaStream_FWD_DEFINED__
     86 #define __AMMultiMediaStream_FWD_DEFINED__
     87 #ifdef __cplusplus
     88 typedef class AMMultiMediaStream AMMultiMediaStream;
     89 #else
     90 typedef struct AMMultiMediaStream AMMultiMediaStream;
     91 #endif /* defined __cplusplus */
     92 #endif /* defined __AMMultiMediaStream_FWD_DEFINED__ */
     93 
     94 /* Headers for imported files */
     95 
     96 #include <unknwn.h>
     97 #include <mmstream.h>
     98 #include <strmif.h>
     99 
    100 #ifdef __cplusplus
    101 extern "C" {
    102 #endif
    103 
    104 #include <ddraw.h>
    105 #include <mmsystem.h>
    106 #include <mmstream.h>
    107 #include <ddstream.h>
    108 #include <austream.h>
    109 #if 0
    110 #ifndef __IDirectDraw_FWD_DEFINED__
    111 #define __IDirectDraw_FWD_DEFINED__
    112 typedef interface IDirectDraw IDirectDraw;
    113 #ifdef __cplusplus
    114 interface IDirectDraw;
    115 #endif /* __cplusplus */
    116 #endif
    117 
    118 #ifndef __IDirectDrawSurface_FWD_DEFINED__
    119 #define __IDirectDrawSurface_FWD_DEFINED__
    120 typedef interface IDirectDrawSurface IDirectDrawSurface;
    121 #ifdef __cplusplus
    122 interface IDirectDrawSurface;
    123 #endif /* __cplusplus */
    124 #endif
    125 
    126 #endif
    127 #ifndef __IAMMultiMediaStream_FWD_DEFINED__
    128 #define __IAMMultiMediaStream_FWD_DEFINED__
    129 typedef interface IAMMultiMediaStream IAMMultiMediaStream;
    130 #ifdef __cplusplus
    131 interface IAMMultiMediaStream;
    132 #endif /* __cplusplus */
    133 #endif
    134 
    135 #ifndef __IAMMediaStream_FWD_DEFINED__
    136 #define __IAMMediaStream_FWD_DEFINED__
    137 typedef interface IAMMediaStream IAMMediaStream;
    138 #ifdef __cplusplus
    139 interface IAMMediaStream;
    140 #endif /* __cplusplus */
    141 #endif
    142 
    143 #ifndef __IMediaStreamFilter_FWD_DEFINED__
    144 #define __IMediaStreamFilter_FWD_DEFINED__
    145 typedef interface IMediaStreamFilter IMediaStreamFilter;
    146 #ifdef __cplusplus
    147 interface IMediaStreamFilter;
    148 #endif /* __cplusplus */
    149 #endif
    150 
    151 #ifndef __IAMMediaTypeStream_FWD_DEFINED__
    152 #define __IAMMediaTypeStream_FWD_DEFINED__
    153 typedef interface IAMMediaTypeStream IAMMediaTypeStream;
    154 #ifdef __cplusplus
    155 interface IAMMediaTypeStream;
    156 #endif /* __cplusplus */
    157 #endif
    158 
    159 #ifndef __IAMMediaTypeSample_FWD_DEFINED__
    160 #define __IAMMediaTypeSample_FWD_DEFINED__
    161 typedef interface IAMMediaTypeSample IAMMediaTypeSample;
    162 #ifdef __cplusplus
    163 interface IAMMediaTypeSample;
    164 #endif /* __cplusplus */
    165 #endif
    166 
    167 enum {
    168     AMMSF_NOGRAPHTHREAD = 0x1
    169 };
    170 enum {
    171     AMMSF_ADDDEFAULTRENDERER = 0x1,
    172     AMMSF_CREATEPEER = 0x2,
    173     AMMSF_STOPIFNOSAMPLES = 0x4,
    174     AMMSF_NOSTALL = 0x8
    175 };
    176 enum {
    177     AMMSF_RENDERTYPEMASK = 0x3,
    178     AMMSF_RENDERTOEXISTING = 0x0,
    179     AMMSF_RENDERALLSTREAMS = 0x1,
    180     AMMSF_NORENDER = 0x2,
    181     AMMSF_NOCLOCK = 0x4,
    182     AMMSF_RUN = 0x8
    183 };
    184 typedef enum __WIDL_amstream_generated_name_00000019 {
    185     Disabled = 0,
    186     ReadData = 1,
    187     RenderData = 2
    188 } OUTPUT_STATE;
    189 /*****************************************************************************
    190  * IDirectShowStream interface
    191  */
    192 #ifndef __IDirectShowStream_INTERFACE_DEFINED__
    193 #define __IDirectShowStream_INTERFACE_DEFINED__
    194 
    195 DEFINE_GUID(IID_IDirectShowStream, 0x7db01c96, 0xc0c3, 0x11d0, 0x8f,0xf1, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
    196 #if defined(__cplusplus) && !defined(CINTERFACE)
    197 MIDL_INTERFACE("7db01c96-c0c3-11d0-8ff1-00c04fd9189d")
    198 IDirectShowStream : public IDispatch
    199 {
    200     virtual HRESULT STDMETHODCALLTYPE get_FileName(
    201         BSTR *pVal) = 0;
    202 
    203     virtual HRESULT STDMETHODCALLTYPE put_FileName(
    204         BSTR newVal) = 0;
    205 
    206     virtual HRESULT STDMETHODCALLTYPE get_Video(
    207         OUTPUT_STATE *pVal) = 0;
    208 
    209     virtual HRESULT STDMETHODCALLTYPE put_Video(
    210         OUTPUT_STATE newVal) = 0;
    211 
    212     virtual HRESULT STDMETHODCALLTYPE get_Audio(
    213         OUTPUT_STATE *pVal) = 0;
    214 
    215     virtual HRESULT STDMETHODCALLTYPE put_Audio(
    216         OUTPUT_STATE newVal) = 0;
    217 
    218 };
    219 #ifdef __CRT_UUID_DECL
    220 __CRT_UUID_DECL(IDirectShowStream, 0x7db01c96, 0xc0c3, 0x11d0, 0x8f,0xf1, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
    221 #endif
    222 #else
    223 typedef struct IDirectShowStreamVtbl {
    224     BEGIN_INTERFACE
    225 
    226     /*** IUnknown methods ***/
    227     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    228         IDirectShowStream *This,
    229         REFIID riid,
    230         void **ppvObject);
    231 
    232     ULONG (STDMETHODCALLTYPE *AddRef)(
    233         IDirectShowStream *This);
    234 
    235     ULONG (STDMETHODCALLTYPE *Release)(
    236         IDirectShowStream *This);
    237 
    238     /*** IDispatch methods ***/
    239     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
    240         IDirectShowStream *This,
    241         UINT *pctinfo);
    242 
    243     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
    244         IDirectShowStream *This,
    245         UINT iTInfo,
    246         LCID lcid,
    247         ITypeInfo **ppTInfo);
    248 
    249     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
    250         IDirectShowStream *This,
    251         REFIID riid,
    252         LPOLESTR *rgszNames,
    253         UINT cNames,
    254         LCID lcid,
    255         DISPID *rgDispId);
    256 
    257     HRESULT (STDMETHODCALLTYPE *Invoke)(
    258         IDirectShowStream *This,
    259         DISPID dispIdMember,
    260         REFIID riid,
    261         LCID lcid,
    262         WORD wFlags,
    263         DISPPARAMS *pDispParams,
    264         VARIANT *pVarResult,
    265         EXCEPINFO *pExcepInfo,
    266         UINT *puArgErr);
    267 
    268     /*** IDirectShowStream methods ***/
    269     HRESULT (STDMETHODCALLTYPE *get_FileName)(
    270         IDirectShowStream *This,
    271         BSTR *pVal);
    272 
    273     HRESULT (STDMETHODCALLTYPE *put_FileName)(
    274         IDirectShowStream *This,
    275         BSTR newVal);
    276 
    277     HRESULT (STDMETHODCALLTYPE *get_Video)(
    278         IDirectShowStream *This,
    279         OUTPUT_STATE *pVal);
    280 
    281     HRESULT (STDMETHODCALLTYPE *put_Video)(
    282         IDirectShowStream *This,
    283         OUTPUT_STATE newVal);
    284 
    285     HRESULT (STDMETHODCALLTYPE *get_Audio)(
    286         IDirectShowStream *This,
    287         OUTPUT_STATE *pVal);
    288 
    289     HRESULT (STDMETHODCALLTYPE *put_Audio)(
    290         IDirectShowStream *This,
    291         OUTPUT_STATE newVal);
    292 
    293     END_INTERFACE
    294 } IDirectShowStreamVtbl;
    295 
    296 interface IDirectShowStream {
    297     CONST_VTBL IDirectShowStreamVtbl* lpVtbl;
    298 };
    299 
    300 #ifdef COBJMACROS
    301 #ifndef WIDL_C_INLINE_WRAPPERS
    302 /*** IUnknown methods ***/
    303 #define IDirectShowStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    304 #define IDirectShowStream_AddRef(This) (This)->lpVtbl->AddRef(This)
    305 #define IDirectShowStream_Release(This) (This)->lpVtbl->Release(This)
    306 /*** IDispatch methods ***/
    307 #define IDirectShowStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
    308 #define IDirectShowStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
    309 #define IDirectShowStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
    310 #define IDirectShowStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
    311 /*** IDirectShowStream methods ***/
    312 #define IDirectShowStream_get_FileName(This,pVal) (This)->lpVtbl->get_FileName(This,pVal)
    313 #define IDirectShowStream_put_FileName(This,newVal) (This)->lpVtbl->put_FileName(This,newVal)
    314 #define IDirectShowStream_get_Video(This,pVal) (This)->lpVtbl->get_Video(This,pVal)
    315 #define IDirectShowStream_put_Video(This,newVal) (This)->lpVtbl->put_Video(This,newVal)
    316 #define IDirectShowStream_get_Audio(This,pVal) (This)->lpVtbl->get_Audio(This,pVal)
    317 #define IDirectShowStream_put_Audio(This,newVal) (This)->lpVtbl->put_Audio(This,newVal)
    318 #else
    319 /*** IUnknown methods ***/
    320 static FORCEINLINE HRESULT IDirectShowStream_QueryInterface(IDirectShowStream* This,REFIID riid,void **ppvObject) {
    321     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    322 }
    323 static FORCEINLINE ULONG IDirectShowStream_AddRef(IDirectShowStream* This) {
    324     return This->lpVtbl->AddRef(This);
    325 }
    326 static FORCEINLINE ULONG IDirectShowStream_Release(IDirectShowStream* This) {
    327     return This->lpVtbl->Release(This);
    328 }
    329 /*** IDispatch methods ***/
    330 static FORCEINLINE HRESULT IDirectShowStream_GetTypeInfoCount(IDirectShowStream* This,UINT *pctinfo) {
    331     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
    332 }
    333 static FORCEINLINE HRESULT IDirectShowStream_GetTypeInfo(IDirectShowStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    334     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
    335 }
    336 static FORCEINLINE HRESULT IDirectShowStream_GetIDsOfNames(IDirectShowStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    337     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
    338 }
    339 static FORCEINLINE HRESULT IDirectShowStream_Invoke(IDirectShowStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    340     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
    341 }
    342 /*** IDirectShowStream methods ***/
    343 static FORCEINLINE HRESULT IDirectShowStream_get_FileName(IDirectShowStream* This,BSTR *pVal) {
    344     return This->lpVtbl->get_FileName(This,pVal);
    345 }
    346 static FORCEINLINE HRESULT IDirectShowStream_put_FileName(IDirectShowStream* This,BSTR newVal) {
    347     return This->lpVtbl->put_FileName(This,newVal);
    348 }
    349 static FORCEINLINE HRESULT IDirectShowStream_get_Video(IDirectShowStream* This,OUTPUT_STATE *pVal) {
    350     return This->lpVtbl->get_Video(This,pVal);
    351 }
    352 static FORCEINLINE HRESULT IDirectShowStream_put_Video(IDirectShowStream* This,OUTPUT_STATE newVal) {
    353     return This->lpVtbl->put_Video(This,newVal);
    354 }
    355 static FORCEINLINE HRESULT IDirectShowStream_get_Audio(IDirectShowStream* This,OUTPUT_STATE *pVal) {
    356     return This->lpVtbl->get_Audio(This,pVal);
    357 }
    358 static FORCEINLINE HRESULT IDirectShowStream_put_Audio(IDirectShowStream* This,OUTPUT_STATE newVal) {
    359     return This->lpVtbl->put_Audio(This,newVal);
    360 }
    361 #endif
    362 #endif
    363 
    364 #endif
    365 
    366 
    367 #endif  /* __IDirectShowStream_INTERFACE_DEFINED__ */
    368 
    369 /*****************************************************************************
    370  * IAMMultiMediaStream interface
    371  */
    372 #ifndef __IAMMultiMediaStream_INTERFACE_DEFINED__
    373 #define __IAMMultiMediaStream_INTERFACE_DEFINED__
    374 
    375 DEFINE_GUID(IID_IAMMultiMediaStream, 0xbebe595c, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
    376 #if defined(__cplusplus) && !defined(CINTERFACE)
    377 MIDL_INTERFACE("bebe595c-9a6f-11d0-8fde-00c04fd9189d")
    378 IAMMultiMediaStream : public IMultiMediaStream
    379 {
    380     virtual HRESULT STDMETHODCALLTYPE Initialize(
    381         STREAM_TYPE StreamType,
    382         DWORD dwFlags,
    383         IGraphBuilder *pFilterGraph) = 0;
    384 
    385     virtual HRESULT STDMETHODCALLTYPE GetFilterGraph(
    386         IGraphBuilder **ppGraphBuilder) = 0;
    387 
    388     virtual HRESULT STDMETHODCALLTYPE GetFilter(
    389         IMediaStreamFilter **ppFilter) = 0;
    390 
    391     virtual HRESULT STDMETHODCALLTYPE AddMediaStream(
    392         IUnknown *pStreamObject,
    393         const MSPID *PurposeId,
    394         DWORD dwFlags,
    395         IMediaStream **ppNewStream) = 0;
    396 
    397     virtual HRESULT STDMETHODCALLTYPE OpenFile(
    398         LPCWSTR pszFileName,
    399         DWORD dwFlags) = 0;
    400 
    401     virtual HRESULT STDMETHODCALLTYPE OpenMoniker(
    402         IBindCtx *pCtx,
    403         IMoniker *pMoniker,
    404         DWORD dwFlags) = 0;
    405 
    406     virtual HRESULT STDMETHODCALLTYPE Render(
    407         DWORD dwFlags) = 0;
    408 
    409 };
    410 #ifdef __CRT_UUID_DECL
    411 __CRT_UUID_DECL(IAMMultiMediaStream, 0xbebe595c, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
    412 #endif
    413 #else
    414 typedef struct IAMMultiMediaStreamVtbl {
    415     BEGIN_INTERFACE
    416 
    417     /*** IUnknown methods ***/
    418     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    419         IAMMultiMediaStream *This,
    420         REFIID riid,
    421         void **ppvObject);
    422 
    423     ULONG (STDMETHODCALLTYPE *AddRef)(
    424         IAMMultiMediaStream *This);
    425 
    426     ULONG (STDMETHODCALLTYPE *Release)(
    427         IAMMultiMediaStream *This);
    428 
    429     /*** IMultiMediaStream methods ***/
    430     HRESULT (STDMETHODCALLTYPE *GetInformation)(
    431         IAMMultiMediaStream *This,
    432         DWORD *pdwFlags,
    433         STREAM_TYPE *pStreamType);
    434 
    435     HRESULT (STDMETHODCALLTYPE *GetMediaStream)(
    436         IAMMultiMediaStream *This,
    437         REFMSPID idPurpose,
    438         IMediaStream **ppMediaStream);
    439 
    440     HRESULT (STDMETHODCALLTYPE *EnumMediaStreams)(
    441         IAMMultiMediaStream *This,
    442         LONG Index,
    443         IMediaStream **ppMediaStream);
    444 
    445     HRESULT (STDMETHODCALLTYPE *GetState)(
    446         IAMMultiMediaStream *This,
    447         STREAM_STATE *pCurrentState);
    448 
    449     HRESULT (STDMETHODCALLTYPE *SetState)(
    450         IAMMultiMediaStream *This,
    451         STREAM_STATE NewState);
    452 
    453     HRESULT (STDMETHODCALLTYPE *GetTime)(
    454         IAMMultiMediaStream *This,
    455         STREAM_TIME *pCurrentTime);
    456 
    457     HRESULT (STDMETHODCALLTYPE *GetDuration)(
    458         IAMMultiMediaStream *This,
    459         STREAM_TIME *pDuration);
    460 
    461     HRESULT (STDMETHODCALLTYPE *Seek)(
    462         IAMMultiMediaStream *This,
    463         STREAM_TIME SeekTime);
    464 
    465     HRESULT (STDMETHODCALLTYPE *GetEndOfStreamEventHandle)(
    466         IAMMultiMediaStream *This,
    467         HANDLE *phEOS);
    468 
    469     /*** IAMMultiMediaStream methods ***/
    470     HRESULT (STDMETHODCALLTYPE *Initialize)(
    471         IAMMultiMediaStream *This,
    472         STREAM_TYPE StreamType,
    473         DWORD dwFlags,
    474         IGraphBuilder *pFilterGraph);
    475 
    476     HRESULT (STDMETHODCALLTYPE *GetFilterGraph)(
    477         IAMMultiMediaStream *This,
    478         IGraphBuilder **ppGraphBuilder);
    479 
    480     HRESULT (STDMETHODCALLTYPE *GetFilter)(
    481         IAMMultiMediaStream *This,
    482         IMediaStreamFilter **ppFilter);
    483 
    484     HRESULT (STDMETHODCALLTYPE *AddMediaStream)(
    485         IAMMultiMediaStream *This,
    486         IUnknown *pStreamObject,
    487         const MSPID *PurposeId,
    488         DWORD dwFlags,
    489         IMediaStream **ppNewStream);
    490 
    491     HRESULT (STDMETHODCALLTYPE *OpenFile)(
    492         IAMMultiMediaStream *This,
    493         LPCWSTR pszFileName,
    494         DWORD dwFlags);
    495 
    496     HRESULT (STDMETHODCALLTYPE *OpenMoniker)(
    497         IAMMultiMediaStream *This,
    498         IBindCtx *pCtx,
    499         IMoniker *pMoniker,
    500         DWORD dwFlags);
    501 
    502     HRESULT (STDMETHODCALLTYPE *Render)(
    503         IAMMultiMediaStream *This,
    504         DWORD dwFlags);
    505 
    506     END_INTERFACE
    507 } IAMMultiMediaStreamVtbl;
    508 
    509 interface IAMMultiMediaStream {
    510     CONST_VTBL IAMMultiMediaStreamVtbl* lpVtbl;
    511 };
    512 
    513 #ifdef COBJMACROS
    514 #ifndef WIDL_C_INLINE_WRAPPERS
    515 /*** IUnknown methods ***/
    516 #define IAMMultiMediaStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    517 #define IAMMultiMediaStream_AddRef(This) (This)->lpVtbl->AddRef(This)
    518 #define IAMMultiMediaStream_Release(This) (This)->lpVtbl->Release(This)
    519 /*** IMultiMediaStream methods ***/
    520 #define IAMMultiMediaStream_GetInformation(This,pdwFlags,pStreamType) (This)->lpVtbl->GetInformation(This,pdwFlags,pStreamType)
    521 #define IAMMultiMediaStream_GetMediaStream(This,idPurpose,ppMediaStream) (This)->lpVtbl->GetMediaStream(This,idPurpose,ppMediaStream)
    522 #define IAMMultiMediaStream_EnumMediaStreams(This,Index,ppMediaStream) (This)->lpVtbl->EnumMediaStreams(This,Index,ppMediaStream)
    523 #define IAMMultiMediaStream_GetState(This,pCurrentState) (This)->lpVtbl->GetState(This,pCurrentState)
    524 #define IAMMultiMediaStream_SetState(This,NewState) (This)->lpVtbl->SetState(This,NewState)
    525 #define IAMMultiMediaStream_GetTime(This,pCurrentTime) (This)->lpVtbl->GetTime(This,pCurrentTime)
    526 #define IAMMultiMediaStream_GetDuration(This,pDuration) (This)->lpVtbl->GetDuration(This,pDuration)
    527 #define IAMMultiMediaStream_Seek(This,SeekTime) (This)->lpVtbl->Seek(This,SeekTime)
    528 #define IAMMultiMediaStream_GetEndOfStreamEventHandle(This,phEOS) (This)->lpVtbl->GetEndOfStreamEventHandle(This,phEOS)
    529 /*** IAMMultiMediaStream methods ***/
    530 #define IAMMultiMediaStream_Initialize(This,StreamType,dwFlags,pFilterGraph) (This)->lpVtbl->Initialize(This,StreamType,dwFlags,pFilterGraph)
    531 #define IAMMultiMediaStream_GetFilterGraph(This,ppGraphBuilder) (This)->lpVtbl->GetFilterGraph(This,ppGraphBuilder)
    532 #define IAMMultiMediaStream_GetFilter(This,ppFilter) (This)->lpVtbl->GetFilter(This,ppFilter)
    533 #define IAMMultiMediaStream_AddMediaStream(This,pStreamObject,PurposeId,dwFlags,ppNewStream) (This)->lpVtbl->AddMediaStream(This,pStreamObject,PurposeId,dwFlags,ppNewStream)
    534 #define IAMMultiMediaStream_OpenFile(This,pszFileName,dwFlags) (This)->lpVtbl->OpenFile(This,pszFileName,dwFlags)
    535 #define IAMMultiMediaStream_OpenMoniker(This,pCtx,pMoniker,dwFlags) (This)->lpVtbl->OpenMoniker(This,pCtx,pMoniker,dwFlags)
    536 #define IAMMultiMediaStream_Render(This,dwFlags) (This)->lpVtbl->Render(This,dwFlags)
    537 #else
    538 /*** IUnknown methods ***/
    539 static FORCEINLINE HRESULT IAMMultiMediaStream_QueryInterface(IAMMultiMediaStream* This,REFIID riid,void **ppvObject) {
    540     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    541 }
    542 static FORCEINLINE ULONG IAMMultiMediaStream_AddRef(IAMMultiMediaStream* This) {
    543     return This->lpVtbl->AddRef(This);
    544 }
    545 static FORCEINLINE ULONG IAMMultiMediaStream_Release(IAMMultiMediaStream* This) {
    546     return This->lpVtbl->Release(This);
    547 }
    548 /*** IMultiMediaStream methods ***/
    549 static FORCEINLINE HRESULT IAMMultiMediaStream_GetInformation(IAMMultiMediaStream* This,DWORD *pdwFlags,STREAM_TYPE *pStreamType) {
    550     return This->lpVtbl->GetInformation(This,pdwFlags,pStreamType);
    551 }
    552 static FORCEINLINE HRESULT IAMMultiMediaStream_GetMediaStream(IAMMultiMediaStream* This,REFMSPID idPurpose,IMediaStream **ppMediaStream) {
    553     return This->lpVtbl->GetMediaStream(This,idPurpose,ppMediaStream);
    554 }
    555 static FORCEINLINE HRESULT IAMMultiMediaStream_EnumMediaStreams(IAMMultiMediaStream* This,LONG Index,IMediaStream **ppMediaStream) {
    556     return This->lpVtbl->EnumMediaStreams(This,Index,ppMediaStream);
    557 }
    558 static FORCEINLINE HRESULT IAMMultiMediaStream_GetState(IAMMultiMediaStream* This,STREAM_STATE *pCurrentState) {
    559     return This->lpVtbl->GetState(This,pCurrentState);
    560 }
    561 static FORCEINLINE HRESULT IAMMultiMediaStream_SetState(IAMMultiMediaStream* This,STREAM_STATE NewState) {
    562     return This->lpVtbl->SetState(This,NewState);
    563 }
    564 static FORCEINLINE HRESULT IAMMultiMediaStream_GetTime(IAMMultiMediaStream* This,STREAM_TIME *pCurrentTime) {
    565     return This->lpVtbl->GetTime(This,pCurrentTime);
    566 }
    567 static FORCEINLINE HRESULT IAMMultiMediaStream_GetDuration(IAMMultiMediaStream* This,STREAM_TIME *pDuration) {
    568     return This->lpVtbl->GetDuration(This,pDuration);
    569 }
    570 static FORCEINLINE HRESULT IAMMultiMediaStream_Seek(IAMMultiMediaStream* This,STREAM_TIME SeekTime) {
    571     return This->lpVtbl->Seek(This,SeekTime);
    572 }
    573 static FORCEINLINE HRESULT IAMMultiMediaStream_GetEndOfStreamEventHandle(IAMMultiMediaStream* This,HANDLE *phEOS) {
    574     return This->lpVtbl->GetEndOfStreamEventHandle(This,phEOS);
    575 }
    576 /*** IAMMultiMediaStream methods ***/
    577 static FORCEINLINE HRESULT IAMMultiMediaStream_Initialize(IAMMultiMediaStream* This,STREAM_TYPE StreamType,DWORD dwFlags,IGraphBuilder *pFilterGraph) {
    578     return This->lpVtbl->Initialize(This,StreamType,dwFlags,pFilterGraph);
    579 }
    580 static FORCEINLINE HRESULT IAMMultiMediaStream_GetFilterGraph(IAMMultiMediaStream* This,IGraphBuilder **ppGraphBuilder) {
    581     return This->lpVtbl->GetFilterGraph(This,ppGraphBuilder);
    582 }
    583 static FORCEINLINE HRESULT IAMMultiMediaStream_GetFilter(IAMMultiMediaStream* This,IMediaStreamFilter **ppFilter) {
    584     return This->lpVtbl->GetFilter(This,ppFilter);
    585 }
    586 static FORCEINLINE HRESULT IAMMultiMediaStream_AddMediaStream(IAMMultiMediaStream* This,IUnknown *pStreamObject,const MSPID *PurposeId,DWORD dwFlags,IMediaStream **ppNewStream) {
    587     return This->lpVtbl->AddMediaStream(This,pStreamObject,PurposeId,dwFlags,ppNewStream);
    588 }
    589 static FORCEINLINE HRESULT IAMMultiMediaStream_OpenFile(IAMMultiMediaStream* This,LPCWSTR pszFileName,DWORD dwFlags) {
    590     return This->lpVtbl->OpenFile(This,pszFileName,dwFlags);
    591 }
    592 static FORCEINLINE HRESULT IAMMultiMediaStream_OpenMoniker(IAMMultiMediaStream* This,IBindCtx *pCtx,IMoniker *pMoniker,DWORD dwFlags) {
    593     return This->lpVtbl->OpenMoniker(This,pCtx,pMoniker,dwFlags);
    594 }
    595 static FORCEINLINE HRESULT IAMMultiMediaStream_Render(IAMMultiMediaStream* This,DWORD dwFlags) {
    596     return This->lpVtbl->Render(This,dwFlags);
    597 }
    598 #endif
    599 #endif
    600 
    601 #endif
    602 
    603 
    604 #endif  /* __IAMMultiMediaStream_INTERFACE_DEFINED__ */
    605 
    606 /*****************************************************************************
    607  * IAMMediaStream interface
    608  */
    609 #ifndef __IAMMediaStream_INTERFACE_DEFINED__
    610 #define __IAMMediaStream_INTERFACE_DEFINED__
    611 
    612 DEFINE_GUID(IID_IAMMediaStream, 0xbebe595d, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
    613 #if defined(__cplusplus) && !defined(CINTERFACE)
    614 MIDL_INTERFACE("bebe595d-9a6f-11d0-8fde-00c04fd9189d")
    615 IAMMediaStream : public IMediaStream
    616 {
    617     virtual HRESULT STDMETHODCALLTYPE Initialize(
    618         IUnknown *pSourceObject,
    619         DWORD dwFlags,
    620         REFMSPID PurposeId,
    621         const STREAM_TYPE StreamType) = 0;
    622 
    623     virtual HRESULT STDMETHODCALLTYPE SetState(
    624         FILTER_STATE State) = 0;
    625 
    626     virtual HRESULT STDMETHODCALLTYPE JoinAMMultiMediaStream(
    627         IAMMultiMediaStream *pAMMultiMediaStream) = 0;
    628 
    629     virtual HRESULT STDMETHODCALLTYPE JoinFilter(
    630         IMediaStreamFilter *pMediaStreamFilter) = 0;
    631 
    632     virtual HRESULT STDMETHODCALLTYPE JoinFilterGraph(
    633         IFilterGraph *pFilterGraph) = 0;
    634 
    635 };
    636 #ifdef __CRT_UUID_DECL
    637 __CRT_UUID_DECL(IAMMediaStream, 0xbebe595d, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
    638 #endif
    639 #else
    640 typedef struct IAMMediaStreamVtbl {
    641     BEGIN_INTERFACE
    642 
    643     /*** IUnknown methods ***/
    644     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    645         IAMMediaStream *This,
    646         REFIID riid,
    647         void **ppvObject);
    648 
    649     ULONG (STDMETHODCALLTYPE *AddRef)(
    650         IAMMediaStream *This);
    651 
    652     ULONG (STDMETHODCALLTYPE *Release)(
    653         IAMMediaStream *This);
    654 
    655     /*** IMediaStream methods ***/
    656     HRESULT (STDMETHODCALLTYPE *GetMultiMediaStream)(
    657         IAMMediaStream *This,
    658         IMultiMediaStream **ppMultiMediaStream);
    659 
    660     HRESULT (STDMETHODCALLTYPE *GetInformation)(
    661         IAMMediaStream *This,
    662         MSPID *pPurposeId,
    663         STREAM_TYPE *pType);
    664 
    665     HRESULT (STDMETHODCALLTYPE *SetSameFormat)(
    666         IAMMediaStream *This,
    667         IMediaStream *pStreamThatHasDesiredFormat,
    668         DWORD dwFlags);
    669 
    670     HRESULT (STDMETHODCALLTYPE *AllocateSample)(
    671         IAMMediaStream *This,
    672         DWORD dwFlags,
    673         IStreamSample **ppSample);
    674 
    675     HRESULT (STDMETHODCALLTYPE *CreateSharedSample)(
    676         IAMMediaStream *This,
    677         IStreamSample *pExistingSample,
    678         DWORD dwFlags,
    679         IStreamSample **ppNewSample);
    680 
    681     HRESULT (STDMETHODCALLTYPE *SendEndOfStream)(
    682         IAMMediaStream *This,
    683         DWORD dwFlags);
    684 
    685     /*** IAMMediaStream methods ***/
    686     HRESULT (STDMETHODCALLTYPE *Initialize)(
    687         IAMMediaStream *This,
    688         IUnknown *pSourceObject,
    689         DWORD dwFlags,
    690         REFMSPID PurposeId,
    691         const STREAM_TYPE StreamType);
    692 
    693     HRESULT (STDMETHODCALLTYPE *SetState)(
    694         IAMMediaStream *This,
    695         FILTER_STATE State);
    696 
    697     HRESULT (STDMETHODCALLTYPE *JoinAMMultiMediaStream)(
    698         IAMMediaStream *This,
    699         IAMMultiMediaStream *pAMMultiMediaStream);
    700 
    701     HRESULT (STDMETHODCALLTYPE *JoinFilter)(
    702         IAMMediaStream *This,
    703         IMediaStreamFilter *pMediaStreamFilter);
    704 
    705     HRESULT (STDMETHODCALLTYPE *JoinFilterGraph)(
    706         IAMMediaStream *This,
    707         IFilterGraph *pFilterGraph);
    708 
    709     END_INTERFACE
    710 } IAMMediaStreamVtbl;
    711 
    712 interface IAMMediaStream {
    713     CONST_VTBL IAMMediaStreamVtbl* lpVtbl;
    714 };
    715 
    716 #ifdef COBJMACROS
    717 #ifndef WIDL_C_INLINE_WRAPPERS
    718 /*** IUnknown methods ***/
    719 #define IAMMediaStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    720 #define IAMMediaStream_AddRef(This) (This)->lpVtbl->AddRef(This)
    721 #define IAMMediaStream_Release(This) (This)->lpVtbl->Release(This)
    722 /*** IMediaStream methods ***/
    723 #define IAMMediaStream_GetMultiMediaStream(This,ppMultiMediaStream) (This)->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream)
    724 #define IAMMediaStream_GetInformation(This,pPurposeId,pType) (This)->lpVtbl->GetInformation(This,pPurposeId,pType)
    725 #define IAMMediaStream_SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags) (This)->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags)
    726 #define IAMMediaStream_AllocateSample(This,dwFlags,ppSample) (This)->lpVtbl->AllocateSample(This,dwFlags,ppSample)
    727 #define IAMMediaStream_CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample) (This)->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample)
    728 #define IAMMediaStream_SendEndOfStream(This,dwFlags) (This)->lpVtbl->SendEndOfStream(This,dwFlags)
    729 /*** IAMMediaStream methods ***/
    730 #define IAMMediaStream_Initialize(This,pSourceObject,dwFlags,PurposeId,StreamType) (This)->lpVtbl->Initialize(This,pSourceObject,dwFlags,PurposeId,StreamType)
    731 #define IAMMediaStream_SetState(This,State) (This)->lpVtbl->SetState(This,State)
    732 #define IAMMediaStream_JoinAMMultiMediaStream(This,pAMMultiMediaStream) (This)->lpVtbl->JoinAMMultiMediaStream(This,pAMMultiMediaStream)
    733 #define IAMMediaStream_JoinFilter(This,pMediaStreamFilter) (This)->lpVtbl->JoinFilter(This,pMediaStreamFilter)
    734 #define IAMMediaStream_JoinFilterGraph(This,pFilterGraph) (This)->lpVtbl->JoinFilterGraph(This,pFilterGraph)
    735 #else
    736 /*** IUnknown methods ***/
    737 static FORCEINLINE HRESULT IAMMediaStream_QueryInterface(IAMMediaStream* This,REFIID riid,void **ppvObject) {
    738     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    739 }
    740 static FORCEINLINE ULONG IAMMediaStream_AddRef(IAMMediaStream* This) {
    741     return This->lpVtbl->AddRef(This);
    742 }
    743 static FORCEINLINE ULONG IAMMediaStream_Release(IAMMediaStream* This) {
    744     return This->lpVtbl->Release(This);
    745 }
    746 /*** IMediaStream methods ***/
    747 static FORCEINLINE HRESULT IAMMediaStream_GetMultiMediaStream(IAMMediaStream* This,IMultiMediaStream **ppMultiMediaStream) {
    748     return This->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream);
    749 }
    750 static FORCEINLINE HRESULT IAMMediaStream_GetInformation(IAMMediaStream* This,MSPID *pPurposeId,STREAM_TYPE *pType) {
    751     return This->lpVtbl->GetInformation(This,pPurposeId,pType);
    752 }
    753 static FORCEINLINE HRESULT IAMMediaStream_SetSameFormat(IAMMediaStream* This,IMediaStream *pStreamThatHasDesiredFormat,DWORD dwFlags) {
    754     return This->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags);
    755 }
    756 static FORCEINLINE HRESULT IAMMediaStream_AllocateSample(IAMMediaStream* This,DWORD dwFlags,IStreamSample **ppSample) {
    757     return This->lpVtbl->AllocateSample(This,dwFlags,ppSample);
    758 }
    759 static FORCEINLINE HRESULT IAMMediaStream_CreateSharedSample(IAMMediaStream* This,IStreamSample *pExistingSample,DWORD dwFlags,IStreamSample **ppNewSample) {
    760     return This->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample);
    761 }
    762 static FORCEINLINE HRESULT IAMMediaStream_SendEndOfStream(IAMMediaStream* This,DWORD dwFlags) {
    763     return This->lpVtbl->SendEndOfStream(This,dwFlags);
    764 }
    765 /*** IAMMediaStream methods ***/
    766 static FORCEINLINE HRESULT IAMMediaStream_Initialize(IAMMediaStream* This,IUnknown *pSourceObject,DWORD dwFlags,REFMSPID PurposeId,const STREAM_TYPE StreamType) {
    767     return This->lpVtbl->Initialize(This,pSourceObject,dwFlags,PurposeId,StreamType);
    768 }
    769 static FORCEINLINE HRESULT IAMMediaStream_SetState(IAMMediaStream* This,FILTER_STATE State) {
    770     return This->lpVtbl->SetState(This,State);
    771 }
    772 static FORCEINLINE HRESULT IAMMediaStream_JoinAMMultiMediaStream(IAMMediaStream* This,IAMMultiMediaStream *pAMMultiMediaStream) {
    773     return This->lpVtbl->JoinAMMultiMediaStream(This,pAMMultiMediaStream);
    774 }
    775 static FORCEINLINE HRESULT IAMMediaStream_JoinFilter(IAMMediaStream* This,IMediaStreamFilter *pMediaStreamFilter) {
    776     return This->lpVtbl->JoinFilter(This,pMediaStreamFilter);
    777 }
    778 static FORCEINLINE HRESULT IAMMediaStream_JoinFilterGraph(IAMMediaStream* This,IFilterGraph *pFilterGraph) {
    779     return This->lpVtbl->JoinFilterGraph(This,pFilterGraph);
    780 }
    781 #endif
    782 #endif
    783 
    784 #endif
    785 
    786 
    787 #endif  /* __IAMMediaStream_INTERFACE_DEFINED__ */
    788 
    789 /*****************************************************************************
    790  * IMediaStreamFilter interface
    791  */
    792 #ifndef __IMediaStreamFilter_INTERFACE_DEFINED__
    793 #define __IMediaStreamFilter_INTERFACE_DEFINED__
    794 
    795 DEFINE_GUID(IID_IMediaStreamFilter, 0xbebe595e, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
    796 #if defined(__cplusplus) && !defined(CINTERFACE)
    797 MIDL_INTERFACE("bebe595e-9a6f-11d0-8fde-00c04fd9189d")
    798 IMediaStreamFilter : public IBaseFilter
    799 {
    800     virtual HRESULT STDMETHODCALLTYPE AddMediaStream(
    801         IAMMediaStream *pAMMediaStream) = 0;
    802 
    803     virtual HRESULT STDMETHODCALLTYPE GetMediaStream(
    804         REFMSPID idPurpose,
    805         IMediaStream **ppMediaStream) = 0;
    806 
    807     virtual HRESULT STDMETHODCALLTYPE EnumMediaStreams(
    808         LONG Index,
    809         IMediaStream **ppMediaStream) = 0;
    810 
    811     virtual HRESULT STDMETHODCALLTYPE SupportSeeking(
    812         WINBOOL bRenderer) = 0;
    813 
    814     virtual HRESULT STDMETHODCALLTYPE ReferenceTimeToStreamTime(
    815         REFERENCE_TIME *pTime) = 0;
    816 
    817     virtual HRESULT STDMETHODCALLTYPE GetCurrentStreamTime(
    818         REFERENCE_TIME *pCurrentStreamTime) = 0;
    819 
    820     virtual HRESULT STDMETHODCALLTYPE WaitUntil(
    821         REFERENCE_TIME WaitStreamTime) = 0;
    822 
    823     virtual HRESULT STDMETHODCALLTYPE Flush(
    824         WINBOOL bCancelEOS) = 0;
    825 
    826     virtual HRESULT STDMETHODCALLTYPE EndOfStream(
    827         ) = 0;
    828 
    829 };
    830 #ifdef __CRT_UUID_DECL
    831 __CRT_UUID_DECL(IMediaStreamFilter, 0xbebe595e, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
    832 #endif
    833 #else
    834 typedef struct IMediaStreamFilterVtbl {
    835     BEGIN_INTERFACE
    836 
    837     /*** IUnknown methods ***/
    838     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    839         IMediaStreamFilter *This,
    840         REFIID riid,
    841         void **ppvObject);
    842 
    843     ULONG (STDMETHODCALLTYPE *AddRef)(
    844         IMediaStreamFilter *This);
    845 
    846     ULONG (STDMETHODCALLTYPE *Release)(
    847         IMediaStreamFilter *This);
    848 
    849     /*** IPersist methods ***/
    850     HRESULT (STDMETHODCALLTYPE *GetClassID)(
    851         IMediaStreamFilter *This,
    852         CLSID *pClassID);
    853 
    854     /*** IMediaFilter methods ***/
    855     HRESULT (STDMETHODCALLTYPE *Stop)(
    856         IMediaStreamFilter *This);
    857 
    858     HRESULT (STDMETHODCALLTYPE *Pause)(
    859         IMediaStreamFilter *This);
    860 
    861     HRESULT (STDMETHODCALLTYPE *Run)(
    862         IMediaStreamFilter *This,
    863         REFERENCE_TIME tStart);
    864 
    865     HRESULT (STDMETHODCALLTYPE *GetState)(
    866         IMediaStreamFilter *This,
    867         DWORD dwMilliSecsTimeout,
    868         FILTER_STATE *State);
    869 
    870     HRESULT (STDMETHODCALLTYPE *SetSyncSource)(
    871         IMediaStreamFilter *This,
    872         IReferenceClock *pClock);
    873 
    874     HRESULT (STDMETHODCALLTYPE *GetSyncSource)(
    875         IMediaStreamFilter *This,
    876         IReferenceClock **pClock);
    877 
    878     /*** IBaseFilter methods ***/
    879     HRESULT (STDMETHODCALLTYPE *EnumPins)(
    880         IMediaStreamFilter *This,
    881         IEnumPins **ppEnum);
    882 
    883     HRESULT (STDMETHODCALLTYPE *FindPin)(
    884         IMediaStreamFilter *This,
    885         LPCWSTR Id,
    886         IPin **ppPin);
    887 
    888     HRESULT (STDMETHODCALLTYPE *QueryFilterInfo)(
    889         IMediaStreamFilter *This,
    890         FILTER_INFO *pInfo);
    891 
    892     HRESULT (STDMETHODCALLTYPE *JoinFilterGraph)(
    893         IMediaStreamFilter *This,
    894         IFilterGraph *pGraph,
    895         LPCWSTR pName);
    896 
    897     HRESULT (STDMETHODCALLTYPE *QueryVendorInfo)(
    898         IMediaStreamFilter *This,
    899         LPWSTR *pVendorInfo);
    900 
    901     /*** IMediaStreamFilter methods ***/
    902     HRESULT (STDMETHODCALLTYPE *AddMediaStream)(
    903         IMediaStreamFilter *This,
    904         IAMMediaStream *pAMMediaStream);
    905 
    906     HRESULT (STDMETHODCALLTYPE *GetMediaStream)(
    907         IMediaStreamFilter *This,
    908         REFMSPID idPurpose,
    909         IMediaStream **ppMediaStream);
    910 
    911     HRESULT (STDMETHODCALLTYPE *EnumMediaStreams)(
    912         IMediaStreamFilter *This,
    913         LONG Index,
    914         IMediaStream **ppMediaStream);
    915 
    916     HRESULT (STDMETHODCALLTYPE *SupportSeeking)(
    917         IMediaStreamFilter *This,
    918         WINBOOL bRenderer);
    919 
    920     HRESULT (STDMETHODCALLTYPE *ReferenceTimeToStreamTime)(
    921         IMediaStreamFilter *This,
    922         REFERENCE_TIME *pTime);
    923 
    924     HRESULT (STDMETHODCALLTYPE *GetCurrentStreamTime)(
    925         IMediaStreamFilter *This,
    926         REFERENCE_TIME *pCurrentStreamTime);
    927 
    928     HRESULT (STDMETHODCALLTYPE *WaitUntil)(
    929         IMediaStreamFilter *This,
    930         REFERENCE_TIME WaitStreamTime);
    931 
    932     HRESULT (STDMETHODCALLTYPE *Flush)(
    933         IMediaStreamFilter *This,
    934         WINBOOL bCancelEOS);
    935 
    936     HRESULT (STDMETHODCALLTYPE *EndOfStream)(
    937         IMediaStreamFilter *This);
    938 
    939     END_INTERFACE
    940 } IMediaStreamFilterVtbl;
    941 
    942 interface IMediaStreamFilter {
    943     CONST_VTBL IMediaStreamFilterVtbl* lpVtbl;
    944 };
    945 
    946 #ifdef COBJMACROS
    947 #ifndef WIDL_C_INLINE_WRAPPERS
    948 /*** IUnknown methods ***/
    949 #define IMediaStreamFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    950 #define IMediaStreamFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
    951 #define IMediaStreamFilter_Release(This) (This)->lpVtbl->Release(This)
    952 /*** IPersist methods ***/
    953 #define IMediaStreamFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
    954 /*** IMediaFilter methods ***/
    955 #define IMediaStreamFilter_Stop(This) (This)->lpVtbl->Stop(This)
    956 #define IMediaStreamFilter_Pause(This) (This)->lpVtbl->Pause(This)
    957 #define IMediaStreamFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
    958 #define IMediaStreamFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State)
    959 #define IMediaStreamFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
    960 #define IMediaStreamFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock)
    961 /*** IBaseFilter methods ***/
    962 #define IMediaStreamFilter_EnumPins(This,ppEnum) (This)->lpVtbl->EnumPins(This,ppEnum)
    963 #define IMediaStreamFilter_FindPin(This,Id,ppPin) (This)->lpVtbl->FindPin(This,Id,ppPin)
    964 #define IMediaStreamFilter_QueryFilterInfo(This,pInfo) (This)->lpVtbl->QueryFilterInfo(This,pInfo)
    965 #define IMediaStreamFilter_JoinFilterGraph(This,pGraph,pName) (This)->lpVtbl->JoinFilterGraph(This,pGraph,pName)
    966 #define IMediaStreamFilter_QueryVendorInfo(This,pVendorInfo) (This)->lpVtbl->QueryVendorInfo(This,pVendorInfo)
    967 /*** IMediaStreamFilter methods ***/
    968 #define IMediaStreamFilter_AddMediaStream(This,pAMMediaStream) (This)->lpVtbl->AddMediaStream(This,pAMMediaStream)
    969 #define IMediaStreamFilter_GetMediaStream(This,idPurpose,ppMediaStream) (This)->lpVtbl->GetMediaStream(This,idPurpose,ppMediaStream)
    970 #define IMediaStreamFilter_EnumMediaStreams(This,Index,ppMediaStream) (This)->lpVtbl->EnumMediaStreams(This,Index,ppMediaStream)
    971 #define IMediaStreamFilter_SupportSeeking(This,bRenderer) (This)->lpVtbl->SupportSeeking(This,bRenderer)
    972 #define IMediaStreamFilter_ReferenceTimeToStreamTime(This,pTime) (This)->lpVtbl->ReferenceTimeToStreamTime(This,pTime)
    973 #define IMediaStreamFilter_GetCurrentStreamTime(This,pCurrentStreamTime) (This)->lpVtbl->GetCurrentStreamTime(This,pCurrentStreamTime)
    974 #define IMediaStreamFilter_WaitUntil(This,WaitStreamTime) (This)->lpVtbl->WaitUntil(This,WaitStreamTime)
    975 #define IMediaStreamFilter_Flush(This,bCancelEOS) (This)->lpVtbl->Flush(This,bCancelEOS)
    976 #define IMediaStreamFilter_EndOfStream(This) (This)->lpVtbl->EndOfStream(This)
    977 #else
    978 /*** IUnknown methods ***/
    979 static FORCEINLINE HRESULT IMediaStreamFilter_QueryInterface(IMediaStreamFilter* This,REFIID riid,void **ppvObject) {
    980     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    981 }
    982 static FORCEINLINE ULONG IMediaStreamFilter_AddRef(IMediaStreamFilter* This) {
    983     return This->lpVtbl->AddRef(This);
    984 }
    985 static FORCEINLINE ULONG IMediaStreamFilter_Release(IMediaStreamFilter* This) {
    986     return This->lpVtbl->Release(This);
    987 }
    988 /*** IPersist methods ***/
    989 static FORCEINLINE HRESULT IMediaStreamFilter_GetClassID(IMediaStreamFilter* This,CLSID *pClassID) {
    990     return This->lpVtbl->GetClassID(This,pClassID);
    991 }
    992 /*** IMediaFilter methods ***/
    993 static FORCEINLINE HRESULT IMediaStreamFilter_Stop(IMediaStreamFilter* This) {
    994     return This->lpVtbl->Stop(This);
    995 }
    996 static FORCEINLINE HRESULT IMediaStreamFilter_Pause(IMediaStreamFilter* This) {
    997     return This->lpVtbl->Pause(This);
    998 }
    999 static FORCEINLINE HRESULT IMediaStreamFilter_Run(IMediaStreamFilter* This,REFERENCE_TIME tStart) {
   1000     return This->lpVtbl->Run(This,tStart);
   1001 }
   1002 static FORCEINLINE HRESULT IMediaStreamFilter_GetState(IMediaStreamFilter* This,DWORD dwMilliSecsTimeout,FILTER_STATE *State) {
   1003     return This->lpVtbl->GetState(This,dwMilliSecsTimeout,State);
   1004 }
   1005 static FORCEINLINE HRESULT IMediaStreamFilter_SetSyncSource(IMediaStreamFilter* This,IReferenceClock *pClock) {
   1006     return This->lpVtbl->SetSyncSource(This,pClock);
   1007 }
   1008 static FORCEINLINE HRESULT IMediaStreamFilter_GetSyncSource(IMediaStreamFilter* This,IReferenceClock **pClock) {
   1009     return This->lpVtbl->GetSyncSource(This,pClock);
   1010 }
   1011 /*** IBaseFilter methods ***/
   1012 static FORCEINLINE HRESULT IMediaStreamFilter_EnumPins(IMediaStreamFilter* This,IEnumPins **ppEnum) {
   1013     return This->lpVtbl->EnumPins(This,ppEnum);
   1014 }
   1015 static FORCEINLINE HRESULT IMediaStreamFilter_FindPin(IMediaStreamFilter* This,LPCWSTR Id,IPin **ppPin) {
   1016     return This->lpVtbl->FindPin(This,Id,ppPin);
   1017 }
   1018 static FORCEINLINE HRESULT IMediaStreamFilter_QueryFilterInfo(IMediaStreamFilter* This,FILTER_INFO *pInfo) {
   1019     return This->lpVtbl->QueryFilterInfo(This,pInfo);
   1020 }
   1021 static FORCEINLINE HRESULT IMediaStreamFilter_JoinFilterGraph(IMediaStreamFilter* This,IFilterGraph *pGraph,LPCWSTR pName) {
   1022     return This->lpVtbl->JoinFilterGraph(This,pGraph,pName);
   1023 }
   1024 static FORCEINLINE HRESULT IMediaStreamFilter_QueryVendorInfo(IMediaStreamFilter* This,LPWSTR *pVendorInfo) {
   1025     return This->lpVtbl->QueryVendorInfo(This,pVendorInfo);
   1026 }
   1027 /*** IMediaStreamFilter methods ***/
   1028 static FORCEINLINE HRESULT IMediaStreamFilter_AddMediaStream(IMediaStreamFilter* This,IAMMediaStream *pAMMediaStream) {
   1029     return This->lpVtbl->AddMediaStream(This,pAMMediaStream);
   1030 }
   1031 static FORCEINLINE HRESULT IMediaStreamFilter_GetMediaStream(IMediaStreamFilter* This,REFMSPID idPurpose,IMediaStream **ppMediaStream) {
   1032     return This->lpVtbl->GetMediaStream(This,idPurpose,ppMediaStream);
   1033 }
   1034 static FORCEINLINE HRESULT IMediaStreamFilter_EnumMediaStreams(IMediaStreamFilter* This,LONG Index,IMediaStream **ppMediaStream) {
   1035     return This->lpVtbl->EnumMediaStreams(This,Index,ppMediaStream);
   1036 }
   1037 static FORCEINLINE HRESULT IMediaStreamFilter_SupportSeeking(IMediaStreamFilter* This,WINBOOL bRenderer) {
   1038     return This->lpVtbl->SupportSeeking(This,bRenderer);
   1039 }
   1040 static FORCEINLINE HRESULT IMediaStreamFilter_ReferenceTimeToStreamTime(IMediaStreamFilter* This,REFERENCE_TIME *pTime) {
   1041     return This->lpVtbl->ReferenceTimeToStreamTime(This,pTime);
   1042 }
   1043 static FORCEINLINE HRESULT IMediaStreamFilter_GetCurrentStreamTime(IMediaStreamFilter* This,REFERENCE_TIME *pCurrentStreamTime) {
   1044     return This->lpVtbl->GetCurrentStreamTime(This,pCurrentStreamTime);
   1045 }
   1046 static FORCEINLINE HRESULT IMediaStreamFilter_WaitUntil(IMediaStreamFilter* This,REFERENCE_TIME WaitStreamTime) {
   1047     return This->lpVtbl->WaitUntil(This,WaitStreamTime);
   1048 }
   1049 static FORCEINLINE HRESULT IMediaStreamFilter_Flush(IMediaStreamFilter* This,WINBOOL bCancelEOS) {
   1050     return This->lpVtbl->Flush(This,bCancelEOS);
   1051 }
   1052 static FORCEINLINE HRESULT IMediaStreamFilter_EndOfStream(IMediaStreamFilter* This) {
   1053     return This->lpVtbl->EndOfStream(This);
   1054 }
   1055 #endif
   1056 #endif
   1057 
   1058 #endif
   1059 
   1060 
   1061 #endif  /* __IMediaStreamFilter_INTERFACE_DEFINED__ */
   1062 
   1063 /*****************************************************************************
   1064  * IDirectDrawMediaSampleAllocator interface
   1065  */
   1066 #ifndef __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__
   1067 #define __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__
   1068 
   1069 DEFINE_GUID(IID_IDirectDrawMediaSampleAllocator, 0xab6b4afc, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
   1070 #if defined(__cplusplus) && !defined(CINTERFACE)
   1071 MIDL_INTERFACE("ab6b4afc-f6e4-11d0-900d-00c04fd9189d")
   1072 IDirectDrawMediaSampleAllocator : public IUnknown
   1073 {
   1074     virtual HRESULT STDMETHODCALLTYPE GetDirectDraw(
   1075         IDirectDraw **ppDirectDraw) = 0;
   1076 
   1077 };
   1078 #ifdef __CRT_UUID_DECL
   1079 __CRT_UUID_DECL(IDirectDrawMediaSampleAllocator, 0xab6b4afc, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
   1080 #endif
   1081 #else
   1082 typedef struct IDirectDrawMediaSampleAllocatorVtbl {
   1083     BEGIN_INTERFACE
   1084 
   1085     /*** IUnknown methods ***/
   1086     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1087         IDirectDrawMediaSampleAllocator *This,
   1088         REFIID riid,
   1089         void **ppvObject);
   1090 
   1091     ULONG (STDMETHODCALLTYPE *AddRef)(
   1092         IDirectDrawMediaSampleAllocator *This);
   1093 
   1094     ULONG (STDMETHODCALLTYPE *Release)(
   1095         IDirectDrawMediaSampleAllocator *This);
   1096 
   1097     /*** IDirectDrawMediaSampleAllocator methods ***/
   1098     HRESULT (STDMETHODCALLTYPE *GetDirectDraw)(
   1099         IDirectDrawMediaSampleAllocator *This,
   1100         IDirectDraw **ppDirectDraw);
   1101 
   1102     END_INTERFACE
   1103 } IDirectDrawMediaSampleAllocatorVtbl;
   1104 
   1105 interface IDirectDrawMediaSampleAllocator {
   1106     CONST_VTBL IDirectDrawMediaSampleAllocatorVtbl* lpVtbl;
   1107 };
   1108 
   1109 #ifdef COBJMACROS
   1110 #ifndef WIDL_C_INLINE_WRAPPERS
   1111 /*** IUnknown methods ***/
   1112 #define IDirectDrawMediaSampleAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1113 #define IDirectDrawMediaSampleAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
   1114 #define IDirectDrawMediaSampleAllocator_Release(This) (This)->lpVtbl->Release(This)
   1115 /*** IDirectDrawMediaSampleAllocator methods ***/
   1116 #define IDirectDrawMediaSampleAllocator_GetDirectDraw(This,ppDirectDraw) (This)->lpVtbl->GetDirectDraw(This,ppDirectDraw)
   1117 #else
   1118 /*** IUnknown methods ***/
   1119 static FORCEINLINE HRESULT IDirectDrawMediaSampleAllocator_QueryInterface(IDirectDrawMediaSampleAllocator* This,REFIID riid,void **ppvObject) {
   1120     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1121 }
   1122 static FORCEINLINE ULONG IDirectDrawMediaSampleAllocator_AddRef(IDirectDrawMediaSampleAllocator* This) {
   1123     return This->lpVtbl->AddRef(This);
   1124 }
   1125 static FORCEINLINE ULONG IDirectDrawMediaSampleAllocator_Release(IDirectDrawMediaSampleAllocator* This) {
   1126     return This->lpVtbl->Release(This);
   1127 }
   1128 /*** IDirectDrawMediaSampleAllocator methods ***/
   1129 static FORCEINLINE HRESULT IDirectDrawMediaSampleAllocator_GetDirectDraw(IDirectDrawMediaSampleAllocator* This,IDirectDraw **ppDirectDraw) {
   1130     return This->lpVtbl->GetDirectDraw(This,ppDirectDraw);
   1131 }
   1132 #endif
   1133 #endif
   1134 
   1135 #endif
   1136 
   1137 
   1138 #endif  /* __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__ */
   1139 
   1140 /*****************************************************************************
   1141  * IDirectDrawMediaSample interface
   1142  */
   1143 #ifndef __IDirectDrawMediaSample_INTERFACE_DEFINED__
   1144 #define __IDirectDrawMediaSample_INTERFACE_DEFINED__
   1145 
   1146 DEFINE_GUID(IID_IDirectDrawMediaSample, 0xab6b4afe, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
   1147 #if defined(__cplusplus) && !defined(CINTERFACE)
   1148 MIDL_INTERFACE("ab6b4afe-f6e4-11d0-900d-00c04fd9189d")
   1149 IDirectDrawMediaSample : public IUnknown
   1150 {
   1151     virtual HRESULT STDMETHODCALLTYPE GetSurfaceAndReleaseLock(
   1152         IDirectDrawSurface **ppDirectDrawSurface,
   1153         RECT *pRect) = 0;
   1154 
   1155     virtual HRESULT STDMETHODCALLTYPE LockMediaSamplePointer(
   1156         ) = 0;
   1157 
   1158 };
   1159 #ifdef __CRT_UUID_DECL
   1160 __CRT_UUID_DECL(IDirectDrawMediaSample, 0xab6b4afe, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
   1161 #endif
   1162 #else
   1163 typedef struct IDirectDrawMediaSampleVtbl {
   1164     BEGIN_INTERFACE
   1165 
   1166     /*** IUnknown methods ***/
   1167     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1168         IDirectDrawMediaSample *This,
   1169         REFIID riid,
   1170         void **ppvObject);
   1171 
   1172     ULONG (STDMETHODCALLTYPE *AddRef)(
   1173         IDirectDrawMediaSample *This);
   1174 
   1175     ULONG (STDMETHODCALLTYPE *Release)(
   1176         IDirectDrawMediaSample *This);
   1177 
   1178     /*** IDirectDrawMediaSample methods ***/
   1179     HRESULT (STDMETHODCALLTYPE *GetSurfaceAndReleaseLock)(
   1180         IDirectDrawMediaSample *This,
   1181         IDirectDrawSurface **ppDirectDrawSurface,
   1182         RECT *pRect);
   1183 
   1184     HRESULT (STDMETHODCALLTYPE *LockMediaSamplePointer)(
   1185         IDirectDrawMediaSample *This);
   1186 
   1187     END_INTERFACE
   1188 } IDirectDrawMediaSampleVtbl;
   1189 
   1190 interface IDirectDrawMediaSample {
   1191     CONST_VTBL IDirectDrawMediaSampleVtbl* lpVtbl;
   1192 };
   1193 
   1194 #ifdef COBJMACROS
   1195 #ifndef WIDL_C_INLINE_WRAPPERS
   1196 /*** IUnknown methods ***/
   1197 #define IDirectDrawMediaSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1198 #define IDirectDrawMediaSample_AddRef(This) (This)->lpVtbl->AddRef(This)
   1199 #define IDirectDrawMediaSample_Release(This) (This)->lpVtbl->Release(This)
   1200 /*** IDirectDrawMediaSample methods ***/
   1201 #define IDirectDrawMediaSample_GetSurfaceAndReleaseLock(This,ppDirectDrawSurface,pRect) (This)->lpVtbl->GetSurfaceAndReleaseLock(This,ppDirectDrawSurface,pRect)
   1202 #define IDirectDrawMediaSample_LockMediaSamplePointer(This) (This)->lpVtbl->LockMediaSamplePointer(This)
   1203 #else
   1204 /*** IUnknown methods ***/
   1205 static FORCEINLINE HRESULT IDirectDrawMediaSample_QueryInterface(IDirectDrawMediaSample* This,REFIID riid,void **ppvObject) {
   1206     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1207 }
   1208 static FORCEINLINE ULONG IDirectDrawMediaSample_AddRef(IDirectDrawMediaSample* This) {
   1209     return This->lpVtbl->AddRef(This);
   1210 }
   1211 static FORCEINLINE ULONG IDirectDrawMediaSample_Release(IDirectDrawMediaSample* This) {
   1212     return This->lpVtbl->Release(This);
   1213 }
   1214 /*** IDirectDrawMediaSample methods ***/
   1215 static FORCEINLINE HRESULT IDirectDrawMediaSample_GetSurfaceAndReleaseLock(IDirectDrawMediaSample* This,IDirectDrawSurface **ppDirectDrawSurface,RECT *pRect) {
   1216     return This->lpVtbl->GetSurfaceAndReleaseLock(This,ppDirectDrawSurface,pRect);
   1217 }
   1218 static FORCEINLINE HRESULT IDirectDrawMediaSample_LockMediaSamplePointer(IDirectDrawMediaSample* This) {
   1219     return This->lpVtbl->LockMediaSamplePointer(This);
   1220 }
   1221 #endif
   1222 #endif
   1223 
   1224 #endif
   1225 
   1226 
   1227 #endif  /* __IDirectDrawMediaSample_INTERFACE_DEFINED__ */
   1228 
   1229 /*****************************************************************************
   1230  * IAMMediaTypeStream interface
   1231  */
   1232 #ifndef __IAMMediaTypeStream_INTERFACE_DEFINED__
   1233 #define __IAMMediaTypeStream_INTERFACE_DEFINED__
   1234 
   1235 DEFINE_GUID(IID_IAMMediaTypeStream, 0xab6b4afa, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
   1236 #if defined(__cplusplus) && !defined(CINTERFACE)
   1237 MIDL_INTERFACE("ab6b4afa-f6e4-11d0-900d-00c04fd9189d")
   1238 IAMMediaTypeStream : public IMediaStream
   1239 {
   1240     virtual HRESULT STDMETHODCALLTYPE GetFormat(
   1241         AM_MEDIA_TYPE *pMediaType,
   1242         DWORD dwFlags) = 0;
   1243 
   1244     virtual HRESULT STDMETHODCALLTYPE SetFormat(
   1245         AM_MEDIA_TYPE *pMediaType,
   1246         DWORD dwFlags) = 0;
   1247 
   1248     virtual HRESULT STDMETHODCALLTYPE CreateSample(
   1249         LONG lSampleSize,
   1250         BYTE *pbBuffer,
   1251         DWORD dwFlags,
   1252         IUnknown *pUnkOuter,
   1253         IAMMediaTypeSample **ppAMMediaTypeSample) = 0;
   1254 
   1255     virtual HRESULT STDMETHODCALLTYPE GetStreamAllocatorRequirements(
   1256         ALLOCATOR_PROPERTIES *pProps) = 0;
   1257 
   1258     virtual HRESULT STDMETHODCALLTYPE SetStreamAllocatorRequirements(
   1259         ALLOCATOR_PROPERTIES *pProps) = 0;
   1260 
   1261 };
   1262 #ifdef __CRT_UUID_DECL
   1263 __CRT_UUID_DECL(IAMMediaTypeStream, 0xab6b4afa, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
   1264 #endif
   1265 #else
   1266 typedef struct IAMMediaTypeStreamVtbl {
   1267     BEGIN_INTERFACE
   1268 
   1269     /*** IUnknown methods ***/
   1270     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1271         IAMMediaTypeStream *This,
   1272         REFIID riid,
   1273         void **ppvObject);
   1274 
   1275     ULONG (STDMETHODCALLTYPE *AddRef)(
   1276         IAMMediaTypeStream *This);
   1277 
   1278     ULONG (STDMETHODCALLTYPE *Release)(
   1279         IAMMediaTypeStream *This);
   1280 
   1281     /*** IMediaStream methods ***/
   1282     HRESULT (STDMETHODCALLTYPE *GetMultiMediaStream)(
   1283         IAMMediaTypeStream *This,
   1284         IMultiMediaStream **ppMultiMediaStream);
   1285 
   1286     HRESULT (STDMETHODCALLTYPE *GetInformation)(
   1287         IAMMediaTypeStream *This,
   1288         MSPID *pPurposeId,
   1289         STREAM_TYPE *pType);
   1290 
   1291     HRESULT (STDMETHODCALLTYPE *SetSameFormat)(
   1292         IAMMediaTypeStream *This,
   1293         IMediaStream *pStreamThatHasDesiredFormat,
   1294         DWORD dwFlags);
   1295 
   1296     HRESULT (STDMETHODCALLTYPE *AllocateSample)(
   1297         IAMMediaTypeStream *This,
   1298         DWORD dwFlags,
   1299         IStreamSample **ppSample);
   1300 
   1301     HRESULT (STDMETHODCALLTYPE *CreateSharedSample)(
   1302         IAMMediaTypeStream *This,
   1303         IStreamSample *pExistingSample,
   1304         DWORD dwFlags,
   1305         IStreamSample **ppNewSample);
   1306 
   1307     HRESULT (STDMETHODCALLTYPE *SendEndOfStream)(
   1308         IAMMediaTypeStream *This,
   1309         DWORD dwFlags);
   1310 
   1311     /*** IAMMediaTypeStream methods ***/
   1312     HRESULT (STDMETHODCALLTYPE *GetFormat)(
   1313         IAMMediaTypeStream *This,
   1314         AM_MEDIA_TYPE *pMediaType,
   1315         DWORD dwFlags);
   1316 
   1317     HRESULT (STDMETHODCALLTYPE *SetFormat)(
   1318         IAMMediaTypeStream *This,
   1319         AM_MEDIA_TYPE *pMediaType,
   1320         DWORD dwFlags);
   1321 
   1322     HRESULT (STDMETHODCALLTYPE *CreateSample)(
   1323         IAMMediaTypeStream *This,
   1324         LONG lSampleSize,
   1325         BYTE *pbBuffer,
   1326         DWORD dwFlags,
   1327         IUnknown *pUnkOuter,
   1328         IAMMediaTypeSample **ppAMMediaTypeSample);
   1329 
   1330     HRESULT (STDMETHODCALLTYPE *GetStreamAllocatorRequirements)(
   1331         IAMMediaTypeStream *This,
   1332         ALLOCATOR_PROPERTIES *pProps);
   1333 
   1334     HRESULT (STDMETHODCALLTYPE *SetStreamAllocatorRequirements)(
   1335         IAMMediaTypeStream *This,
   1336         ALLOCATOR_PROPERTIES *pProps);
   1337 
   1338     END_INTERFACE
   1339 } IAMMediaTypeStreamVtbl;
   1340 
   1341 interface IAMMediaTypeStream {
   1342     CONST_VTBL IAMMediaTypeStreamVtbl* lpVtbl;
   1343 };
   1344 
   1345 #ifdef COBJMACROS
   1346 #ifndef WIDL_C_INLINE_WRAPPERS
   1347 /*** IUnknown methods ***/
   1348 #define IAMMediaTypeStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1349 #define IAMMediaTypeStream_AddRef(This) (This)->lpVtbl->AddRef(This)
   1350 #define IAMMediaTypeStream_Release(This) (This)->lpVtbl->Release(This)
   1351 /*** IMediaStream methods ***/
   1352 #define IAMMediaTypeStream_GetMultiMediaStream(This,ppMultiMediaStream) (This)->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream)
   1353 #define IAMMediaTypeStream_GetInformation(This,pPurposeId,pType) (This)->lpVtbl->GetInformation(This,pPurposeId,pType)
   1354 #define IAMMediaTypeStream_SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags) (This)->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags)
   1355 #define IAMMediaTypeStream_AllocateSample(This,dwFlags,ppSample) (This)->lpVtbl->AllocateSample(This,dwFlags,ppSample)
   1356 #define IAMMediaTypeStream_CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample) (This)->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample)
   1357 #define IAMMediaTypeStream_SendEndOfStream(This,dwFlags) (This)->lpVtbl->SendEndOfStream(This,dwFlags)
   1358 /*** IAMMediaTypeStream methods ***/
   1359 #define IAMMediaTypeStream_GetFormat(This,pMediaType,dwFlags) (This)->lpVtbl->GetFormat(This,pMediaType,dwFlags)
   1360 #define IAMMediaTypeStream_SetFormat(This,pMediaType,dwFlags) (This)->lpVtbl->SetFormat(This,pMediaType,dwFlags)
   1361 #define IAMMediaTypeStream_CreateSample(This,lSampleSize,pbBuffer,dwFlags,pUnkOuter,ppAMMediaTypeSample) (This)->lpVtbl->CreateSample(This,lSampleSize,pbBuffer,dwFlags,pUnkOuter,ppAMMediaTypeSample)
   1362 #define IAMMediaTypeStream_GetStreamAllocatorRequirements(This,pProps) (This)->lpVtbl->GetStreamAllocatorRequirements(This,pProps)
   1363 #define IAMMediaTypeStream_SetStreamAllocatorRequirements(This,pProps) (This)->lpVtbl->SetStreamAllocatorRequirements(This,pProps)
   1364 #else
   1365 /*** IUnknown methods ***/
   1366 static FORCEINLINE HRESULT IAMMediaTypeStream_QueryInterface(IAMMediaTypeStream* This,REFIID riid,void **ppvObject) {
   1367     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1368 }
   1369 static FORCEINLINE ULONG IAMMediaTypeStream_AddRef(IAMMediaTypeStream* This) {
   1370     return This->lpVtbl->AddRef(This);
   1371 }
   1372 static FORCEINLINE ULONG IAMMediaTypeStream_Release(IAMMediaTypeStream* This) {
   1373     return This->lpVtbl->Release(This);
   1374 }
   1375 /*** IMediaStream methods ***/
   1376 static FORCEINLINE HRESULT IAMMediaTypeStream_GetMultiMediaStream(IAMMediaTypeStream* This,IMultiMediaStream **ppMultiMediaStream) {
   1377     return This->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream);
   1378 }
   1379 static FORCEINLINE HRESULT IAMMediaTypeStream_GetInformation(IAMMediaTypeStream* This,MSPID *pPurposeId,STREAM_TYPE *pType) {
   1380     return This->lpVtbl->GetInformation(This,pPurposeId,pType);
   1381 }
   1382 static FORCEINLINE HRESULT IAMMediaTypeStream_SetSameFormat(IAMMediaTypeStream* This,IMediaStream *pStreamThatHasDesiredFormat,DWORD dwFlags) {
   1383     return This->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags);
   1384 }
   1385 static FORCEINLINE HRESULT IAMMediaTypeStream_AllocateSample(IAMMediaTypeStream* This,DWORD dwFlags,IStreamSample **ppSample) {
   1386     return This->lpVtbl->AllocateSample(This,dwFlags,ppSample);
   1387 }
   1388 static FORCEINLINE HRESULT IAMMediaTypeStream_CreateSharedSample(IAMMediaTypeStream* This,IStreamSample *pExistingSample,DWORD dwFlags,IStreamSample **ppNewSample) {
   1389     return This->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample);
   1390 }
   1391 static FORCEINLINE HRESULT IAMMediaTypeStream_SendEndOfStream(IAMMediaTypeStream* This,DWORD dwFlags) {
   1392     return This->lpVtbl->SendEndOfStream(This,dwFlags);
   1393 }
   1394 /*** IAMMediaTypeStream methods ***/
   1395 static FORCEINLINE HRESULT IAMMediaTypeStream_GetFormat(IAMMediaTypeStream* This,AM_MEDIA_TYPE *pMediaType,DWORD dwFlags) {
   1396     return This->lpVtbl->GetFormat(This,pMediaType,dwFlags);
   1397 }
   1398 static FORCEINLINE HRESULT IAMMediaTypeStream_SetFormat(IAMMediaTypeStream* This,AM_MEDIA_TYPE *pMediaType,DWORD dwFlags) {
   1399     return This->lpVtbl->SetFormat(This,pMediaType,dwFlags);
   1400 }
   1401 static FORCEINLINE HRESULT IAMMediaTypeStream_CreateSample(IAMMediaTypeStream* This,LONG lSampleSize,BYTE *pbBuffer,DWORD dwFlags,IUnknown *pUnkOuter,IAMMediaTypeSample **ppAMMediaTypeSample) {
   1402     return This->lpVtbl->CreateSample(This,lSampleSize,pbBuffer,dwFlags,pUnkOuter,ppAMMediaTypeSample);
   1403 }
   1404 static FORCEINLINE HRESULT IAMMediaTypeStream_GetStreamAllocatorRequirements(IAMMediaTypeStream* This,ALLOCATOR_PROPERTIES *pProps) {
   1405     return This->lpVtbl->GetStreamAllocatorRequirements(This,pProps);
   1406 }
   1407 static FORCEINLINE HRESULT IAMMediaTypeStream_SetStreamAllocatorRequirements(IAMMediaTypeStream* This,ALLOCATOR_PROPERTIES *pProps) {
   1408     return This->lpVtbl->SetStreamAllocatorRequirements(This,pProps);
   1409 }
   1410 #endif
   1411 #endif
   1412 
   1413 #endif
   1414 
   1415 
   1416 #endif  /* __IAMMediaTypeStream_INTERFACE_DEFINED__ */
   1417 
   1418 /*****************************************************************************
   1419  * IAMMediaTypeSample interface
   1420  */
   1421 #ifndef __IAMMediaTypeSample_INTERFACE_DEFINED__
   1422 #define __IAMMediaTypeSample_INTERFACE_DEFINED__
   1423 
   1424 DEFINE_GUID(IID_IAMMediaTypeSample, 0xab6b4afb, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
   1425 #if defined(__cplusplus) && !defined(CINTERFACE)
   1426 MIDL_INTERFACE("ab6b4afb-f6e4-11d0-900d-00c04fd9189d")
   1427 IAMMediaTypeSample : public IStreamSample
   1428 {
   1429     virtual HRESULT STDMETHODCALLTYPE SetPointer(
   1430         BYTE *pBuffer,
   1431         LONG lSize) = 0;
   1432 
   1433     virtual HRESULT STDMETHODCALLTYPE GetPointer(
   1434         BYTE **ppBuffer) = 0;
   1435 
   1436     virtual LONG STDMETHODCALLTYPE GetSize(
   1437         ) = 0;
   1438 
   1439     virtual HRESULT STDMETHODCALLTYPE GetTime(
   1440         REFERENCE_TIME *pTimeStart,
   1441         REFERENCE_TIME *pTimeEnd) = 0;
   1442 
   1443     virtual HRESULT STDMETHODCALLTYPE SetTime(
   1444         REFERENCE_TIME *pTimeStart,
   1445         REFERENCE_TIME *pTimeEnd) = 0;
   1446 
   1447     virtual HRESULT STDMETHODCALLTYPE IsSyncPoint(
   1448         ) = 0;
   1449 
   1450     virtual HRESULT STDMETHODCALLTYPE SetSyncPoint(
   1451         WINBOOL bIsSyncPoint) = 0;
   1452 
   1453     virtual HRESULT STDMETHODCALLTYPE IsPreroll(
   1454         ) = 0;
   1455 
   1456     virtual HRESULT STDMETHODCALLTYPE SetPreroll(
   1457         WINBOOL bIsPreroll) = 0;
   1458 
   1459     virtual LONG STDMETHODCALLTYPE GetActualDataLength(
   1460         ) = 0;
   1461 
   1462     virtual HRESULT STDMETHODCALLTYPE SetActualDataLength(
   1463         LONG Len) = 0;
   1464 
   1465     virtual HRESULT STDMETHODCALLTYPE GetMediaType(
   1466         AM_MEDIA_TYPE **ppMediaType) = 0;
   1467 
   1468     virtual HRESULT STDMETHODCALLTYPE SetMediaType(
   1469         AM_MEDIA_TYPE *pMediaType) = 0;
   1470 
   1471     virtual HRESULT STDMETHODCALLTYPE IsDiscontinuity(
   1472         ) = 0;
   1473 
   1474     virtual HRESULT STDMETHODCALLTYPE SetDiscontinuity(
   1475         WINBOOL bDiscontinuity) = 0;
   1476 
   1477     virtual HRESULT STDMETHODCALLTYPE GetMediaTime(
   1478         LONGLONG *pTimeStart,
   1479         LONGLONG *pTimeEnd) = 0;
   1480 
   1481     virtual HRESULT STDMETHODCALLTYPE SetMediaTime(
   1482         LONGLONG *pTimeStart,
   1483         LONGLONG *pTimeEnd) = 0;
   1484 
   1485 };
   1486 #ifdef __CRT_UUID_DECL
   1487 __CRT_UUID_DECL(IAMMediaTypeSample, 0xab6b4afb, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
   1488 #endif
   1489 #else
   1490 typedef struct IAMMediaTypeSampleVtbl {
   1491     BEGIN_INTERFACE
   1492 
   1493     /*** IUnknown methods ***/
   1494     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1495         IAMMediaTypeSample *This,
   1496         REFIID riid,
   1497         void **ppvObject);
   1498 
   1499     ULONG (STDMETHODCALLTYPE *AddRef)(
   1500         IAMMediaTypeSample *This);
   1501 
   1502     ULONG (STDMETHODCALLTYPE *Release)(
   1503         IAMMediaTypeSample *This);
   1504 
   1505     /*** IStreamSample methods ***/
   1506     HRESULT (STDMETHODCALLTYPE *GetMediaStream)(
   1507         IAMMediaTypeSample *This,
   1508         IMediaStream **ppMediaStream);
   1509 
   1510     HRESULT (STDMETHODCALLTYPE *GetSampleTimes)(
   1511         IAMMediaTypeSample *This,
   1512         STREAM_TIME *pStartTime,
   1513         STREAM_TIME *pEndTime,
   1514         STREAM_TIME *pCurrentTime);
   1515 
   1516     HRESULT (STDMETHODCALLTYPE *SetSampleTimes)(
   1517         IAMMediaTypeSample *This,
   1518         const STREAM_TIME *pStartTime,
   1519         const STREAM_TIME *pEndTime);
   1520 
   1521     HRESULT (STDMETHODCALLTYPE *Update)(
   1522         IAMMediaTypeSample *This,
   1523         DWORD dwFlags,
   1524         HANDLE hEvent,
   1525         PAPCFUNC pfnAPC,
   1526         DWORD dwAPCData);
   1527 
   1528     HRESULT (STDMETHODCALLTYPE *CompletionStatus)(
   1529         IAMMediaTypeSample *This,
   1530         DWORD dwFlags,
   1531         DWORD dwMilliseconds);
   1532 
   1533     /*** IAMMediaTypeSample methods ***/
   1534     HRESULT (STDMETHODCALLTYPE *SetPointer)(
   1535         IAMMediaTypeSample *This,
   1536         BYTE *pBuffer,
   1537         LONG lSize);
   1538 
   1539     HRESULT (STDMETHODCALLTYPE *GetPointer)(
   1540         IAMMediaTypeSample *This,
   1541         BYTE **ppBuffer);
   1542 
   1543     LONG (STDMETHODCALLTYPE *GetSize)(
   1544         IAMMediaTypeSample *This);
   1545 
   1546     HRESULT (STDMETHODCALLTYPE *GetTime)(
   1547         IAMMediaTypeSample *This,
   1548         REFERENCE_TIME *pTimeStart,
   1549         REFERENCE_TIME *pTimeEnd);
   1550 
   1551     HRESULT (STDMETHODCALLTYPE *SetTime)(
   1552         IAMMediaTypeSample *This,
   1553         REFERENCE_TIME *pTimeStart,
   1554         REFERENCE_TIME *pTimeEnd);
   1555 
   1556     HRESULT (STDMETHODCALLTYPE *IsSyncPoint)(
   1557         IAMMediaTypeSample *This);
   1558 
   1559     HRESULT (STDMETHODCALLTYPE *SetSyncPoint)(
   1560         IAMMediaTypeSample *This,
   1561         WINBOOL bIsSyncPoint);
   1562 
   1563     HRESULT (STDMETHODCALLTYPE *IsPreroll)(
   1564         IAMMediaTypeSample *This);
   1565 
   1566     HRESULT (STDMETHODCALLTYPE *SetPreroll)(
   1567         IAMMediaTypeSample *This,
   1568         WINBOOL bIsPreroll);
   1569 
   1570     LONG (STDMETHODCALLTYPE *GetActualDataLength)(
   1571         IAMMediaTypeSample *This);
   1572 
   1573     HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
   1574         IAMMediaTypeSample *This,
   1575         LONG Len);
   1576 
   1577     HRESULT (STDMETHODCALLTYPE *GetMediaType)(
   1578         IAMMediaTypeSample *This,
   1579         AM_MEDIA_TYPE **ppMediaType);
   1580 
   1581     HRESULT (STDMETHODCALLTYPE *SetMediaType)(
   1582         IAMMediaTypeSample *This,
   1583         AM_MEDIA_TYPE *pMediaType);
   1584 
   1585     HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)(
   1586         IAMMediaTypeSample *This);
   1587 
   1588     HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)(
   1589         IAMMediaTypeSample *This,
   1590         WINBOOL bDiscontinuity);
   1591 
   1592     HRESULT (STDMETHODCALLTYPE *GetMediaTime)(
   1593         IAMMediaTypeSample *This,
   1594         LONGLONG *pTimeStart,
   1595         LONGLONG *pTimeEnd);
   1596 
   1597     HRESULT (STDMETHODCALLTYPE *SetMediaTime)(
   1598         IAMMediaTypeSample *This,
   1599         LONGLONG *pTimeStart,
   1600         LONGLONG *pTimeEnd);
   1601 
   1602     END_INTERFACE
   1603 } IAMMediaTypeSampleVtbl;
   1604 
   1605 interface IAMMediaTypeSample {
   1606     CONST_VTBL IAMMediaTypeSampleVtbl* lpVtbl;
   1607 };
   1608 
   1609 #ifdef COBJMACROS
   1610 #ifndef WIDL_C_INLINE_WRAPPERS
   1611 /*** IUnknown methods ***/
   1612 #define IAMMediaTypeSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1613 #define IAMMediaTypeSample_AddRef(This) (This)->lpVtbl->AddRef(This)
   1614 #define IAMMediaTypeSample_Release(This) (This)->lpVtbl->Release(This)
   1615 /*** IStreamSample methods ***/
   1616 #define IAMMediaTypeSample_GetMediaStream(This,ppMediaStream) (This)->lpVtbl->GetMediaStream(This,ppMediaStream)
   1617 #define IAMMediaTypeSample_GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime) (This)->lpVtbl->GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime)
   1618 #define IAMMediaTypeSample_SetSampleTimes(This,pStartTime,pEndTime) (This)->lpVtbl->SetSampleTimes(This,pStartTime,pEndTime)
   1619 #define IAMMediaTypeSample_Update(This,dwFlags,hEvent,pfnAPC,dwAPCData) (This)->lpVtbl->Update(This,dwFlags,hEvent,pfnAPC,dwAPCData)
   1620 #define IAMMediaTypeSample_CompletionStatus(This,dwFlags,dwMilliseconds) (This)->lpVtbl->CompletionStatus(This,dwFlags,dwMilliseconds)
   1621 /*** IAMMediaTypeSample methods ***/
   1622 #define IAMMediaTypeSample_SetPointer(This,pBuffer,lSize) (This)->lpVtbl->SetPointer(This,pBuffer,lSize)
   1623 #define IAMMediaTypeSample_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer)
   1624 #define IAMMediaTypeSample_GetSize(This) (This)->lpVtbl->GetSize(This)
   1625 #define IAMMediaTypeSample_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd)
   1626 #define IAMMediaTypeSample_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd)
   1627 #define IAMMediaTypeSample_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This)
   1628 #define IAMMediaTypeSample_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint)
   1629 #define IAMMediaTypeSample_IsPreroll(This) (This)->lpVtbl->IsPreroll(This)
   1630 #define IAMMediaTypeSample_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll)
   1631 #define IAMMediaTypeSample_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This)
   1632 #define IAMMediaTypeSample_SetActualDataLength(This,Len) (This)->lpVtbl->SetActualDataLength(This,Len)
   1633 #define IAMMediaTypeSample_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType)
   1634 #define IAMMediaTypeSample_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType)
   1635 #define IAMMediaTypeSample_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This)
   1636 #define IAMMediaTypeSample_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity)
   1637 #define IAMMediaTypeSample_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd)
   1638 #define IAMMediaTypeSample_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd)
   1639 #else
   1640 /*** IUnknown methods ***/
   1641 static FORCEINLINE HRESULT IAMMediaTypeSample_QueryInterface(IAMMediaTypeSample* This,REFIID riid,void **ppvObject) {
   1642     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1643 }
   1644 static FORCEINLINE ULONG IAMMediaTypeSample_AddRef(IAMMediaTypeSample* This) {
   1645     return This->lpVtbl->AddRef(This);
   1646 }
   1647 static FORCEINLINE ULONG IAMMediaTypeSample_Release(IAMMediaTypeSample* This) {
   1648     return This->lpVtbl->Release(This);
   1649 }
   1650 /*** IStreamSample methods ***/
   1651 static FORCEINLINE HRESULT IAMMediaTypeSample_GetMediaStream(IAMMediaTypeSample* This,IMediaStream **ppMediaStream) {
   1652     return This->lpVtbl->GetMediaStream(This,ppMediaStream);
   1653 }
   1654 static FORCEINLINE HRESULT IAMMediaTypeSample_GetSampleTimes(IAMMediaTypeSample* This,STREAM_TIME *pStartTime,STREAM_TIME *pEndTime,STREAM_TIME *pCurrentTime) {
   1655     return This->lpVtbl->GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime);
   1656 }
   1657 static FORCEINLINE HRESULT IAMMediaTypeSample_SetSampleTimes(IAMMediaTypeSample* This,const STREAM_TIME *pStartTime,const STREAM_TIME *pEndTime) {
   1658     return This->lpVtbl->SetSampleTimes(This,pStartTime,pEndTime);
   1659 }
   1660 static FORCEINLINE HRESULT IAMMediaTypeSample_Update(IAMMediaTypeSample* This,DWORD dwFlags,HANDLE hEvent,PAPCFUNC pfnAPC,DWORD dwAPCData) {
   1661     return This->lpVtbl->Update(This,dwFlags,hEvent,pfnAPC,dwAPCData);
   1662 }
   1663 static FORCEINLINE HRESULT IAMMediaTypeSample_CompletionStatus(IAMMediaTypeSample* This,DWORD dwFlags,DWORD dwMilliseconds) {
   1664     return This->lpVtbl->CompletionStatus(This,dwFlags,dwMilliseconds);
   1665 }
   1666 /*** IAMMediaTypeSample methods ***/
   1667 static FORCEINLINE HRESULT IAMMediaTypeSample_SetPointer(IAMMediaTypeSample* This,BYTE *pBuffer,LONG lSize) {
   1668     return This->lpVtbl->SetPointer(This,pBuffer,lSize);
   1669 }
   1670 static FORCEINLINE HRESULT IAMMediaTypeSample_GetPointer(IAMMediaTypeSample* This,BYTE **ppBuffer) {
   1671     return This->lpVtbl->GetPointer(This,ppBuffer);
   1672 }
   1673 static FORCEINLINE LONG IAMMediaTypeSample_GetSize(IAMMediaTypeSample* This) {
   1674     return This->lpVtbl->GetSize(This);
   1675 }
   1676 static FORCEINLINE HRESULT IAMMediaTypeSample_GetTime(IAMMediaTypeSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
   1677     return This->lpVtbl->GetTime(This,pTimeStart,pTimeEnd);
   1678 }
   1679 static FORCEINLINE HRESULT IAMMediaTypeSample_SetTime(IAMMediaTypeSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
   1680     return This->lpVtbl->SetTime(This,pTimeStart,pTimeEnd);
   1681 }
   1682 static FORCEINLINE HRESULT IAMMediaTypeSample_IsSyncPoint(IAMMediaTypeSample* This) {
   1683     return This->lpVtbl->IsSyncPoint(This);
   1684 }
   1685 static FORCEINLINE HRESULT IAMMediaTypeSample_SetSyncPoint(IAMMediaTypeSample* This,WINBOOL bIsSyncPoint) {
   1686     return This->lpVtbl->SetSyncPoint(This,bIsSyncPoint);
   1687 }
   1688 static FORCEINLINE HRESULT IAMMediaTypeSample_IsPreroll(IAMMediaTypeSample* This) {
   1689     return This->lpVtbl->IsPreroll(This);
   1690 }
   1691 static FORCEINLINE HRESULT IAMMediaTypeSample_SetPreroll(IAMMediaTypeSample* This,WINBOOL bIsPreroll) {
   1692     return This->lpVtbl->SetPreroll(This,bIsPreroll);
   1693 }
   1694 static FORCEINLINE LONG IAMMediaTypeSample_GetActualDataLength(IAMMediaTypeSample* This) {
   1695     return This->lpVtbl->GetActualDataLength(This);
   1696 }
   1697 static FORCEINLINE HRESULT IAMMediaTypeSample_SetActualDataLength(IAMMediaTypeSample* This,LONG Len) {
   1698     return This->lpVtbl->SetActualDataLength(This,Len);
   1699 }
   1700 static FORCEINLINE HRESULT IAMMediaTypeSample_GetMediaType(IAMMediaTypeSample* This,AM_MEDIA_TYPE **ppMediaType) {
   1701     return This->lpVtbl->GetMediaType(This,ppMediaType);
   1702 }
   1703 static FORCEINLINE HRESULT IAMMediaTypeSample_SetMediaType(IAMMediaTypeSample* This,AM_MEDIA_TYPE *pMediaType) {
   1704     return This->lpVtbl->SetMediaType(This,pMediaType);
   1705 }
   1706 static FORCEINLINE HRESULT IAMMediaTypeSample_IsDiscontinuity(IAMMediaTypeSample* This) {
   1707     return This->lpVtbl->IsDiscontinuity(This);
   1708 }
   1709 static FORCEINLINE HRESULT IAMMediaTypeSample_SetDiscontinuity(IAMMediaTypeSample* This,WINBOOL bDiscontinuity) {
   1710     return This->lpVtbl->SetDiscontinuity(This,bDiscontinuity);
   1711 }
   1712 static FORCEINLINE HRESULT IAMMediaTypeSample_GetMediaTime(IAMMediaTypeSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
   1713     return This->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd);
   1714 }
   1715 static FORCEINLINE HRESULT IAMMediaTypeSample_SetMediaTime(IAMMediaTypeSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
   1716     return This->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd);
   1717 }
   1718 #endif
   1719 #endif
   1720 
   1721 #endif
   1722 
   1723 
   1724 #endif  /* __IAMMediaTypeSample_INTERFACE_DEFINED__ */
   1725 
   1726 /*****************************************************************************
   1727  * AMMultiMediaStream coclass
   1728  */
   1729 
   1730 DEFINE_GUID(CLSID_AMMultiMediaStream, 0x49c47ce5, 0x9ba4, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45);
   1731 
   1732 #ifdef __cplusplus
   1733 class DECLSPEC_UUID("49c47ce5-9ba4-11d0-8212-00c04fc32c45") AMMultiMediaStream;
   1734 #ifdef __CRT_UUID_DECL
   1735 __CRT_UUID_DECL(AMMultiMediaStream, 0x49c47ce5, 0x9ba4, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45)
   1736 #endif
   1737 #endif
   1738 
   1739 DEFINE_GUID(CLSID_AMDirectDrawStream,  0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);
   1740 DEFINE_GUID(CLSID_AMAudioStream,       0x8496e040, 0xaf4c, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);
   1741 DEFINE_GUID(CLSID_AMAudioData,         0xf2468580, 0xaf8a, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);
   1742 DEFINE_GUID(CLSID_AMMediaTypeStream,   0xcf0f2f7c, 0xf7bf, 0x11d0, 0x90, 0x0d, 0x00, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);
   1743 DEFINE_GUID(CLSID_MediaStreamFilter,   0x49c47ce0, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);
   1744 /* Begin additional prototypes for all interfaces */
   1745 
   1746 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
   1747 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
   1748 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
   1749 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
   1750 
   1751 /* End additional prototypes */
   1752 
   1753 #ifdef __cplusplus
   1754 }
   1755 #endif
   1756 
   1757 #endif /* __amstream_h__ */