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