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