master
   1/*** Autogenerated by WIDL 10.4 from include/qedit.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 __qedit_h__
  17#define __qedit_h__
  18
  19/* Forward declarations */
  20
  21#ifndef __ISampleGrabberCB_FWD_DEFINED__
  22#define __ISampleGrabberCB_FWD_DEFINED__
  23typedef interface ISampleGrabberCB ISampleGrabberCB;
  24#ifdef __cplusplus
  25interface ISampleGrabberCB;
  26#endif /* __cplusplus */
  27#endif
  28
  29#ifndef __ISampleGrabber_FWD_DEFINED__
  30#define __ISampleGrabber_FWD_DEFINED__
  31typedef interface ISampleGrabber ISampleGrabber;
  32#ifdef __cplusplus
  33interface ISampleGrabber;
  34#endif /* __cplusplus */
  35#endif
  36
  37#ifndef __SampleGrabber_FWD_DEFINED__
  38#define __SampleGrabber_FWD_DEFINED__
  39#ifdef __cplusplus
  40typedef class SampleGrabber SampleGrabber;
  41#else
  42typedef struct SampleGrabber SampleGrabber;
  43#endif /* defined __cplusplus */
  44#endif /* defined __SampleGrabber_FWD_DEFINED__ */
  45
  46#ifndef __IMediaDet_FWD_DEFINED__
  47#define __IMediaDet_FWD_DEFINED__
  48typedef interface IMediaDet IMediaDet;
  49#ifdef __cplusplus
  50interface IMediaDet;
  51#endif /* __cplusplus */
  52#endif
  53
  54#ifndef __MediaDet_FWD_DEFINED__
  55#define __MediaDet_FWD_DEFINED__
  56#ifdef __cplusplus
  57typedef class MediaDet MediaDet;
  58#else
  59typedef struct MediaDet MediaDet;
  60#endif /* defined __cplusplus */
  61#endif /* defined __MediaDet_FWD_DEFINED__ */
  62
  63#ifndef __IMediaLocator_FWD_DEFINED__
  64#define __IMediaLocator_FWD_DEFINED__
  65typedef interface IMediaLocator IMediaLocator;
  66#ifdef __cplusplus
  67interface IMediaLocator;
  68#endif /* __cplusplus */
  69#endif
  70
  71#ifndef __IPropertySetter_FWD_DEFINED__
  72#define __IPropertySetter_FWD_DEFINED__
  73typedef interface IPropertySetter IPropertySetter;
  74#ifdef __cplusplus
  75interface IPropertySetter;
  76#endif /* __cplusplus */
  77#endif
  78
  79#ifndef __IAMErrorLog_FWD_DEFINED__
  80#define __IAMErrorLog_FWD_DEFINED__
  81typedef interface IAMErrorLog IAMErrorLog;
  82#ifdef __cplusplus
  83interface IAMErrorLog;
  84#endif /* __cplusplus */
  85#endif
  86
  87#ifndef __IAMSetErrorLog_FWD_DEFINED__
  88#define __IAMSetErrorLog_FWD_DEFINED__
  89typedef interface IAMSetErrorLog IAMSetErrorLog;
  90#ifdef __cplusplus
  91interface IAMSetErrorLog;
  92#endif /* __cplusplus */
  93#endif
  94
  95#ifndef __IAMTimeline_FWD_DEFINED__
  96#define __IAMTimeline_FWD_DEFINED__
  97typedef interface IAMTimeline IAMTimeline;
  98#ifdef __cplusplus
  99interface IAMTimeline;
 100#endif /* __cplusplus */
 101#endif
 102
 103#ifndef __AMTimeline_FWD_DEFINED__
 104#define __AMTimeline_FWD_DEFINED__
 105#ifdef __cplusplus
 106typedef class AMTimeline AMTimeline;
 107#else
 108typedef struct AMTimeline AMTimeline;
 109#endif /* defined __cplusplus */
 110#endif /* defined __AMTimeline_FWD_DEFINED__ */
 111
 112#ifndef __IAMTimelineGroup_FWD_DEFINED__
 113#define __IAMTimelineGroup_FWD_DEFINED__
 114typedef interface IAMTimelineGroup IAMTimelineGroup;
 115#ifdef __cplusplus
 116interface IAMTimelineGroup;
 117#endif /* __cplusplus */
 118#endif
 119
 120#ifndef __IAMTimelineObj_FWD_DEFINED__
 121#define __IAMTimelineObj_FWD_DEFINED__
 122typedef interface IAMTimelineObj IAMTimelineObj;
 123#ifdef __cplusplus
 124interface IAMTimelineObj;
 125#endif /* __cplusplus */
 126#endif
 127
 128#ifndef __IAMTimelineSrc_FWD_DEFINED__
 129#define __IAMTimelineSrc_FWD_DEFINED__
 130typedef interface IAMTimelineSrc IAMTimelineSrc;
 131#ifdef __cplusplus
 132interface IAMTimelineSrc;
 133#endif /* __cplusplus */
 134#endif
 135
 136/* Headers for imported files */
 137
 138#include <oaidl.h>
 139#include <ocidl.h>
 140#include <amstream.h>
 141#include <msxml.h>
 142
 143#ifdef __cplusplus
 144extern "C" {
 145#endif
 146
 147/*****************************************************************************
 148 * ISampleGrabberCB interface
 149 */
 150#ifndef __ISampleGrabberCB_INTERFACE_DEFINED__
 151#define __ISampleGrabberCB_INTERFACE_DEFINED__
 152
 153DEFINE_GUID(IID_ISampleGrabberCB, 0x0579154a, 0x2b53, 0x4994, 0xb0,0xd0, 0xe7,0x73,0x14,0x8e,0xff,0x85);
 154#if defined(__cplusplus) && !defined(CINTERFACE)
 155MIDL_INTERFACE("0579154a-2b53-4994-b0d0-e773148eff85")
 156ISampleGrabberCB : public IUnknown
 157{
 158    virtual HRESULT STDMETHODCALLTYPE SampleCB(
 159        double SampleTime,
 160        IMediaSample *pSample) = 0;
 161
 162    virtual HRESULT STDMETHODCALLTYPE BufferCB(
 163        double SampleTime,
 164        BYTE *pBuffer,
 165        LONG BufferLen) = 0;
 166
 167};
 168#ifdef __CRT_UUID_DECL
 169__CRT_UUID_DECL(ISampleGrabberCB, 0x0579154a, 0x2b53, 0x4994, 0xb0,0xd0, 0xe7,0x73,0x14,0x8e,0xff,0x85)
 170#endif
 171#else
 172typedef struct ISampleGrabberCBVtbl {
 173    BEGIN_INTERFACE
 174
 175    /*** IUnknown methods ***/
 176    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 177        ISampleGrabberCB *This,
 178        REFIID riid,
 179        void **ppvObject);
 180
 181    ULONG (STDMETHODCALLTYPE *AddRef)(
 182        ISampleGrabberCB *This);
 183
 184    ULONG (STDMETHODCALLTYPE *Release)(
 185        ISampleGrabberCB *This);
 186
 187    /*** ISampleGrabberCB methods ***/
 188    HRESULT (STDMETHODCALLTYPE *SampleCB)(
 189        ISampleGrabberCB *This,
 190        double SampleTime,
 191        IMediaSample *pSample);
 192
 193    HRESULT (STDMETHODCALLTYPE *BufferCB)(
 194        ISampleGrabberCB *This,
 195        double SampleTime,
 196        BYTE *pBuffer,
 197        LONG BufferLen);
 198
 199    END_INTERFACE
 200} ISampleGrabberCBVtbl;
 201
 202interface ISampleGrabberCB {
 203    CONST_VTBL ISampleGrabberCBVtbl* lpVtbl;
 204};
 205
 206#ifdef COBJMACROS
 207#ifndef WIDL_C_INLINE_WRAPPERS
 208/*** IUnknown methods ***/
 209#define ISampleGrabberCB_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 210#define ISampleGrabberCB_AddRef(This) (This)->lpVtbl->AddRef(This)
 211#define ISampleGrabberCB_Release(This) (This)->lpVtbl->Release(This)
 212/*** ISampleGrabberCB methods ***/
 213#define ISampleGrabberCB_SampleCB(This,SampleTime,pSample) (This)->lpVtbl->SampleCB(This,SampleTime,pSample)
 214#define ISampleGrabberCB_BufferCB(This,SampleTime,pBuffer,BufferLen) (This)->lpVtbl->BufferCB(This,SampleTime,pBuffer,BufferLen)
 215#else
 216/*** IUnknown methods ***/
 217static inline HRESULT ISampleGrabberCB_QueryInterface(ISampleGrabberCB* This,REFIID riid,void **ppvObject) {
 218    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 219}
 220static inline ULONG ISampleGrabberCB_AddRef(ISampleGrabberCB* This) {
 221    return This->lpVtbl->AddRef(This);
 222}
 223static inline ULONG ISampleGrabberCB_Release(ISampleGrabberCB* This) {
 224    return This->lpVtbl->Release(This);
 225}
 226/*** ISampleGrabberCB methods ***/
 227static inline HRESULT ISampleGrabberCB_SampleCB(ISampleGrabberCB* This,double SampleTime,IMediaSample *pSample) {
 228    return This->lpVtbl->SampleCB(This,SampleTime,pSample);
 229}
 230static inline HRESULT ISampleGrabberCB_BufferCB(ISampleGrabberCB* This,double SampleTime,BYTE *pBuffer,LONG BufferLen) {
 231    return This->lpVtbl->BufferCB(This,SampleTime,pBuffer,BufferLen);
 232}
 233#endif
 234#endif
 235
 236#endif
 237
 238
 239#endif  /* __ISampleGrabberCB_INTERFACE_DEFINED__ */
 240
 241/*****************************************************************************
 242 * ISampleGrabber interface
 243 */
 244#ifndef __ISampleGrabber_INTERFACE_DEFINED__
 245#define __ISampleGrabber_INTERFACE_DEFINED__
 246
 247DEFINE_GUID(IID_ISampleGrabber, 0x6b652fff, 0x11fe, 0x4fce, 0x92,0xad, 0x02,0x66,0xb5,0xd7,0xc7,0x8f);
 248#if defined(__cplusplus) && !defined(CINTERFACE)
 249MIDL_INTERFACE("6b652fff-11fe-4fce-92ad-0266b5d7c78f")
 250ISampleGrabber : public IUnknown
 251{
 252    virtual HRESULT STDMETHODCALLTYPE SetOneShot(
 253        WINBOOL OneShot) = 0;
 254
 255    virtual HRESULT STDMETHODCALLTYPE SetMediaType(
 256        const AM_MEDIA_TYPE *pType) = 0;
 257
 258    virtual HRESULT STDMETHODCALLTYPE GetConnectedMediaType(
 259        AM_MEDIA_TYPE *pType) = 0;
 260
 261    virtual HRESULT STDMETHODCALLTYPE SetBufferSamples(
 262        WINBOOL BufferThem) = 0;
 263
 264    virtual HRESULT STDMETHODCALLTYPE GetCurrentBuffer(
 265        LONG *pBufferSize,
 266        LONG *pBuffer) = 0;
 267
 268    virtual HRESULT STDMETHODCALLTYPE GetCurrentSample(
 269        IMediaSample **ppSample) = 0;
 270
 271    virtual HRESULT STDMETHODCALLTYPE SetCallback(
 272        ISampleGrabberCB *pCallback,
 273        LONG WhichMethodToCallback) = 0;
 274
 275};
 276#ifdef __CRT_UUID_DECL
 277__CRT_UUID_DECL(ISampleGrabber, 0x6b652fff, 0x11fe, 0x4fce, 0x92,0xad, 0x02,0x66,0xb5,0xd7,0xc7,0x8f)
 278#endif
 279#else
 280typedef struct ISampleGrabberVtbl {
 281    BEGIN_INTERFACE
 282
 283    /*** IUnknown methods ***/
 284    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 285        ISampleGrabber *This,
 286        REFIID riid,
 287        void **ppvObject);
 288
 289    ULONG (STDMETHODCALLTYPE *AddRef)(
 290        ISampleGrabber *This);
 291
 292    ULONG (STDMETHODCALLTYPE *Release)(
 293        ISampleGrabber *This);
 294
 295    /*** ISampleGrabber methods ***/
 296    HRESULT (STDMETHODCALLTYPE *SetOneShot)(
 297        ISampleGrabber *This,
 298        WINBOOL OneShot);
 299
 300    HRESULT (STDMETHODCALLTYPE *SetMediaType)(
 301        ISampleGrabber *This,
 302        const AM_MEDIA_TYPE *pType);
 303
 304    HRESULT (STDMETHODCALLTYPE *GetConnectedMediaType)(
 305        ISampleGrabber *This,
 306        AM_MEDIA_TYPE *pType);
 307
 308    HRESULT (STDMETHODCALLTYPE *SetBufferSamples)(
 309        ISampleGrabber *This,
 310        WINBOOL BufferThem);
 311
 312    HRESULT (STDMETHODCALLTYPE *GetCurrentBuffer)(
 313        ISampleGrabber *This,
 314        LONG *pBufferSize,
 315        LONG *pBuffer);
 316
 317    HRESULT (STDMETHODCALLTYPE *GetCurrentSample)(
 318        ISampleGrabber *This,
 319        IMediaSample **ppSample);
 320
 321    HRESULT (STDMETHODCALLTYPE *SetCallback)(
 322        ISampleGrabber *This,
 323        ISampleGrabberCB *pCallback,
 324        LONG WhichMethodToCallback);
 325
 326    END_INTERFACE
 327} ISampleGrabberVtbl;
 328
 329interface ISampleGrabber {
 330    CONST_VTBL ISampleGrabberVtbl* lpVtbl;
 331};
 332
 333#ifdef COBJMACROS
 334#ifndef WIDL_C_INLINE_WRAPPERS
 335/*** IUnknown methods ***/
 336#define ISampleGrabber_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 337#define ISampleGrabber_AddRef(This) (This)->lpVtbl->AddRef(This)
 338#define ISampleGrabber_Release(This) (This)->lpVtbl->Release(This)
 339/*** ISampleGrabber methods ***/
 340#define ISampleGrabber_SetOneShot(This,OneShot) (This)->lpVtbl->SetOneShot(This,OneShot)
 341#define ISampleGrabber_SetMediaType(This,pType) (This)->lpVtbl->SetMediaType(This,pType)
 342#define ISampleGrabber_GetConnectedMediaType(This,pType) (This)->lpVtbl->GetConnectedMediaType(This,pType)
 343#define ISampleGrabber_SetBufferSamples(This,BufferThem) (This)->lpVtbl->SetBufferSamples(This,BufferThem)
 344#define ISampleGrabber_GetCurrentBuffer(This,pBufferSize,pBuffer) (This)->lpVtbl->GetCurrentBuffer(This,pBufferSize,pBuffer)
 345#define ISampleGrabber_GetCurrentSample(This,ppSample) (This)->lpVtbl->GetCurrentSample(This,ppSample)
 346#define ISampleGrabber_SetCallback(This,pCallback,WhichMethodToCallback) (This)->lpVtbl->SetCallback(This,pCallback,WhichMethodToCallback)
 347#else
 348/*** IUnknown methods ***/
 349static inline HRESULT ISampleGrabber_QueryInterface(ISampleGrabber* This,REFIID riid,void **ppvObject) {
 350    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 351}
 352static inline ULONG ISampleGrabber_AddRef(ISampleGrabber* This) {
 353    return This->lpVtbl->AddRef(This);
 354}
 355static inline ULONG ISampleGrabber_Release(ISampleGrabber* This) {
 356    return This->lpVtbl->Release(This);
 357}
 358/*** ISampleGrabber methods ***/
 359static inline HRESULT ISampleGrabber_SetOneShot(ISampleGrabber* This,WINBOOL OneShot) {
 360    return This->lpVtbl->SetOneShot(This,OneShot);
 361}
 362static inline HRESULT ISampleGrabber_SetMediaType(ISampleGrabber* This,const AM_MEDIA_TYPE *pType) {
 363    return This->lpVtbl->SetMediaType(This,pType);
 364}
 365static inline HRESULT ISampleGrabber_GetConnectedMediaType(ISampleGrabber* This,AM_MEDIA_TYPE *pType) {
 366    return This->lpVtbl->GetConnectedMediaType(This,pType);
 367}
 368static inline HRESULT ISampleGrabber_SetBufferSamples(ISampleGrabber* This,WINBOOL BufferThem) {
 369    return This->lpVtbl->SetBufferSamples(This,BufferThem);
 370}
 371static inline HRESULT ISampleGrabber_GetCurrentBuffer(ISampleGrabber* This,LONG *pBufferSize,LONG *pBuffer) {
 372    return This->lpVtbl->GetCurrentBuffer(This,pBufferSize,pBuffer);
 373}
 374static inline HRESULT ISampleGrabber_GetCurrentSample(ISampleGrabber* This,IMediaSample **ppSample) {
 375    return This->lpVtbl->GetCurrentSample(This,ppSample);
 376}
 377static inline HRESULT ISampleGrabber_SetCallback(ISampleGrabber* This,ISampleGrabberCB *pCallback,LONG WhichMethodToCallback) {
 378    return This->lpVtbl->SetCallback(This,pCallback,WhichMethodToCallback);
 379}
 380#endif
 381#endif
 382
 383#endif
 384
 385
 386#endif  /* __ISampleGrabber_INTERFACE_DEFINED__ */
 387
 388/*****************************************************************************
 389 * SampleGrabber coclass
 390 */
 391
 392DEFINE_GUID(CLSID_SampleGrabber, 0xc1f400a0, 0x3f08, 0x11d3, 0x9f,0x0b, 0x00,0x60,0x08,0x03,0x9e,0x37);
 393
 394#ifdef __cplusplus
 395class DECLSPEC_UUID("c1f400a0-3f08-11d3-9f0b-006008039e37") SampleGrabber;
 396#ifdef __CRT_UUID_DECL
 397__CRT_UUID_DECL(SampleGrabber, 0xc1f400a0, 0x3f08, 0x11d3, 0x9f,0x0b, 0x00,0x60,0x08,0x03,0x9e,0x37)
 398#endif
 399#endif
 400
 401/*****************************************************************************
 402 * IMediaDet interface
 403 */
 404#ifndef __IMediaDet_INTERFACE_DEFINED__
 405#define __IMediaDet_INTERFACE_DEFINED__
 406
 407DEFINE_GUID(IID_IMediaDet, 0x65bd0710, 0x24d2, 0x4ff7, 0x93,0x24, 0xed,0x2e,0x5d,0x3a,0xba,0xfa);
 408#if defined(__cplusplus) && !defined(CINTERFACE)
 409MIDL_INTERFACE("65bd0710-24d2-4ff7-9324-ed2e5d3abafa")
 410IMediaDet : public IUnknown
 411{
 412    virtual HRESULT STDMETHODCALLTYPE get_Filter(
 413        IUnknown **pVal) = 0;
 414
 415    virtual HRESULT STDMETHODCALLTYPE put_Filter(
 416        IUnknown *newVal) = 0;
 417
 418    virtual HRESULT STDMETHODCALLTYPE get_OutputStreams(
 419        LONG *pVal) = 0;
 420
 421    virtual HRESULT STDMETHODCALLTYPE get_CurrentStream(
 422        LONG *pVal) = 0;
 423
 424    virtual HRESULT STDMETHODCALLTYPE put_CurrentStream(
 425        LONG newVal) = 0;
 426
 427    virtual HRESULT STDMETHODCALLTYPE get_StreamType(
 428        GUID *pVal) = 0;
 429
 430    virtual HRESULT STDMETHODCALLTYPE get_StreamTypeB(
 431        BSTR *pVal) = 0;
 432
 433    virtual HRESULT STDMETHODCALLTYPE get_StreamLength(
 434        double *pVal) = 0;
 435
 436    virtual HRESULT STDMETHODCALLTYPE get_Filename(
 437        BSTR *pVal) = 0;
 438
 439    virtual HRESULT STDMETHODCALLTYPE put_Filename(
 440        BSTR newVal) = 0;
 441
 442    virtual HRESULT STDMETHODCALLTYPE GetBitmapBits(
 443        double StreamTime,
 444        LONG *pBufferSize,
 445        char *pBuffer,
 446        LONG Width,
 447        LONG Height) = 0;
 448
 449    virtual HRESULT STDMETHODCALLTYPE WriteBitmapBits(
 450        double StreamTime,
 451        LONG Width,
 452        LONG Height,
 453        BSTR Filename) = 0;
 454
 455    virtual HRESULT STDMETHODCALLTYPE get_StreamMediaType(
 456        AM_MEDIA_TYPE *pVal) = 0;
 457
 458    virtual HRESULT STDMETHODCALLTYPE GetSampleGrabber(
 459        ISampleGrabber **ppVal) = 0;
 460
 461    virtual HRESULT STDMETHODCALLTYPE get_FrameRate(
 462        double *pVal) = 0;
 463
 464    virtual HRESULT STDMETHODCALLTYPE EnterBitmapGrabMode(
 465        double SeekTime) = 0;
 466
 467};
 468#ifdef __CRT_UUID_DECL
 469__CRT_UUID_DECL(IMediaDet, 0x65bd0710, 0x24d2, 0x4ff7, 0x93,0x24, 0xed,0x2e,0x5d,0x3a,0xba,0xfa)
 470#endif
 471#else
 472typedef struct IMediaDetVtbl {
 473    BEGIN_INTERFACE
 474
 475    /*** IUnknown methods ***/
 476    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 477        IMediaDet *This,
 478        REFIID riid,
 479        void **ppvObject);
 480
 481    ULONG (STDMETHODCALLTYPE *AddRef)(
 482        IMediaDet *This);
 483
 484    ULONG (STDMETHODCALLTYPE *Release)(
 485        IMediaDet *This);
 486
 487    /*** IMediaDet methods ***/
 488    HRESULT (STDMETHODCALLTYPE *get_Filter)(
 489        IMediaDet *This,
 490        IUnknown **pVal);
 491
 492    HRESULT (STDMETHODCALLTYPE *put_Filter)(
 493        IMediaDet *This,
 494        IUnknown *newVal);
 495
 496    HRESULT (STDMETHODCALLTYPE *get_OutputStreams)(
 497        IMediaDet *This,
 498        LONG *pVal);
 499
 500    HRESULT (STDMETHODCALLTYPE *get_CurrentStream)(
 501        IMediaDet *This,
 502        LONG *pVal);
 503
 504    HRESULT (STDMETHODCALLTYPE *put_CurrentStream)(
 505        IMediaDet *This,
 506        LONG newVal);
 507
 508    HRESULT (STDMETHODCALLTYPE *get_StreamType)(
 509        IMediaDet *This,
 510        GUID *pVal);
 511
 512    HRESULT (STDMETHODCALLTYPE *get_StreamTypeB)(
 513        IMediaDet *This,
 514        BSTR *pVal);
 515
 516    HRESULT (STDMETHODCALLTYPE *get_StreamLength)(
 517        IMediaDet *This,
 518        double *pVal);
 519
 520    HRESULT (STDMETHODCALLTYPE *get_Filename)(
 521        IMediaDet *This,
 522        BSTR *pVal);
 523
 524    HRESULT (STDMETHODCALLTYPE *put_Filename)(
 525        IMediaDet *This,
 526        BSTR newVal);
 527
 528    HRESULT (STDMETHODCALLTYPE *GetBitmapBits)(
 529        IMediaDet *This,
 530        double StreamTime,
 531        LONG *pBufferSize,
 532        char *pBuffer,
 533        LONG Width,
 534        LONG Height);
 535
 536    HRESULT (STDMETHODCALLTYPE *WriteBitmapBits)(
 537        IMediaDet *This,
 538        double StreamTime,
 539        LONG Width,
 540        LONG Height,
 541        BSTR Filename);
 542
 543    HRESULT (STDMETHODCALLTYPE *get_StreamMediaType)(
 544        IMediaDet *This,
 545        AM_MEDIA_TYPE *pVal);
 546
 547    HRESULT (STDMETHODCALLTYPE *GetSampleGrabber)(
 548        IMediaDet *This,
 549        ISampleGrabber **ppVal);
 550
 551    HRESULT (STDMETHODCALLTYPE *get_FrameRate)(
 552        IMediaDet *This,
 553        double *pVal);
 554
 555    HRESULT (STDMETHODCALLTYPE *EnterBitmapGrabMode)(
 556        IMediaDet *This,
 557        double SeekTime);
 558
 559    END_INTERFACE
 560} IMediaDetVtbl;
 561
 562interface IMediaDet {
 563    CONST_VTBL IMediaDetVtbl* lpVtbl;
 564};
 565
 566#ifdef COBJMACROS
 567#ifndef WIDL_C_INLINE_WRAPPERS
 568/*** IUnknown methods ***/
 569#define IMediaDet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 570#define IMediaDet_AddRef(This) (This)->lpVtbl->AddRef(This)
 571#define IMediaDet_Release(This) (This)->lpVtbl->Release(This)
 572/*** IMediaDet methods ***/
 573#define IMediaDet_get_Filter(This,pVal) (This)->lpVtbl->get_Filter(This,pVal)
 574#define IMediaDet_put_Filter(This,newVal) (This)->lpVtbl->put_Filter(This,newVal)
 575#define IMediaDet_get_OutputStreams(This,pVal) (This)->lpVtbl->get_OutputStreams(This,pVal)
 576#define IMediaDet_get_CurrentStream(This,pVal) (This)->lpVtbl->get_CurrentStream(This,pVal)
 577#define IMediaDet_put_CurrentStream(This,newVal) (This)->lpVtbl->put_CurrentStream(This,newVal)
 578#define IMediaDet_get_StreamType(This,pVal) (This)->lpVtbl->get_StreamType(This,pVal)
 579#define IMediaDet_get_StreamTypeB(This,pVal) (This)->lpVtbl->get_StreamTypeB(This,pVal)
 580#define IMediaDet_get_StreamLength(This,pVal) (This)->lpVtbl->get_StreamLength(This,pVal)
 581#define IMediaDet_get_Filename(This,pVal) (This)->lpVtbl->get_Filename(This,pVal)
 582#define IMediaDet_put_Filename(This,newVal) (This)->lpVtbl->put_Filename(This,newVal)
 583#define IMediaDet_GetBitmapBits(This,StreamTime,pBufferSize,pBuffer,Width,Height) (This)->lpVtbl->GetBitmapBits(This,StreamTime,pBufferSize,pBuffer,Width,Height)
 584#define IMediaDet_WriteBitmapBits(This,StreamTime,Width,Height,Filename) (This)->lpVtbl->WriteBitmapBits(This,StreamTime,Width,Height,Filename)
 585#define IMediaDet_get_StreamMediaType(This,pVal) (This)->lpVtbl->get_StreamMediaType(This,pVal)
 586#define IMediaDet_GetSampleGrabber(This,ppVal) (This)->lpVtbl->GetSampleGrabber(This,ppVal)
 587#define IMediaDet_get_FrameRate(This,pVal) (This)->lpVtbl->get_FrameRate(This,pVal)
 588#define IMediaDet_EnterBitmapGrabMode(This,SeekTime) (This)->lpVtbl->EnterBitmapGrabMode(This,SeekTime)
 589#else
 590/*** IUnknown methods ***/
 591static inline HRESULT IMediaDet_QueryInterface(IMediaDet* This,REFIID riid,void **ppvObject) {
 592    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 593}
 594static inline ULONG IMediaDet_AddRef(IMediaDet* This) {
 595    return This->lpVtbl->AddRef(This);
 596}
 597static inline ULONG IMediaDet_Release(IMediaDet* This) {
 598    return This->lpVtbl->Release(This);
 599}
 600/*** IMediaDet methods ***/
 601static inline HRESULT IMediaDet_get_Filter(IMediaDet* This,IUnknown **pVal) {
 602    return This->lpVtbl->get_Filter(This,pVal);
 603}
 604static inline HRESULT IMediaDet_put_Filter(IMediaDet* This,IUnknown *newVal) {
 605    return This->lpVtbl->put_Filter(This,newVal);
 606}
 607static inline HRESULT IMediaDet_get_OutputStreams(IMediaDet* This,LONG *pVal) {
 608    return This->lpVtbl->get_OutputStreams(This,pVal);
 609}
 610static inline HRESULT IMediaDet_get_CurrentStream(IMediaDet* This,LONG *pVal) {
 611    return This->lpVtbl->get_CurrentStream(This,pVal);
 612}
 613static inline HRESULT IMediaDet_put_CurrentStream(IMediaDet* This,LONG newVal) {
 614    return This->lpVtbl->put_CurrentStream(This,newVal);
 615}
 616static inline HRESULT IMediaDet_get_StreamType(IMediaDet* This,GUID *pVal) {
 617    return This->lpVtbl->get_StreamType(This,pVal);
 618}
 619static inline HRESULT IMediaDet_get_StreamTypeB(IMediaDet* This,BSTR *pVal) {
 620    return This->lpVtbl->get_StreamTypeB(This,pVal);
 621}
 622static inline HRESULT IMediaDet_get_StreamLength(IMediaDet* This,double *pVal) {
 623    return This->lpVtbl->get_StreamLength(This,pVal);
 624}
 625static inline HRESULT IMediaDet_get_Filename(IMediaDet* This,BSTR *pVal) {
 626    return This->lpVtbl->get_Filename(This,pVal);
 627}
 628static inline HRESULT IMediaDet_put_Filename(IMediaDet* This,BSTR newVal) {
 629    return This->lpVtbl->put_Filename(This,newVal);
 630}
 631static inline HRESULT IMediaDet_GetBitmapBits(IMediaDet* This,double StreamTime,LONG *pBufferSize,char *pBuffer,LONG Width,LONG Height) {
 632    return This->lpVtbl->GetBitmapBits(This,StreamTime,pBufferSize,pBuffer,Width,Height);
 633}
 634static inline HRESULT IMediaDet_WriteBitmapBits(IMediaDet* This,double StreamTime,LONG Width,LONG Height,BSTR Filename) {
 635    return This->lpVtbl->WriteBitmapBits(This,StreamTime,Width,Height,Filename);
 636}
 637static inline HRESULT IMediaDet_get_StreamMediaType(IMediaDet* This,AM_MEDIA_TYPE *pVal) {
 638    return This->lpVtbl->get_StreamMediaType(This,pVal);
 639}
 640static inline HRESULT IMediaDet_GetSampleGrabber(IMediaDet* This,ISampleGrabber **ppVal) {
 641    return This->lpVtbl->GetSampleGrabber(This,ppVal);
 642}
 643static inline HRESULT IMediaDet_get_FrameRate(IMediaDet* This,double *pVal) {
 644    return This->lpVtbl->get_FrameRate(This,pVal);
 645}
 646static inline HRESULT IMediaDet_EnterBitmapGrabMode(IMediaDet* This,double SeekTime) {
 647    return This->lpVtbl->EnterBitmapGrabMode(This,SeekTime);
 648}
 649#endif
 650#endif
 651
 652#endif
 653
 654
 655#endif  /* __IMediaDet_INTERFACE_DEFINED__ */
 656
 657/*****************************************************************************
 658 * MediaDet coclass
 659 */
 660
 661DEFINE_GUID(CLSID_MediaDet, 0x65bd0711, 0x24d2, 0x4ff7, 0x93,0x24, 0xed,0x2e,0x5d,0x3a,0xba,0xfa);
 662
 663#ifdef __cplusplus
 664class DECLSPEC_UUID("65bd0711-24d2-4ff7-9324-ed2e5d3abafa") MediaDet;
 665#ifdef __CRT_UUID_DECL
 666__CRT_UUID_DECL(MediaDet, 0x65bd0711, 0x24d2, 0x4ff7, 0x93,0x24, 0xed,0x2e,0x5d,0x3a,0xba,0xfa)
 667#endif
 668#endif
 669
 670/*****************************************************************************
 671 * IMediaLocator interface
 672 */
 673#ifndef __IMediaLocator_INTERFACE_DEFINED__
 674#define __IMediaLocator_INTERFACE_DEFINED__
 675
 676DEFINE_GUID(IID_IMediaLocator, 0x288581e0, 0x66ce, 0x11d2, 0x91,0x8f, 0x00,0xc0,0xdf,0x10,0xd4,0x34);
 677#if defined(__cplusplus) && !defined(CINTERFACE)
 678MIDL_INTERFACE("288581e0-66ce-11d2-918f-00c0df10d434")
 679IMediaLocator : public IUnknown
 680{
 681    virtual HRESULT STDMETHODCALLTYPE FindMediaFile(
 682        BSTR input,
 683        BSTR filter,
 684        BSTR *output,
 685        LONG flags) = 0;
 686
 687    virtual HRESULT STDMETHODCALLTYPE AddFoundLocation(
 688        BSTR dir) = 0;
 689
 690};
 691#ifdef __CRT_UUID_DECL
 692__CRT_UUID_DECL(IMediaLocator, 0x288581e0, 0x66ce, 0x11d2, 0x91,0x8f, 0x00,0xc0,0xdf,0x10,0xd4,0x34)
 693#endif
 694#else
 695typedef struct IMediaLocatorVtbl {
 696    BEGIN_INTERFACE
 697
 698    /*** IUnknown methods ***/
 699    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 700        IMediaLocator *This,
 701        REFIID riid,
 702        void **ppvObject);
 703
 704    ULONG (STDMETHODCALLTYPE *AddRef)(
 705        IMediaLocator *This);
 706
 707    ULONG (STDMETHODCALLTYPE *Release)(
 708        IMediaLocator *This);
 709
 710    /*** IMediaLocator methods ***/
 711    HRESULT (STDMETHODCALLTYPE *FindMediaFile)(
 712        IMediaLocator *This,
 713        BSTR input,
 714        BSTR filter,
 715        BSTR *output,
 716        LONG flags);
 717
 718    HRESULT (STDMETHODCALLTYPE *AddFoundLocation)(
 719        IMediaLocator *This,
 720        BSTR dir);
 721
 722    END_INTERFACE
 723} IMediaLocatorVtbl;
 724
 725interface IMediaLocator {
 726    CONST_VTBL IMediaLocatorVtbl* lpVtbl;
 727};
 728
 729#ifdef COBJMACROS
 730#ifndef WIDL_C_INLINE_WRAPPERS
 731/*** IUnknown methods ***/
 732#define IMediaLocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 733#define IMediaLocator_AddRef(This) (This)->lpVtbl->AddRef(This)
 734#define IMediaLocator_Release(This) (This)->lpVtbl->Release(This)
 735/*** IMediaLocator methods ***/
 736#define IMediaLocator_FindMediaFile(This,input,filter,output,flags) (This)->lpVtbl->FindMediaFile(This,input,filter,output,flags)
 737#define IMediaLocator_AddFoundLocation(This,dir) (This)->lpVtbl->AddFoundLocation(This,dir)
 738#else
 739/*** IUnknown methods ***/
 740static inline HRESULT IMediaLocator_QueryInterface(IMediaLocator* This,REFIID riid,void **ppvObject) {
 741    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 742}
 743static inline ULONG IMediaLocator_AddRef(IMediaLocator* This) {
 744    return This->lpVtbl->AddRef(This);
 745}
 746static inline ULONG IMediaLocator_Release(IMediaLocator* This) {
 747    return This->lpVtbl->Release(This);
 748}
 749/*** IMediaLocator methods ***/
 750static inline HRESULT IMediaLocator_FindMediaFile(IMediaLocator* This,BSTR input,BSTR filter,BSTR *output,LONG flags) {
 751    return This->lpVtbl->FindMediaFile(This,input,filter,output,flags);
 752}
 753static inline HRESULT IMediaLocator_AddFoundLocation(IMediaLocator* This,BSTR dir) {
 754    return This->lpVtbl->AddFoundLocation(This,dir);
 755}
 756#endif
 757#endif
 758
 759#endif
 760
 761
 762#endif  /* __IMediaLocator_INTERFACE_DEFINED__ */
 763
 764typedef struct __WIDL_qedit_generated_name_0000002B {
 765    BSTR name;
 766    DISPID dispID;
 767    LONG nValues;
 768} DEXTER_PARAM;
 769typedef struct __WIDL_qedit_generated_name_0000002C {
 770    VARIANT v;
 771    REFERENCE_TIME rt;
 772    DWORD dwInterp;
 773} DEXTER_VALUE;
 774/*****************************************************************************
 775 * IPropertySetter interface
 776 */
 777#ifndef __IPropertySetter_INTERFACE_DEFINED__
 778#define __IPropertySetter_INTERFACE_DEFINED__
 779
 780DEFINE_GUID(IID_IPropertySetter, 0xae9472bd, 0xb0c3, 0x11d2, 0x8d,0x24, 0x00,0xa0,0xc9,0x44,0x1e,0x20);
 781#if defined(__cplusplus) && !defined(CINTERFACE)
 782MIDL_INTERFACE("ae9472bd-b0c3-11d2-8d24-00a0c9441e20")
 783IPropertySetter : public IUnknown
 784{
 785    virtual HRESULT STDMETHODCALLTYPE LoadXML(
 786        IUnknown *pxml) = 0;
 787
 788    virtual HRESULT STDMETHODCALLTYPE PrintXML(
 789        char *xml,
 790        int size,
 791        int *printed,
 792        int indent) = 0;
 793
 794    virtual HRESULT STDMETHODCALLTYPE CloneProps(
 795        IPropertySetter **setter,
 796        REFERENCE_TIME start,
 797        REFERENCE_TIME stop) = 0;
 798
 799    virtual HRESULT STDMETHODCALLTYPE AddProp(
 800        DEXTER_PARAM param,
 801        DEXTER_VALUE *value) = 0;
 802
 803    virtual HRESULT STDMETHODCALLTYPE GetProps(
 804        LONG *params,
 805        DEXTER_PARAM **param,
 806        DEXTER_VALUE **value) = 0;
 807
 808    virtual HRESULT STDMETHODCALLTYPE FreeProps(
 809        LONG params,
 810        DEXTER_PARAM *param,
 811        DEXTER_VALUE *value) = 0;
 812
 813    virtual HRESULT STDMETHODCALLTYPE ClearProps(
 814        ) = 0;
 815
 816    virtual HRESULT STDMETHODCALLTYPE SaveToBlob(
 817        LONG *size,
 818        BYTE **blob) = 0;
 819
 820    virtual HRESULT STDMETHODCALLTYPE LoadFromBlob(
 821        LONG size,
 822        BYTE *blob) = 0;
 823
 824    virtual HRESULT STDMETHODCALLTYPE SetProps(
 825        IUnknown *target,
 826        REFERENCE_TIME now) = 0;
 827
 828};
 829#ifdef __CRT_UUID_DECL
 830__CRT_UUID_DECL(IPropertySetter, 0xae9472bd, 0xb0c3, 0x11d2, 0x8d,0x24, 0x00,0xa0,0xc9,0x44,0x1e,0x20)
 831#endif
 832#else
 833typedef struct IPropertySetterVtbl {
 834    BEGIN_INTERFACE
 835
 836    /*** IUnknown methods ***/
 837    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 838        IPropertySetter *This,
 839        REFIID riid,
 840        void **ppvObject);
 841
 842    ULONG (STDMETHODCALLTYPE *AddRef)(
 843        IPropertySetter *This);
 844
 845    ULONG (STDMETHODCALLTYPE *Release)(
 846        IPropertySetter *This);
 847
 848    /*** IPropertySetter methods ***/
 849    HRESULT (STDMETHODCALLTYPE *LoadXML)(
 850        IPropertySetter *This,
 851        IUnknown *pxml);
 852
 853    HRESULT (STDMETHODCALLTYPE *PrintXML)(
 854        IPropertySetter *This,
 855        char *xml,
 856        int size,
 857        int *printed,
 858        int indent);
 859
 860    HRESULT (STDMETHODCALLTYPE *CloneProps)(
 861        IPropertySetter *This,
 862        IPropertySetter **setter,
 863        REFERENCE_TIME start,
 864        REFERENCE_TIME stop);
 865
 866    HRESULT (STDMETHODCALLTYPE *AddProp)(
 867        IPropertySetter *This,
 868        DEXTER_PARAM param,
 869        DEXTER_VALUE *value);
 870
 871    HRESULT (STDMETHODCALLTYPE *GetProps)(
 872        IPropertySetter *This,
 873        LONG *params,
 874        DEXTER_PARAM **param,
 875        DEXTER_VALUE **value);
 876
 877    HRESULT (STDMETHODCALLTYPE *FreeProps)(
 878        IPropertySetter *This,
 879        LONG params,
 880        DEXTER_PARAM *param,
 881        DEXTER_VALUE *value);
 882
 883    HRESULT (STDMETHODCALLTYPE *ClearProps)(
 884        IPropertySetter *This);
 885
 886    HRESULT (STDMETHODCALLTYPE *SaveToBlob)(
 887        IPropertySetter *This,
 888        LONG *size,
 889        BYTE **blob);
 890
 891    HRESULT (STDMETHODCALLTYPE *LoadFromBlob)(
 892        IPropertySetter *This,
 893        LONG size,
 894        BYTE *blob);
 895
 896    HRESULT (STDMETHODCALLTYPE *SetProps)(
 897        IPropertySetter *This,
 898        IUnknown *target,
 899        REFERENCE_TIME now);
 900
 901    END_INTERFACE
 902} IPropertySetterVtbl;
 903
 904interface IPropertySetter {
 905    CONST_VTBL IPropertySetterVtbl* lpVtbl;
 906};
 907
 908#ifdef COBJMACROS
 909#ifndef WIDL_C_INLINE_WRAPPERS
 910/*** IUnknown methods ***/
 911#define IPropertySetter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 912#define IPropertySetter_AddRef(This) (This)->lpVtbl->AddRef(This)
 913#define IPropertySetter_Release(This) (This)->lpVtbl->Release(This)
 914/*** IPropertySetter methods ***/
 915#define IPropertySetter_LoadXML(This,pxml) (This)->lpVtbl->LoadXML(This,pxml)
 916#define IPropertySetter_PrintXML(This,xml,size,printed,indent) (This)->lpVtbl->PrintXML(This,xml,size,printed,indent)
 917#define IPropertySetter_CloneProps(This,setter,start,stop) (This)->lpVtbl->CloneProps(This,setter,start,stop)
 918#define IPropertySetter_AddProp(This,param,value) (This)->lpVtbl->AddProp(This,param,value)
 919#define IPropertySetter_GetProps(This,params,param,value) (This)->lpVtbl->GetProps(This,params,param,value)
 920#define IPropertySetter_FreeProps(This,params,param,value) (This)->lpVtbl->FreeProps(This,params,param,value)
 921#define IPropertySetter_ClearProps(This) (This)->lpVtbl->ClearProps(This)
 922#define IPropertySetter_SaveToBlob(This,size,blob) (This)->lpVtbl->SaveToBlob(This,size,blob)
 923#define IPropertySetter_LoadFromBlob(This,size,blob) (This)->lpVtbl->LoadFromBlob(This,size,blob)
 924#define IPropertySetter_SetProps(This,target,now) (This)->lpVtbl->SetProps(This,target,now)
 925#else
 926/*** IUnknown methods ***/
 927static inline HRESULT IPropertySetter_QueryInterface(IPropertySetter* This,REFIID riid,void **ppvObject) {
 928    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 929}
 930static inline ULONG IPropertySetter_AddRef(IPropertySetter* This) {
 931    return This->lpVtbl->AddRef(This);
 932}
 933static inline ULONG IPropertySetter_Release(IPropertySetter* This) {
 934    return This->lpVtbl->Release(This);
 935}
 936/*** IPropertySetter methods ***/
 937static inline HRESULT IPropertySetter_LoadXML(IPropertySetter* This,IUnknown *pxml) {
 938    return This->lpVtbl->LoadXML(This,pxml);
 939}
 940static inline HRESULT IPropertySetter_PrintXML(IPropertySetter* This,char *xml,int size,int *printed,int indent) {
 941    return This->lpVtbl->PrintXML(This,xml,size,printed,indent);
 942}
 943static inline HRESULT IPropertySetter_CloneProps(IPropertySetter* This,IPropertySetter **setter,REFERENCE_TIME start,REFERENCE_TIME stop) {
 944    return This->lpVtbl->CloneProps(This,setter,start,stop);
 945}
 946static inline HRESULT IPropertySetter_AddProp(IPropertySetter* This,DEXTER_PARAM param,DEXTER_VALUE *value) {
 947    return This->lpVtbl->AddProp(This,param,value);
 948}
 949static inline HRESULT IPropertySetter_GetProps(IPropertySetter* This,LONG *params,DEXTER_PARAM **param,DEXTER_VALUE **value) {
 950    return This->lpVtbl->GetProps(This,params,param,value);
 951}
 952static inline HRESULT IPropertySetter_FreeProps(IPropertySetter* This,LONG params,DEXTER_PARAM *param,DEXTER_VALUE *value) {
 953    return This->lpVtbl->FreeProps(This,params,param,value);
 954}
 955static inline HRESULT IPropertySetter_ClearProps(IPropertySetter* This) {
 956    return This->lpVtbl->ClearProps(This);
 957}
 958static inline HRESULT IPropertySetter_SaveToBlob(IPropertySetter* This,LONG *size,BYTE **blob) {
 959    return This->lpVtbl->SaveToBlob(This,size,blob);
 960}
 961static inline HRESULT IPropertySetter_LoadFromBlob(IPropertySetter* This,LONG size,BYTE *blob) {
 962    return This->lpVtbl->LoadFromBlob(This,size,blob);
 963}
 964static inline HRESULT IPropertySetter_SetProps(IPropertySetter* This,IUnknown *target,REFERENCE_TIME now) {
 965    return This->lpVtbl->SetProps(This,target,now);
 966}
 967#endif
 968#endif
 969
 970#endif
 971
 972
 973#endif  /* __IPropertySetter_INTERFACE_DEFINED__ */
 974
 975/*****************************************************************************
 976 * IAMErrorLog interface
 977 */
 978#ifndef __IAMErrorLog_INTERFACE_DEFINED__
 979#define __IAMErrorLog_INTERFACE_DEFINED__
 980
 981DEFINE_GUID(IID_IAMErrorLog, 0xe43e73a2, 0x0efa, 0x11d3, 0x96,0x01, 0x00,0xa0,0xc9,0x44,0x1e,0x20);
 982#if defined(__cplusplus) && !defined(CINTERFACE)
 983MIDL_INTERFACE("e43e73a2-0efa-11d3-9601-00a0c9441e20")
 984IAMErrorLog : public IUnknown
 985{
 986    virtual HRESULT STDMETHODCALLTYPE LogError(
 987        LONG severity,
 988        BSTR error_str,
 989        LONG error_code,
 990        LONG hresult,
 991        VARIANT *extra) = 0;
 992
 993};
 994#ifdef __CRT_UUID_DECL
 995__CRT_UUID_DECL(IAMErrorLog, 0xe43e73a2, 0x0efa, 0x11d3, 0x96,0x01, 0x00,0xa0,0xc9,0x44,0x1e,0x20)
 996#endif
 997#else
 998typedef struct IAMErrorLogVtbl {
 999    BEGIN_INTERFACE
1000
1001    /*** IUnknown methods ***/
1002    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1003        IAMErrorLog *This,
1004        REFIID riid,
1005        void **ppvObject);
1006
1007    ULONG (STDMETHODCALLTYPE *AddRef)(
1008        IAMErrorLog *This);
1009
1010    ULONG (STDMETHODCALLTYPE *Release)(
1011        IAMErrorLog *This);
1012
1013    /*** IAMErrorLog methods ***/
1014    HRESULT (STDMETHODCALLTYPE *LogError)(
1015        IAMErrorLog *This,
1016        LONG severity,
1017        BSTR error_str,
1018        LONG error_code,
1019        LONG hresult,
1020        VARIANT *extra);
1021
1022    END_INTERFACE
1023} IAMErrorLogVtbl;
1024
1025interface IAMErrorLog {
1026    CONST_VTBL IAMErrorLogVtbl* lpVtbl;
1027};
1028
1029#ifdef COBJMACROS
1030#ifndef WIDL_C_INLINE_WRAPPERS
1031/*** IUnknown methods ***/
1032#define IAMErrorLog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1033#define IAMErrorLog_AddRef(This) (This)->lpVtbl->AddRef(This)
1034#define IAMErrorLog_Release(This) (This)->lpVtbl->Release(This)
1035/*** IAMErrorLog methods ***/
1036#define IAMErrorLog_LogError(This,severity,error_str,error_code,hresult,extra) (This)->lpVtbl->LogError(This,severity,error_str,error_code,hresult,extra)
1037#else
1038/*** IUnknown methods ***/
1039static inline HRESULT IAMErrorLog_QueryInterface(IAMErrorLog* This,REFIID riid,void **ppvObject) {
1040    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1041}
1042static inline ULONG IAMErrorLog_AddRef(IAMErrorLog* This) {
1043    return This->lpVtbl->AddRef(This);
1044}
1045static inline ULONG IAMErrorLog_Release(IAMErrorLog* This) {
1046    return This->lpVtbl->Release(This);
1047}
1048/*** IAMErrorLog methods ***/
1049static inline HRESULT IAMErrorLog_LogError(IAMErrorLog* This,LONG severity,BSTR error_str,LONG error_code,LONG hresult,VARIANT *extra) {
1050    return This->lpVtbl->LogError(This,severity,error_str,error_code,hresult,extra);
1051}
1052#endif
1053#endif
1054
1055#endif
1056
1057
1058#endif  /* __IAMErrorLog_INTERFACE_DEFINED__ */
1059
1060/*****************************************************************************
1061 * IAMSetErrorLog interface
1062 */
1063#ifndef __IAMSetErrorLog_INTERFACE_DEFINED__
1064#define __IAMSetErrorLog_INTERFACE_DEFINED__
1065
1066DEFINE_GUID(IID_IAMSetErrorLog, 0x963566da, 0xbe21, 0x4eaf, 0x88,0xe9, 0x35,0x70,0x4f,0x8f,0x52,0xa1);
1067#if defined(__cplusplus) && !defined(CINTERFACE)
1068MIDL_INTERFACE("963566da-be21-4eaf-88e9-35704f8f52a1")
1069IAMSetErrorLog : public IUnknown
1070{
1071    virtual HRESULT STDMETHODCALLTYPE get_ErrorLog(
1072        IAMErrorLog **log) = 0;
1073
1074    virtual HRESULT STDMETHODCALLTYPE put_ErrorLog(
1075        IAMErrorLog *log) = 0;
1076
1077};
1078#ifdef __CRT_UUID_DECL
1079__CRT_UUID_DECL(IAMSetErrorLog, 0x963566da, 0xbe21, 0x4eaf, 0x88,0xe9, 0x35,0x70,0x4f,0x8f,0x52,0xa1)
1080#endif
1081#else
1082typedef struct IAMSetErrorLogVtbl {
1083    BEGIN_INTERFACE
1084
1085    /*** IUnknown methods ***/
1086    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1087        IAMSetErrorLog *This,
1088        REFIID riid,
1089        void **ppvObject);
1090
1091    ULONG (STDMETHODCALLTYPE *AddRef)(
1092        IAMSetErrorLog *This);
1093
1094    ULONG (STDMETHODCALLTYPE *Release)(
1095        IAMSetErrorLog *This);
1096
1097    /*** IAMSetErrorLog methods ***/
1098    HRESULT (STDMETHODCALLTYPE *get_ErrorLog)(
1099        IAMSetErrorLog *This,
1100        IAMErrorLog **log);
1101
1102    HRESULT (STDMETHODCALLTYPE *put_ErrorLog)(
1103        IAMSetErrorLog *This,
1104        IAMErrorLog *log);
1105
1106    END_INTERFACE
1107} IAMSetErrorLogVtbl;
1108
1109interface IAMSetErrorLog {
1110    CONST_VTBL IAMSetErrorLogVtbl* lpVtbl;
1111};
1112
1113#ifdef COBJMACROS
1114#ifndef WIDL_C_INLINE_WRAPPERS
1115/*** IUnknown methods ***/
1116#define IAMSetErrorLog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1117#define IAMSetErrorLog_AddRef(This) (This)->lpVtbl->AddRef(This)
1118#define IAMSetErrorLog_Release(This) (This)->lpVtbl->Release(This)
1119/*** IAMSetErrorLog methods ***/
1120#define IAMSetErrorLog_get_ErrorLog(This,log) (This)->lpVtbl->get_ErrorLog(This,log)
1121#define IAMSetErrorLog_put_ErrorLog(This,log) (This)->lpVtbl->put_ErrorLog(This,log)
1122#else
1123/*** IUnknown methods ***/
1124static inline HRESULT IAMSetErrorLog_QueryInterface(IAMSetErrorLog* This,REFIID riid,void **ppvObject) {
1125    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1126}
1127static inline ULONG IAMSetErrorLog_AddRef(IAMSetErrorLog* This) {
1128    return This->lpVtbl->AddRef(This);
1129}
1130static inline ULONG IAMSetErrorLog_Release(IAMSetErrorLog* This) {
1131    return This->lpVtbl->Release(This);
1132}
1133/*** IAMSetErrorLog methods ***/
1134static inline HRESULT IAMSetErrorLog_get_ErrorLog(IAMSetErrorLog* This,IAMErrorLog **log) {
1135    return This->lpVtbl->get_ErrorLog(This,log);
1136}
1137static inline HRESULT IAMSetErrorLog_put_ErrorLog(IAMSetErrorLog* This,IAMErrorLog *log) {
1138    return This->lpVtbl->put_ErrorLog(This,log);
1139}
1140#endif
1141#endif
1142
1143#endif
1144
1145
1146#endif  /* __IAMSetErrorLog_INTERFACE_DEFINED__ */
1147
1148#ifndef __IAMTimeline_FWD_DEFINED__
1149#define __IAMTimeline_FWD_DEFINED__
1150typedef interface IAMTimeline IAMTimeline;
1151#ifdef __cplusplus
1152interface IAMTimeline;
1153#endif /* __cplusplus */
1154#endif
1155
1156#ifndef __IAMTimelineGroup_FWD_DEFINED__
1157#define __IAMTimelineGroup_FWD_DEFINED__
1158typedef interface IAMTimelineGroup IAMTimelineGroup;
1159#ifdef __cplusplus
1160interface IAMTimelineGroup;
1161#endif /* __cplusplus */
1162#endif
1163
1164#ifndef __IAMTimelineObj_FWD_DEFINED__
1165#define __IAMTimelineObj_FWD_DEFINED__
1166typedef interface IAMTimelineObj IAMTimelineObj;
1167#ifdef __cplusplus
1168interface IAMTimelineObj;
1169#endif /* __cplusplus */
1170#endif
1171
1172#ifndef __IAMTimelineSrc_FWD_DEFINED__
1173#define __IAMTimelineSrc_FWD_DEFINED__
1174typedef interface IAMTimelineSrc IAMTimelineSrc;
1175#ifdef __cplusplus
1176interface IAMTimelineSrc;
1177#endif /* __cplusplus */
1178#endif
1179
1180typedef enum __WIDL_qedit_generated_name_0000002D {
1181    TIMELINE_MAJOR_TYPE_COMPOSITE = 1,
1182    TIMELINE_MAJOR_TYPE_TRACK = 2,
1183    TIMELINE_MAJOR_TYPE_SOURCE = 4,
1184    TIMELINE_MAJOR_TYPE_TRANSITION = 8,
1185    TIMELINE_MAJOR_TYPE_EFFECT = 16,
1186    TIMELINE_MAJOR_TYPE_GROUP = 128
1187} TIMELINE_MAJOR_TYPE;
1188/*****************************************************************************
1189 * IAMTimeline interface
1190 */
1191#ifndef __IAMTimeline_INTERFACE_DEFINED__
1192#define __IAMTimeline_INTERFACE_DEFINED__
1193
1194DEFINE_GUID(IID_IAMTimeline, 0x78530b74, 0x61f9, 0x11d2, 0x8c,0xad, 0x00,0xa0,0x24,0x58,0x09,0x02);
1195#if defined(__cplusplus) && !defined(CINTERFACE)
1196MIDL_INTERFACE("78530b74-61f9-11d2-8cad-00a024580902")
1197IAMTimeline : public IUnknown
1198{
1199    virtual HRESULT STDMETHODCALLTYPE CreateEmptyNode(
1200        IAMTimelineObj **obj,
1201        TIMELINE_MAJOR_TYPE type) = 0;
1202
1203    virtual HRESULT STDMETHODCALLTYPE AddGroup(
1204        IAMTimelineObj *group) = 0;
1205
1206    virtual HRESULT STDMETHODCALLTYPE RemGroupFromList(
1207        IAMTimelineObj *group) = 0;
1208
1209    virtual HRESULT STDMETHODCALLTYPE GetGroup(
1210        IAMTimelineObj **group,
1211        LONG index) = 0;
1212
1213    virtual HRESULT STDMETHODCALLTYPE GetGroupCount(
1214        LONG *count) = 0;
1215
1216    virtual HRESULT STDMETHODCALLTYPE ClearAllGroups(
1217        ) = 0;
1218
1219    virtual HRESULT STDMETHODCALLTYPE GetInsertMode(
1220        LONG *mode) = 0;
1221
1222    virtual HRESULT STDMETHODCALLTYPE SetInsertMode(
1223        LONG mode) = 0;
1224
1225    virtual HRESULT STDMETHODCALLTYPE EnableTransitions(
1226        WINBOOL enabled) = 0;
1227
1228    virtual HRESULT STDMETHODCALLTYPE TransitionsEnabled(
1229        WINBOOL *enabled) = 0;
1230
1231    virtual HRESULT STDMETHODCALLTYPE EnableEffects(
1232        WINBOOL enabled) = 0;
1233
1234    virtual HRESULT STDMETHODCALLTYPE EffectsEnabled(
1235        WINBOOL *enabled) = 0;
1236
1237    virtual HRESULT STDMETHODCALLTYPE SetInterestRange(
1238        REFERENCE_TIME start,
1239        REFERENCE_TIME stop) = 0;
1240
1241    virtual HRESULT STDMETHODCALLTYPE GetDuration(
1242        REFERENCE_TIME *duration) = 0;
1243
1244    virtual HRESULT STDMETHODCALLTYPE GetDuration2(
1245        double *duration) = 0;
1246
1247    virtual HRESULT STDMETHODCALLTYPE SetDefaultFPS(
1248        double fps) = 0;
1249
1250    virtual HRESULT STDMETHODCALLTYPE GetDefaultFPS(
1251        double *fps) = 0;
1252
1253    virtual HRESULT STDMETHODCALLTYPE IsDirty(
1254        WINBOOL *dirty) = 0;
1255
1256    virtual HRESULT STDMETHODCALLTYPE GetDirtyRange(
1257        REFERENCE_TIME *start,
1258        REFERENCE_TIME *stop) = 0;
1259
1260    virtual HRESULT STDMETHODCALLTYPE GetCountOfType(
1261        LONG group,
1262        LONG *value,
1263        LONG *value_with_comps,
1264        TIMELINE_MAJOR_TYPE type) = 0;
1265
1266    virtual HRESULT STDMETHODCALLTYPE ValidateSourceNames(
1267        LONG flags,
1268        IMediaLocator *override,
1269        LONG_PTR notify_event) = 0;
1270
1271    virtual HRESULT STDMETHODCALLTYPE SetDefaultTransition(
1272        GUID *guid) = 0;
1273
1274    virtual HRESULT STDMETHODCALLTYPE GetDefaultTransition(
1275        GUID *guid) = 0;
1276
1277    virtual HRESULT STDMETHODCALLTYPE SetDefaultEffect(
1278        GUID *guid) = 0;
1279
1280    virtual HRESULT STDMETHODCALLTYPE GetDefaultEffect(
1281        GUID *guid) = 0;
1282
1283    virtual HRESULT STDMETHODCALLTYPE SetDefaultTransitionB(
1284        BSTR guidb) = 0;
1285
1286    virtual HRESULT STDMETHODCALLTYPE GetDefaultTransitionB(
1287        BSTR *guidb) = 0;
1288
1289    virtual HRESULT STDMETHODCALLTYPE SetDefaultEffectB(
1290        BSTR guidb) = 0;
1291
1292    virtual HRESULT STDMETHODCALLTYPE GetDefaultEffectB(
1293        BSTR *guidb) = 0;
1294
1295};
1296#ifdef __CRT_UUID_DECL
1297__CRT_UUID_DECL(IAMTimeline, 0x78530b74, 0x61f9, 0x11d2, 0x8c,0xad, 0x00,0xa0,0x24,0x58,0x09,0x02)
1298#endif
1299#else
1300typedef struct IAMTimelineVtbl {
1301    BEGIN_INTERFACE
1302
1303    /*** IUnknown methods ***/
1304    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1305        IAMTimeline *This,
1306        REFIID riid,
1307        void **ppvObject);
1308
1309    ULONG (STDMETHODCALLTYPE *AddRef)(
1310        IAMTimeline *This);
1311
1312    ULONG (STDMETHODCALLTYPE *Release)(
1313        IAMTimeline *This);
1314
1315    /*** IAMTimeline methods ***/
1316    HRESULT (STDMETHODCALLTYPE *CreateEmptyNode)(
1317        IAMTimeline *This,
1318        IAMTimelineObj **obj,
1319        TIMELINE_MAJOR_TYPE type);
1320
1321    HRESULT (STDMETHODCALLTYPE *AddGroup)(
1322        IAMTimeline *This,
1323        IAMTimelineObj *group);
1324
1325    HRESULT (STDMETHODCALLTYPE *RemGroupFromList)(
1326        IAMTimeline *This,
1327        IAMTimelineObj *group);
1328
1329    HRESULT (STDMETHODCALLTYPE *GetGroup)(
1330        IAMTimeline *This,
1331        IAMTimelineObj **group,
1332        LONG index);
1333
1334    HRESULT (STDMETHODCALLTYPE *GetGroupCount)(
1335        IAMTimeline *This,
1336        LONG *count);
1337
1338    HRESULT (STDMETHODCALLTYPE *ClearAllGroups)(
1339        IAMTimeline *This);
1340
1341    HRESULT (STDMETHODCALLTYPE *GetInsertMode)(
1342        IAMTimeline *This,
1343        LONG *mode);
1344
1345    HRESULT (STDMETHODCALLTYPE *SetInsertMode)(
1346        IAMTimeline *This,
1347        LONG mode);
1348
1349    HRESULT (STDMETHODCALLTYPE *EnableTransitions)(
1350        IAMTimeline *This,
1351        WINBOOL enabled);
1352
1353    HRESULT (STDMETHODCALLTYPE *TransitionsEnabled)(
1354        IAMTimeline *This,
1355        WINBOOL *enabled);
1356
1357    HRESULT (STDMETHODCALLTYPE *EnableEffects)(
1358        IAMTimeline *This,
1359        WINBOOL enabled);
1360
1361    HRESULT (STDMETHODCALLTYPE *EffectsEnabled)(
1362        IAMTimeline *This,
1363        WINBOOL *enabled);
1364
1365    HRESULT (STDMETHODCALLTYPE *SetInterestRange)(
1366        IAMTimeline *This,
1367        REFERENCE_TIME start,
1368        REFERENCE_TIME stop);
1369
1370    HRESULT (STDMETHODCALLTYPE *GetDuration)(
1371        IAMTimeline *This,
1372        REFERENCE_TIME *duration);
1373
1374    HRESULT (STDMETHODCALLTYPE *GetDuration2)(
1375        IAMTimeline *This,
1376        double *duration);
1377
1378    HRESULT (STDMETHODCALLTYPE *SetDefaultFPS)(
1379        IAMTimeline *This,
1380        double fps);
1381
1382    HRESULT (STDMETHODCALLTYPE *GetDefaultFPS)(
1383        IAMTimeline *This,
1384        double *fps);
1385
1386    HRESULT (STDMETHODCALLTYPE *IsDirty)(
1387        IAMTimeline *This,
1388        WINBOOL *dirty);
1389
1390    HRESULT (STDMETHODCALLTYPE *GetDirtyRange)(
1391        IAMTimeline *This,
1392        REFERENCE_TIME *start,
1393        REFERENCE_TIME *stop);
1394
1395    HRESULT (STDMETHODCALLTYPE *GetCountOfType)(
1396        IAMTimeline *This,
1397        LONG group,
1398        LONG *value,
1399        LONG *value_with_comps,
1400        TIMELINE_MAJOR_TYPE type);
1401
1402    HRESULT (STDMETHODCALLTYPE *ValidateSourceNames)(
1403        IAMTimeline *This,
1404        LONG flags,
1405        IMediaLocator *override,
1406        LONG_PTR notify_event);
1407
1408    HRESULT (STDMETHODCALLTYPE *SetDefaultTransition)(
1409        IAMTimeline *This,
1410        GUID *guid);
1411
1412    HRESULT (STDMETHODCALLTYPE *GetDefaultTransition)(
1413        IAMTimeline *This,
1414        GUID *guid);
1415
1416    HRESULT (STDMETHODCALLTYPE *SetDefaultEffect)(
1417        IAMTimeline *This,
1418        GUID *guid);
1419
1420    HRESULT (STDMETHODCALLTYPE *GetDefaultEffect)(
1421        IAMTimeline *This,
1422        GUID *guid);
1423
1424    HRESULT (STDMETHODCALLTYPE *SetDefaultTransitionB)(
1425        IAMTimeline *This,
1426        BSTR guidb);
1427
1428    HRESULT (STDMETHODCALLTYPE *GetDefaultTransitionB)(
1429        IAMTimeline *This,
1430        BSTR *guidb);
1431
1432    HRESULT (STDMETHODCALLTYPE *SetDefaultEffectB)(
1433        IAMTimeline *This,
1434        BSTR guidb);
1435
1436    HRESULT (STDMETHODCALLTYPE *GetDefaultEffectB)(
1437        IAMTimeline *This,
1438        BSTR *guidb);
1439
1440    END_INTERFACE
1441} IAMTimelineVtbl;
1442
1443interface IAMTimeline {
1444    CONST_VTBL IAMTimelineVtbl* lpVtbl;
1445};
1446
1447#ifdef COBJMACROS
1448#ifndef WIDL_C_INLINE_WRAPPERS
1449/*** IUnknown methods ***/
1450#define IAMTimeline_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1451#define IAMTimeline_AddRef(This) (This)->lpVtbl->AddRef(This)
1452#define IAMTimeline_Release(This) (This)->lpVtbl->Release(This)
1453/*** IAMTimeline methods ***/
1454#define IAMTimeline_CreateEmptyNode(This,obj,type) (This)->lpVtbl->CreateEmptyNode(This,obj,type)
1455#define IAMTimeline_AddGroup(This,group) (This)->lpVtbl->AddGroup(This,group)
1456#define IAMTimeline_RemGroupFromList(This,group) (This)->lpVtbl->RemGroupFromList(This,group)
1457#define IAMTimeline_GetGroup(This,group,index) (This)->lpVtbl->GetGroup(This,group,index)
1458#define IAMTimeline_GetGroupCount(This,count) (This)->lpVtbl->GetGroupCount(This,count)
1459#define IAMTimeline_ClearAllGroups(This) (This)->lpVtbl->ClearAllGroups(This)
1460#define IAMTimeline_GetInsertMode(This,mode) (This)->lpVtbl->GetInsertMode(This,mode)
1461#define IAMTimeline_SetInsertMode(This,mode) (This)->lpVtbl->SetInsertMode(This,mode)
1462#define IAMTimeline_EnableTransitions(This,enabled) (This)->lpVtbl->EnableTransitions(This,enabled)
1463#define IAMTimeline_TransitionsEnabled(This,enabled) (This)->lpVtbl->TransitionsEnabled(This,enabled)
1464#define IAMTimeline_EnableEffects(This,enabled) (This)->lpVtbl->EnableEffects(This,enabled)
1465#define IAMTimeline_EffectsEnabled(This,enabled) (This)->lpVtbl->EffectsEnabled(This,enabled)
1466#define IAMTimeline_SetInterestRange(This,start,stop) (This)->lpVtbl->SetInterestRange(This,start,stop)
1467#define IAMTimeline_GetDuration(This,duration) (This)->lpVtbl->GetDuration(This,duration)
1468#define IAMTimeline_GetDuration2(This,duration) (This)->lpVtbl->GetDuration2(This,duration)
1469#define IAMTimeline_SetDefaultFPS(This,fps) (This)->lpVtbl->SetDefaultFPS(This,fps)
1470#define IAMTimeline_GetDefaultFPS(This,fps) (This)->lpVtbl->GetDefaultFPS(This,fps)
1471#define IAMTimeline_IsDirty(This,dirty) (This)->lpVtbl->IsDirty(This,dirty)
1472#define IAMTimeline_GetDirtyRange(This,start,stop) (This)->lpVtbl->GetDirtyRange(This,start,stop)
1473#define IAMTimeline_GetCountOfType(This,group,value,value_with_comps,type) (This)->lpVtbl->GetCountOfType(This,group,value,value_with_comps,type)
1474#define IAMTimeline_ValidateSourceNames(This,flags,override,notify_event) (This)->lpVtbl->ValidateSourceNames(This,flags,override,notify_event)
1475#define IAMTimeline_SetDefaultTransition(This,guid) (This)->lpVtbl->SetDefaultTransition(This,guid)
1476#define IAMTimeline_GetDefaultTransition(This,guid) (This)->lpVtbl->GetDefaultTransition(This,guid)
1477#define IAMTimeline_SetDefaultEffect(This,guid) (This)->lpVtbl->SetDefaultEffect(This,guid)
1478#define IAMTimeline_GetDefaultEffect(This,guid) (This)->lpVtbl->GetDefaultEffect(This,guid)
1479#define IAMTimeline_SetDefaultTransitionB(This,guidb) (This)->lpVtbl->SetDefaultTransitionB(This,guidb)
1480#define IAMTimeline_GetDefaultTransitionB(This,guidb) (This)->lpVtbl->GetDefaultTransitionB(This,guidb)
1481#define IAMTimeline_SetDefaultEffectB(This,guidb) (This)->lpVtbl->SetDefaultEffectB(This,guidb)
1482#define IAMTimeline_GetDefaultEffectB(This,guidb) (This)->lpVtbl->GetDefaultEffectB(This,guidb)
1483#else
1484/*** IUnknown methods ***/
1485static inline HRESULT IAMTimeline_QueryInterface(IAMTimeline* This,REFIID riid,void **ppvObject) {
1486    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1487}
1488static inline ULONG IAMTimeline_AddRef(IAMTimeline* This) {
1489    return This->lpVtbl->AddRef(This);
1490}
1491static inline ULONG IAMTimeline_Release(IAMTimeline* This) {
1492    return This->lpVtbl->Release(This);
1493}
1494/*** IAMTimeline methods ***/
1495static inline HRESULT IAMTimeline_CreateEmptyNode(IAMTimeline* This,IAMTimelineObj **obj,TIMELINE_MAJOR_TYPE type) {
1496    return This->lpVtbl->CreateEmptyNode(This,obj,type);
1497}
1498static inline HRESULT IAMTimeline_AddGroup(IAMTimeline* This,IAMTimelineObj *group) {
1499    return This->lpVtbl->AddGroup(This,group);
1500}
1501static inline HRESULT IAMTimeline_RemGroupFromList(IAMTimeline* This,IAMTimelineObj *group) {
1502    return This->lpVtbl->RemGroupFromList(This,group);
1503}
1504static inline HRESULT IAMTimeline_GetGroup(IAMTimeline* This,IAMTimelineObj **group,LONG index) {
1505    return This->lpVtbl->GetGroup(This,group,index);
1506}
1507static inline HRESULT IAMTimeline_GetGroupCount(IAMTimeline* This,LONG *count) {
1508    return This->lpVtbl->GetGroupCount(This,count);
1509}
1510static inline HRESULT IAMTimeline_ClearAllGroups(IAMTimeline* This) {
1511    return This->lpVtbl->ClearAllGroups(This);
1512}
1513static inline HRESULT IAMTimeline_GetInsertMode(IAMTimeline* This,LONG *mode) {
1514    return This->lpVtbl->GetInsertMode(This,mode);
1515}
1516static inline HRESULT IAMTimeline_SetInsertMode(IAMTimeline* This,LONG mode) {
1517    return This->lpVtbl->SetInsertMode(This,mode);
1518}
1519static inline HRESULT IAMTimeline_EnableTransitions(IAMTimeline* This,WINBOOL enabled) {
1520    return This->lpVtbl->EnableTransitions(This,enabled);
1521}
1522static inline HRESULT IAMTimeline_TransitionsEnabled(IAMTimeline* This,WINBOOL *enabled) {
1523    return This->lpVtbl->TransitionsEnabled(This,enabled);
1524}
1525static inline HRESULT IAMTimeline_EnableEffects(IAMTimeline* This,WINBOOL enabled) {
1526    return This->lpVtbl->EnableEffects(This,enabled);
1527}
1528static inline HRESULT IAMTimeline_EffectsEnabled(IAMTimeline* This,WINBOOL *enabled) {
1529    return This->lpVtbl->EffectsEnabled(This,enabled);
1530}
1531static inline HRESULT IAMTimeline_SetInterestRange(IAMTimeline* This,REFERENCE_TIME start,REFERENCE_TIME stop) {
1532    return This->lpVtbl->SetInterestRange(This,start,stop);
1533}
1534static inline HRESULT IAMTimeline_GetDuration(IAMTimeline* This,REFERENCE_TIME *duration) {
1535    return This->lpVtbl->GetDuration(This,duration);
1536}
1537static inline HRESULT IAMTimeline_GetDuration2(IAMTimeline* This,double *duration) {
1538    return This->lpVtbl->GetDuration2(This,duration);
1539}
1540static inline HRESULT IAMTimeline_SetDefaultFPS(IAMTimeline* This,double fps) {
1541    return This->lpVtbl->SetDefaultFPS(This,fps);
1542}
1543static inline HRESULT IAMTimeline_GetDefaultFPS(IAMTimeline* This,double *fps) {
1544    return This->lpVtbl->GetDefaultFPS(This,fps);
1545}
1546static inline HRESULT IAMTimeline_IsDirty(IAMTimeline* This,WINBOOL *dirty) {
1547    return This->lpVtbl->IsDirty(This,dirty);
1548}
1549static inline HRESULT IAMTimeline_GetDirtyRange(IAMTimeline* This,REFERENCE_TIME *start,REFERENCE_TIME *stop) {
1550    return This->lpVtbl->GetDirtyRange(This,start,stop);
1551}
1552static inline HRESULT IAMTimeline_GetCountOfType(IAMTimeline* This,LONG group,LONG *value,LONG *value_with_comps,TIMELINE_MAJOR_TYPE type) {
1553    return This->lpVtbl->GetCountOfType(This,group,value,value_with_comps,type);
1554}
1555static inline HRESULT IAMTimeline_ValidateSourceNames(IAMTimeline* This,LONG flags,IMediaLocator *override,LONG_PTR notify_event) {
1556    return This->lpVtbl->ValidateSourceNames(This,flags,override,notify_event);
1557}
1558static inline HRESULT IAMTimeline_SetDefaultTransition(IAMTimeline* This,GUID *guid) {
1559    return This->lpVtbl->SetDefaultTransition(This,guid);
1560}
1561static inline HRESULT IAMTimeline_GetDefaultTransition(IAMTimeline* This,GUID *guid) {
1562    return This->lpVtbl->GetDefaultTransition(This,guid);
1563}
1564static inline HRESULT IAMTimeline_SetDefaultEffect(IAMTimeline* This,GUID *guid) {
1565    return This->lpVtbl->SetDefaultEffect(This,guid);
1566}
1567static inline HRESULT IAMTimeline_GetDefaultEffect(IAMTimeline* This,GUID *guid) {
1568    return This->lpVtbl->GetDefaultEffect(This,guid);
1569}
1570static inline HRESULT IAMTimeline_SetDefaultTransitionB(IAMTimeline* This,BSTR guidb) {
1571    return This->lpVtbl->SetDefaultTransitionB(This,guidb);
1572}
1573static inline HRESULT IAMTimeline_GetDefaultTransitionB(IAMTimeline* This,BSTR *guidb) {
1574    return This->lpVtbl->GetDefaultTransitionB(This,guidb);
1575}
1576static inline HRESULT IAMTimeline_SetDefaultEffectB(IAMTimeline* This,BSTR guidb) {
1577    return This->lpVtbl->SetDefaultEffectB(This,guidb);
1578}
1579static inline HRESULT IAMTimeline_GetDefaultEffectB(IAMTimeline* This,BSTR *guidb) {
1580    return This->lpVtbl->GetDefaultEffectB(This,guidb);
1581}
1582#endif
1583#endif
1584
1585#endif
1586
1587
1588#endif  /* __IAMTimeline_INTERFACE_DEFINED__ */
1589
1590/*****************************************************************************
1591 * AMTimeline coclass
1592 */
1593
1594DEFINE_GUID(CLSID_AMTimeline, 0x78530b75, 0x61f9, 0x11d2, 0x8c,0xad, 0x00,0xa0,0x24,0x58,0x09,0x02);
1595
1596#ifdef __cplusplus
1597class DECLSPEC_UUID("78530b75-61f9-11d2-8cad-00a024580902") AMTimeline;
1598#ifdef __CRT_UUID_DECL
1599__CRT_UUID_DECL(AMTimeline, 0x78530b75, 0x61f9, 0x11d2, 0x8c,0xad, 0x00,0xa0,0x24,0x58,0x09,0x02)
1600#endif
1601#endif
1602
1603/*****************************************************************************
1604 * IAMTimelineGroup interface
1605 */
1606#ifndef __IAMTimelineGroup_INTERFACE_DEFINED__
1607#define __IAMTimelineGroup_INTERFACE_DEFINED__
1608
1609DEFINE_GUID(IID_IAMTimelineGroup, 0x9eed4f00, 0xb8a6, 0x11d2, 0x80,0x23, 0x00,0xc0,0xdf,0x10,0xd4,0x34);
1610#if defined(__cplusplus) && !defined(CINTERFACE)
1611MIDL_INTERFACE("9eed4f00-b8a6-11d2-8023-00c0df10d434")
1612IAMTimelineGroup : public IUnknown
1613{
1614    virtual HRESULT STDMETHODCALLTYPE SetTimeline(
1615        IAMTimeline *timeline) = 0;
1616
1617    virtual HRESULT STDMETHODCALLTYPE GetTimeline(
1618        IAMTimeline **timeline) = 0;
1619
1620    virtual HRESULT STDMETHODCALLTYPE GetPriority(
1621        LONG *priority) = 0;
1622
1623    virtual HRESULT STDMETHODCALLTYPE GetMediaType(
1624        AM_MEDIA_TYPE *a) = 0;
1625
1626    virtual HRESULT STDMETHODCALLTYPE SetMediaType(
1627        AM_MEDIA_TYPE *a) = 0;
1628
1629    virtual HRESULT STDMETHODCALLTYPE SetOutputFPS(
1630        double fps) = 0;
1631
1632    virtual HRESULT STDMETHODCALLTYPE GetOutputFPS(
1633        double *fps) = 0;
1634
1635    virtual HRESULT STDMETHODCALLTYPE SetGroupName(
1636        BSTR name) = 0;
1637
1638    virtual HRESULT STDMETHODCALLTYPE GetGroupName(
1639        BSTR *name) = 0;
1640
1641    virtual HRESULT STDMETHODCALLTYPE SetPreviewMode(
1642        WINBOOL preview) = 0;
1643
1644    virtual HRESULT STDMETHODCALLTYPE GetPreviewMode(
1645        WINBOOL *preview) = 0;
1646
1647    virtual HRESULT STDMETHODCALLTYPE SetMediaTypeForVB(
1648        LONG type) = 0;
1649
1650    virtual HRESULT STDMETHODCALLTYPE GetOutputBuffering(
1651        int *buffer) = 0;
1652
1653    virtual HRESULT STDMETHODCALLTYPE SetOutputBuffering(
1654        int buffer) = 0;
1655
1656    virtual HRESULT STDMETHODCALLTYPE SetSmartRecompressFormat(
1657        LONG *format) = 0;
1658
1659    virtual HRESULT STDMETHODCALLTYPE GetSmartRecompressFormat(
1660        LONG **format) = 0;
1661
1662    virtual HRESULT STDMETHODCALLTYPE IsSmartRecompressFormatSet(
1663        WINBOOL *set) = 0;
1664
1665    virtual HRESULT STDMETHODCALLTYPE IsRecompressFormatDirty(
1666        WINBOOL *dirty) = 0;
1667
1668    virtual HRESULT STDMETHODCALLTYPE ClearRecompressFormatDirty(
1669        ) = 0;
1670
1671    virtual HRESULT STDMETHODCALLTYPE SetRecompFormatFromSource(
1672        IAMTimelineSrc *source) = 0;
1673
1674};
1675#ifdef __CRT_UUID_DECL
1676__CRT_UUID_DECL(IAMTimelineGroup, 0x9eed4f00, 0xb8a6, 0x11d2, 0x80,0x23, 0x00,0xc0,0xdf,0x10,0xd4,0x34)
1677#endif
1678#else
1679typedef struct IAMTimelineGroupVtbl {
1680    BEGIN_INTERFACE
1681
1682    /*** IUnknown methods ***/
1683    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1684        IAMTimelineGroup *This,
1685        REFIID riid,
1686        void **ppvObject);
1687
1688    ULONG (STDMETHODCALLTYPE *AddRef)(
1689        IAMTimelineGroup *This);
1690
1691    ULONG (STDMETHODCALLTYPE *Release)(
1692        IAMTimelineGroup *This);
1693
1694    /*** IAMTimelineGroup methods ***/
1695    HRESULT (STDMETHODCALLTYPE *SetTimeline)(
1696        IAMTimelineGroup *This,
1697        IAMTimeline *timeline);
1698
1699    HRESULT (STDMETHODCALLTYPE *GetTimeline)(
1700        IAMTimelineGroup *This,
1701        IAMTimeline **timeline);
1702
1703    HRESULT (STDMETHODCALLTYPE *GetPriority)(
1704        IAMTimelineGroup *This,
1705        LONG *priority);
1706
1707    HRESULT (STDMETHODCALLTYPE *GetMediaType)(
1708        IAMTimelineGroup *This,
1709        AM_MEDIA_TYPE *a);
1710
1711    HRESULT (STDMETHODCALLTYPE *SetMediaType)(
1712        IAMTimelineGroup *This,
1713        AM_MEDIA_TYPE *a);
1714
1715    HRESULT (STDMETHODCALLTYPE *SetOutputFPS)(
1716        IAMTimelineGroup *This,
1717        double fps);
1718
1719    HRESULT (STDMETHODCALLTYPE *GetOutputFPS)(
1720        IAMTimelineGroup *This,
1721        double *fps);
1722
1723    HRESULT (STDMETHODCALLTYPE *SetGroupName)(
1724        IAMTimelineGroup *This,
1725        BSTR name);
1726
1727    HRESULT (STDMETHODCALLTYPE *GetGroupName)(
1728        IAMTimelineGroup *This,
1729        BSTR *name);
1730
1731    HRESULT (STDMETHODCALLTYPE *SetPreviewMode)(
1732        IAMTimelineGroup *This,
1733        WINBOOL preview);
1734
1735    HRESULT (STDMETHODCALLTYPE *GetPreviewMode)(
1736        IAMTimelineGroup *This,
1737        WINBOOL *preview);
1738
1739    HRESULT (STDMETHODCALLTYPE *SetMediaTypeForVB)(
1740        IAMTimelineGroup *This,
1741        LONG type);
1742
1743    HRESULT (STDMETHODCALLTYPE *GetOutputBuffering)(
1744        IAMTimelineGroup *This,
1745        int *buffer);
1746
1747    HRESULT (STDMETHODCALLTYPE *SetOutputBuffering)(
1748        IAMTimelineGroup *This,
1749        int buffer);
1750
1751    HRESULT (STDMETHODCALLTYPE *SetSmartRecompressFormat)(
1752        IAMTimelineGroup *This,
1753        LONG *format);
1754
1755    HRESULT (STDMETHODCALLTYPE *GetSmartRecompressFormat)(
1756        IAMTimelineGroup *This,
1757        LONG **format);
1758
1759    HRESULT (STDMETHODCALLTYPE *IsSmartRecompressFormatSet)(
1760        IAMTimelineGroup *This,
1761        WINBOOL *set);
1762
1763    HRESULT (STDMETHODCALLTYPE *IsRecompressFormatDirty)(
1764        IAMTimelineGroup *This,
1765        WINBOOL *dirty);
1766
1767    HRESULT (STDMETHODCALLTYPE *ClearRecompressFormatDirty)(
1768        IAMTimelineGroup *This);
1769
1770    HRESULT (STDMETHODCALLTYPE *SetRecompFormatFromSource)(
1771        IAMTimelineGroup *This,
1772        IAMTimelineSrc *source);
1773
1774    END_INTERFACE
1775} IAMTimelineGroupVtbl;
1776
1777interface IAMTimelineGroup {
1778    CONST_VTBL IAMTimelineGroupVtbl* lpVtbl;
1779};
1780
1781#ifdef COBJMACROS
1782#ifndef WIDL_C_INLINE_WRAPPERS
1783/*** IUnknown methods ***/
1784#define IAMTimelineGroup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1785#define IAMTimelineGroup_AddRef(This) (This)->lpVtbl->AddRef(This)
1786#define IAMTimelineGroup_Release(This) (This)->lpVtbl->Release(This)
1787/*** IAMTimelineGroup methods ***/
1788#define IAMTimelineGroup_SetTimeline(This,timeline) (This)->lpVtbl->SetTimeline(This,timeline)
1789#define IAMTimelineGroup_GetTimeline(This,timeline) (This)->lpVtbl->GetTimeline(This,timeline)
1790#define IAMTimelineGroup_GetPriority(This,priority) (This)->lpVtbl->GetPriority(This,priority)
1791#define IAMTimelineGroup_GetMediaType(This,a) (This)->lpVtbl->GetMediaType(This,a)
1792#define IAMTimelineGroup_SetMediaType(This,a) (This)->lpVtbl->SetMediaType(This,a)
1793#define IAMTimelineGroup_SetOutputFPS(This,fps) (This)->lpVtbl->SetOutputFPS(This,fps)
1794#define IAMTimelineGroup_GetOutputFPS(This,fps) (This)->lpVtbl->GetOutputFPS(This,fps)
1795#define IAMTimelineGroup_SetGroupName(This,name) (This)->lpVtbl->SetGroupName(This,name)
1796#define IAMTimelineGroup_GetGroupName(This,name) (This)->lpVtbl->GetGroupName(This,name)
1797#define IAMTimelineGroup_SetPreviewMode(This,preview) (This)->lpVtbl->SetPreviewMode(This,preview)
1798#define IAMTimelineGroup_GetPreviewMode(This,preview) (This)->lpVtbl->GetPreviewMode(This,preview)
1799#define IAMTimelineGroup_SetMediaTypeForVB(This,type) (This)->lpVtbl->SetMediaTypeForVB(This,type)
1800#define IAMTimelineGroup_GetOutputBuffering(This,buffer) (This)->lpVtbl->GetOutputBuffering(This,buffer)
1801#define IAMTimelineGroup_SetOutputBuffering(This,buffer) (This)->lpVtbl->SetOutputBuffering(This,buffer)
1802#define IAMTimelineGroup_SetSmartRecompressFormat(This,format) (This)->lpVtbl->SetSmartRecompressFormat(This,format)
1803#define IAMTimelineGroup_GetSmartRecompressFormat(This,format) (This)->lpVtbl->GetSmartRecompressFormat(This,format)
1804#define IAMTimelineGroup_IsSmartRecompressFormatSet(This,set) (This)->lpVtbl->IsSmartRecompressFormatSet(This,set)
1805#define IAMTimelineGroup_IsRecompressFormatDirty(This,dirty) (This)->lpVtbl->IsRecompressFormatDirty(This,dirty)
1806#define IAMTimelineGroup_ClearRecompressFormatDirty(This) (This)->lpVtbl->ClearRecompressFormatDirty(This)
1807#define IAMTimelineGroup_SetRecompFormatFromSource(This,source) (This)->lpVtbl->SetRecompFormatFromSource(This,source)
1808#else
1809/*** IUnknown methods ***/
1810static inline HRESULT IAMTimelineGroup_QueryInterface(IAMTimelineGroup* This,REFIID riid,void **ppvObject) {
1811    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1812}
1813static inline ULONG IAMTimelineGroup_AddRef(IAMTimelineGroup* This) {
1814    return This->lpVtbl->AddRef(This);
1815}
1816static inline ULONG IAMTimelineGroup_Release(IAMTimelineGroup* This) {
1817    return This->lpVtbl->Release(This);
1818}
1819/*** IAMTimelineGroup methods ***/
1820static inline HRESULT IAMTimelineGroup_SetTimeline(IAMTimelineGroup* This,IAMTimeline *timeline) {
1821    return This->lpVtbl->SetTimeline(This,timeline);
1822}
1823static inline HRESULT IAMTimelineGroup_GetTimeline(IAMTimelineGroup* This,IAMTimeline **timeline) {
1824    return This->lpVtbl->GetTimeline(This,timeline);
1825}
1826static inline HRESULT IAMTimelineGroup_GetPriority(IAMTimelineGroup* This,LONG *priority) {
1827    return This->lpVtbl->GetPriority(This,priority);
1828}
1829static inline HRESULT IAMTimelineGroup_GetMediaType(IAMTimelineGroup* This,AM_MEDIA_TYPE *a) {
1830    return This->lpVtbl->GetMediaType(This,a);
1831}
1832static inline HRESULT IAMTimelineGroup_SetMediaType(IAMTimelineGroup* This,AM_MEDIA_TYPE *a) {
1833    return This->lpVtbl->SetMediaType(This,a);
1834}
1835static inline HRESULT IAMTimelineGroup_SetOutputFPS(IAMTimelineGroup* This,double fps) {
1836    return This->lpVtbl->SetOutputFPS(This,fps);
1837}
1838static inline HRESULT IAMTimelineGroup_GetOutputFPS(IAMTimelineGroup* This,double *fps) {
1839    return This->lpVtbl->GetOutputFPS(This,fps);
1840}
1841static inline HRESULT IAMTimelineGroup_SetGroupName(IAMTimelineGroup* This,BSTR name) {
1842    return This->lpVtbl->SetGroupName(This,name);
1843}
1844static inline HRESULT IAMTimelineGroup_GetGroupName(IAMTimelineGroup* This,BSTR *name) {
1845    return This->lpVtbl->GetGroupName(This,name);
1846}
1847static inline HRESULT IAMTimelineGroup_SetPreviewMode(IAMTimelineGroup* This,WINBOOL preview) {
1848    return This->lpVtbl->SetPreviewMode(This,preview);
1849}
1850static inline HRESULT IAMTimelineGroup_GetPreviewMode(IAMTimelineGroup* This,WINBOOL *preview) {
1851    return This->lpVtbl->GetPreviewMode(This,preview);
1852}
1853static inline HRESULT IAMTimelineGroup_SetMediaTypeForVB(IAMTimelineGroup* This,LONG type) {
1854    return This->lpVtbl->SetMediaTypeForVB(This,type);
1855}
1856static inline HRESULT IAMTimelineGroup_GetOutputBuffering(IAMTimelineGroup* This,int *buffer) {
1857    return This->lpVtbl->GetOutputBuffering(This,buffer);
1858}
1859static inline HRESULT IAMTimelineGroup_SetOutputBuffering(IAMTimelineGroup* This,int buffer) {
1860    return This->lpVtbl->SetOutputBuffering(This,buffer);
1861}
1862static inline HRESULT IAMTimelineGroup_SetSmartRecompressFormat(IAMTimelineGroup* This,LONG *format) {
1863    return This->lpVtbl->SetSmartRecompressFormat(This,format);
1864}
1865static inline HRESULT IAMTimelineGroup_GetSmartRecompressFormat(IAMTimelineGroup* This,LONG **format) {
1866    return This->lpVtbl->GetSmartRecompressFormat(This,format);
1867}
1868static inline HRESULT IAMTimelineGroup_IsSmartRecompressFormatSet(IAMTimelineGroup* This,WINBOOL *set) {
1869    return This->lpVtbl->IsSmartRecompressFormatSet(This,set);
1870}
1871static inline HRESULT IAMTimelineGroup_IsRecompressFormatDirty(IAMTimelineGroup* This,WINBOOL *dirty) {
1872    return This->lpVtbl->IsRecompressFormatDirty(This,dirty);
1873}
1874static inline HRESULT IAMTimelineGroup_ClearRecompressFormatDirty(IAMTimelineGroup* This) {
1875    return This->lpVtbl->ClearRecompressFormatDirty(This);
1876}
1877static inline HRESULT IAMTimelineGroup_SetRecompFormatFromSource(IAMTimelineGroup* This,IAMTimelineSrc *source) {
1878    return This->lpVtbl->SetRecompFormatFromSource(This,source);
1879}
1880#endif
1881#endif
1882
1883#endif
1884
1885
1886#endif  /* __IAMTimelineGroup_INTERFACE_DEFINED__ */
1887
1888/*****************************************************************************
1889 * IAMTimelineObj interface
1890 */
1891#ifndef __IAMTimelineObj_INTERFACE_DEFINED__
1892#define __IAMTimelineObj_INTERFACE_DEFINED__
1893
1894DEFINE_GUID(IID_IAMTimelineObj, 0x78530b77, 0x61f9, 0x11d2, 0x8c,0xad, 0x00,0xa0,0x24,0x58,0x09,0x02);
1895#if defined(__cplusplus) && !defined(CINTERFACE)
1896MIDL_INTERFACE("78530b77-61f9-11d2-8cad-00a024580902")
1897IAMTimelineObj : public IUnknown
1898{
1899    virtual HRESULT STDMETHODCALLTYPE GetStartStop(
1900        REFERENCE_TIME *start,
1901        REFERENCE_TIME *stop) = 0;
1902
1903    virtual HRESULT STDMETHODCALLTYPE GetStartStop2(
1904        REFTIME *start,
1905        REFTIME *stop) = 0;
1906
1907    virtual HRESULT STDMETHODCALLTYPE FixTimes(
1908        REFERENCE_TIME *start,
1909        REFERENCE_TIME *stop) = 0;
1910
1911    virtual HRESULT STDMETHODCALLTYPE FixTimes2(
1912        REFTIME *start,
1913        REFTIME *stop) = 0;
1914
1915    virtual HRESULT STDMETHODCALLTYPE SetStartStop(
1916        REFERENCE_TIME start,
1917        REFERENCE_TIME stop) = 0;
1918
1919    virtual HRESULT STDMETHODCALLTYPE SetStartStop2(
1920        REFTIME start,
1921        REFTIME stop) = 0;
1922
1923    virtual HRESULT STDMETHODCALLTYPE GetPropertySetter(
1924        IPropertySetter **setter) = 0;
1925
1926    virtual HRESULT STDMETHODCALLTYPE SetPropertySetter(
1927        IPropertySetter *setter) = 0;
1928
1929    virtual HRESULT STDMETHODCALLTYPE GetSubObject(
1930        IUnknown **obj) = 0;
1931
1932    virtual HRESULT STDMETHODCALLTYPE SetSubObject(
1933        IUnknown *obj) = 0;
1934
1935    virtual HRESULT STDMETHODCALLTYPE SetSubObjectGUID(
1936        GUID guid) = 0;
1937
1938    virtual HRESULT STDMETHODCALLTYPE SetSubObjectGUIDB(
1939        BSTR guidb) = 0;
1940
1941    virtual HRESULT STDMETHODCALLTYPE GetSubObjectGUID(
1942        GUID *guid) = 0;
1943
1944    virtual HRESULT STDMETHODCALLTYPE GetSubObjectGUIDB(
1945        BSTR *guidb) = 0;
1946
1947    virtual HRESULT STDMETHODCALLTYPE GetSubObjectLoaded(
1948        WINBOOL *loaded) = 0;
1949
1950    virtual HRESULT STDMETHODCALLTYPE GetTimelineType(
1951        TIMELINE_MAJOR_TYPE *type) = 0;
1952
1953    virtual HRESULT STDMETHODCALLTYPE SetTimelineType(
1954        TIMELINE_MAJOR_TYPE type) = 0;
1955
1956    virtual HRESULT STDMETHODCALLTYPE GetUserID(
1957        LONG *id) = 0;
1958
1959    virtual HRESULT STDMETHODCALLTYPE SetUserID(
1960        LONG id) = 0;
1961
1962    virtual HRESULT STDMETHODCALLTYPE GetGenID(
1963        LONG *id) = 0;
1964
1965    virtual HRESULT STDMETHODCALLTYPE GetUserName(
1966        BSTR *name) = 0;
1967
1968    virtual HRESULT STDMETHODCALLTYPE SetUserName(
1969        BSTR name) = 0;
1970
1971    virtual HRESULT STDMETHODCALLTYPE GetUserData(
1972        BYTE *data,
1973        LONG *size) = 0;
1974
1975    virtual HRESULT STDMETHODCALLTYPE SetUserData(
1976        BYTE *data,
1977        LONG size) = 0;
1978
1979    virtual HRESULT STDMETHODCALLTYPE GetMuted(
1980        WINBOOL *muted) = 0;
1981
1982    virtual HRESULT STDMETHODCALLTYPE SetMuted(
1983        WINBOOL muted) = 0;
1984
1985    virtual HRESULT STDMETHODCALLTYPE GetLocked(
1986        WINBOOL *locked) = 0;
1987
1988    virtual HRESULT STDMETHODCALLTYPE SetLocked(
1989        WINBOOL locked) = 0;
1990
1991    virtual HRESULT STDMETHODCALLTYPE GetDirtyRange(
1992        REFERENCE_TIME *start,
1993        REFERENCE_TIME *stop) = 0;
1994
1995    virtual HRESULT STDMETHODCALLTYPE GetDirtyRange2(
1996        REFTIME *start,
1997        REFTIME *stop) = 0;
1998
1999    virtual HRESULT STDMETHODCALLTYPE SetDirtyRange(
2000        REFERENCE_TIME start,
2001        REFERENCE_TIME stop) = 0;
2002
2003    virtual HRESULT STDMETHODCALLTYPE SetDirtyRange2(
2004        REFTIME start,
2005        REFTIME stop) = 0;
2006
2007    virtual HRESULT STDMETHODCALLTYPE ClearDirty(
2008        ) = 0;
2009
2010    virtual HRESULT STDMETHODCALLTYPE Remove(
2011        ) = 0;
2012
2013    virtual HRESULT STDMETHODCALLTYPE RemoveAll(
2014        ) = 0;
2015
2016    virtual HRESULT STDMETHODCALLTYPE GetTimelineNoRef(
2017        IAMTimeline **timeline) = 0;
2018
2019    virtual HRESULT STDMETHODCALLTYPE GetGroupIBelongTo(
2020        IAMTimelineGroup **group) = 0;
2021
2022    virtual HRESULT STDMETHODCALLTYPE GetEmbedDepth(
2023        LONG *depth) = 0;
2024
2025};
2026#ifdef __CRT_UUID_DECL
2027__CRT_UUID_DECL(IAMTimelineObj, 0x78530b77, 0x61f9, 0x11d2, 0x8c,0xad, 0x00,0xa0,0x24,0x58,0x09,0x02)
2028#endif
2029#else
2030typedef struct IAMTimelineObjVtbl {
2031    BEGIN_INTERFACE
2032
2033    /*** IUnknown methods ***/
2034    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2035        IAMTimelineObj *This,
2036        REFIID riid,
2037        void **ppvObject);
2038
2039    ULONG (STDMETHODCALLTYPE *AddRef)(
2040        IAMTimelineObj *This);
2041
2042    ULONG (STDMETHODCALLTYPE *Release)(
2043        IAMTimelineObj *This);
2044
2045    /*** IAMTimelineObj methods ***/
2046    HRESULT (STDMETHODCALLTYPE *GetStartStop)(
2047        IAMTimelineObj *This,
2048        REFERENCE_TIME *start,
2049        REFERENCE_TIME *stop);
2050
2051    HRESULT (STDMETHODCALLTYPE *GetStartStop2)(
2052        IAMTimelineObj *This,
2053        REFTIME *start,
2054        REFTIME *stop);
2055
2056    HRESULT (STDMETHODCALLTYPE *FixTimes)(
2057        IAMTimelineObj *This,
2058        REFERENCE_TIME *start,
2059        REFERENCE_TIME *stop);
2060
2061    HRESULT (STDMETHODCALLTYPE *FixTimes2)(
2062        IAMTimelineObj *This,
2063        REFTIME *start,
2064        REFTIME *stop);
2065
2066    HRESULT (STDMETHODCALLTYPE *SetStartStop)(
2067        IAMTimelineObj *This,
2068        REFERENCE_TIME start,
2069        REFERENCE_TIME stop);
2070
2071    HRESULT (STDMETHODCALLTYPE *SetStartStop2)(
2072        IAMTimelineObj *This,
2073        REFTIME start,
2074        REFTIME stop);
2075
2076    HRESULT (STDMETHODCALLTYPE *GetPropertySetter)(
2077        IAMTimelineObj *This,
2078        IPropertySetter **setter);
2079
2080    HRESULT (STDMETHODCALLTYPE *SetPropertySetter)(
2081        IAMTimelineObj *This,
2082        IPropertySetter *setter);
2083
2084    HRESULT (STDMETHODCALLTYPE *GetSubObject)(
2085        IAMTimelineObj *This,
2086        IUnknown **obj);
2087
2088    HRESULT (STDMETHODCALLTYPE *SetSubObject)(
2089        IAMTimelineObj *This,
2090        IUnknown *obj);
2091
2092    HRESULT (STDMETHODCALLTYPE *SetSubObjectGUID)(
2093        IAMTimelineObj *This,
2094        GUID guid);
2095
2096    HRESULT (STDMETHODCALLTYPE *SetSubObjectGUIDB)(
2097        IAMTimelineObj *This,
2098        BSTR guidb);
2099
2100    HRESULT (STDMETHODCALLTYPE *GetSubObjectGUID)(
2101        IAMTimelineObj *This,
2102        GUID *guid);
2103
2104    HRESULT (STDMETHODCALLTYPE *GetSubObjectGUIDB)(
2105        IAMTimelineObj *This,
2106        BSTR *guidb);
2107
2108    HRESULT (STDMETHODCALLTYPE *GetSubObjectLoaded)(
2109        IAMTimelineObj *This,
2110        WINBOOL *loaded);
2111
2112    HRESULT (STDMETHODCALLTYPE *GetTimelineType)(
2113        IAMTimelineObj *This,
2114        TIMELINE_MAJOR_TYPE *type);
2115
2116    HRESULT (STDMETHODCALLTYPE *SetTimelineType)(
2117        IAMTimelineObj *This,
2118        TIMELINE_MAJOR_TYPE type);
2119
2120    HRESULT (STDMETHODCALLTYPE *GetUserID)(
2121        IAMTimelineObj *This,
2122        LONG *id);
2123
2124    HRESULT (STDMETHODCALLTYPE *SetUserID)(
2125        IAMTimelineObj *This,
2126        LONG id);
2127
2128    HRESULT (STDMETHODCALLTYPE *GetGenID)(
2129        IAMTimelineObj *This,
2130        LONG *id);
2131
2132    HRESULT (STDMETHODCALLTYPE *GetUserName)(
2133        IAMTimelineObj *This,
2134        BSTR *name);
2135
2136    HRESULT (STDMETHODCALLTYPE *SetUserName)(
2137        IAMTimelineObj *This,
2138        BSTR name);
2139
2140    HRESULT (STDMETHODCALLTYPE *GetUserData)(
2141        IAMTimelineObj *This,
2142        BYTE *data,
2143        LONG *size);
2144
2145    HRESULT (STDMETHODCALLTYPE *SetUserData)(
2146        IAMTimelineObj *This,
2147        BYTE *data,
2148        LONG size);
2149
2150    HRESULT (STDMETHODCALLTYPE *GetMuted)(
2151        IAMTimelineObj *This,
2152        WINBOOL *muted);
2153
2154    HRESULT (STDMETHODCALLTYPE *SetMuted)(
2155        IAMTimelineObj *This,
2156        WINBOOL muted);
2157
2158    HRESULT (STDMETHODCALLTYPE *GetLocked)(
2159        IAMTimelineObj *This,
2160        WINBOOL *locked);
2161
2162    HRESULT (STDMETHODCALLTYPE *SetLocked)(
2163        IAMTimelineObj *This,
2164        WINBOOL locked);
2165
2166    HRESULT (STDMETHODCALLTYPE *GetDirtyRange)(
2167        IAMTimelineObj *This,
2168        REFERENCE_TIME *start,
2169        REFERENCE_TIME *stop);
2170
2171    HRESULT (STDMETHODCALLTYPE *GetDirtyRange2)(
2172        IAMTimelineObj *This,
2173        REFTIME *start,
2174        REFTIME *stop);
2175
2176    HRESULT (STDMETHODCALLTYPE *SetDirtyRange)(
2177        IAMTimelineObj *This,
2178        REFERENCE_TIME start,
2179        REFERENCE_TIME stop);
2180
2181    HRESULT (STDMETHODCALLTYPE *SetDirtyRange2)(
2182        IAMTimelineObj *This,
2183        REFTIME start,
2184        REFTIME stop);
2185
2186    HRESULT (STDMETHODCALLTYPE *ClearDirty)(
2187        IAMTimelineObj *This);
2188
2189    HRESULT (STDMETHODCALLTYPE *Remove)(
2190        IAMTimelineObj *This);
2191
2192    HRESULT (STDMETHODCALLTYPE *RemoveAll)(
2193        IAMTimelineObj *This);
2194
2195    HRESULT (STDMETHODCALLTYPE *GetTimelineNoRef)(
2196        IAMTimelineObj *This,
2197        IAMTimeline **timeline);
2198
2199    HRESULT (STDMETHODCALLTYPE *GetGroupIBelongTo)(
2200        IAMTimelineObj *This,
2201        IAMTimelineGroup **group);
2202
2203    HRESULT (STDMETHODCALLTYPE *GetEmbedDepth)(
2204        IAMTimelineObj *This,
2205        LONG *depth);
2206
2207    END_INTERFACE
2208} IAMTimelineObjVtbl;
2209
2210interface IAMTimelineObj {
2211    CONST_VTBL IAMTimelineObjVtbl* lpVtbl;
2212};
2213
2214#ifdef COBJMACROS
2215#ifndef WIDL_C_INLINE_WRAPPERS
2216/*** IUnknown methods ***/
2217#define IAMTimelineObj_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2218#define IAMTimelineObj_AddRef(This) (This)->lpVtbl->AddRef(This)
2219#define IAMTimelineObj_Release(This) (This)->lpVtbl->Release(This)
2220/*** IAMTimelineObj methods ***/
2221#define IAMTimelineObj_GetStartStop(This,start,stop) (This)->lpVtbl->GetStartStop(This,start,stop)
2222#define IAMTimelineObj_GetStartStop2(This,start,stop) (This)->lpVtbl->GetStartStop2(This,start,stop)
2223#define IAMTimelineObj_FixTimes(This,start,stop) (This)->lpVtbl->FixTimes(This,start,stop)
2224#define IAMTimelineObj_FixTimes2(This,start,stop) (This)->lpVtbl->FixTimes2(This,start,stop)
2225#define IAMTimelineObj_SetStartStop(This,start,stop) (This)->lpVtbl->SetStartStop(This,start,stop)
2226#define IAMTimelineObj_SetStartStop2(This,start,stop) (This)->lpVtbl->SetStartStop2(This,start,stop)
2227#define IAMTimelineObj_GetPropertySetter(This,setter) (This)->lpVtbl->GetPropertySetter(This,setter)
2228#define IAMTimelineObj_SetPropertySetter(This,setter) (This)->lpVtbl->SetPropertySetter(This,setter)
2229#define IAMTimelineObj_GetSubObject(This,obj) (This)->lpVtbl->GetSubObject(This,obj)
2230#define IAMTimelineObj_SetSubObject(This,obj) (This)->lpVtbl->SetSubObject(This,obj)
2231#define IAMTimelineObj_SetSubObjectGUID(This,guid) (This)->lpVtbl->SetSubObjectGUID(This,guid)
2232#define IAMTimelineObj_SetSubObjectGUIDB(This,guidb) (This)->lpVtbl->SetSubObjectGUIDB(This,guidb)
2233#define IAMTimelineObj_GetSubObjectGUID(This,guid) (This)->lpVtbl->GetSubObjectGUID(This,guid)
2234#define IAMTimelineObj_GetSubObjectGUIDB(This,guidb) (This)->lpVtbl->GetSubObjectGUIDB(This,guidb)
2235#define IAMTimelineObj_GetSubObjectLoaded(This,loaded) (This)->lpVtbl->GetSubObjectLoaded(This,loaded)
2236#define IAMTimelineObj_GetTimelineType(This,type) (This)->lpVtbl->GetTimelineType(This,type)
2237#define IAMTimelineObj_SetTimelineType(This,type) (This)->lpVtbl->SetTimelineType(This,type)
2238#define IAMTimelineObj_GetUserID(This,id) (This)->lpVtbl->GetUserID(This,id)
2239#define IAMTimelineObj_SetUserID(This,id) (This)->lpVtbl->SetUserID(This,id)
2240#define IAMTimelineObj_GetGenID(This,id) (This)->lpVtbl->GetGenID(This,id)
2241#define IAMTimelineObj_GetUserName(This,name) (This)->lpVtbl->GetUserName(This,name)
2242#define IAMTimelineObj_SetUserName(This,name) (This)->lpVtbl->SetUserName(This,name)
2243#define IAMTimelineObj_GetUserData(This,data,size) (This)->lpVtbl->GetUserData(This,data,size)
2244#define IAMTimelineObj_SetUserData(This,data,size) (This)->lpVtbl->SetUserData(This,data,size)
2245#define IAMTimelineObj_GetMuted(This,muted) (This)->lpVtbl->GetMuted(This,muted)
2246#define IAMTimelineObj_SetMuted(This,muted) (This)->lpVtbl->SetMuted(This,muted)
2247#define IAMTimelineObj_GetLocked(This,locked) (This)->lpVtbl->GetLocked(This,locked)
2248#define IAMTimelineObj_SetLocked(This,locked) (This)->lpVtbl->SetLocked(This,locked)
2249#define IAMTimelineObj_GetDirtyRange(This,start,stop) (This)->lpVtbl->GetDirtyRange(This,start,stop)
2250#define IAMTimelineObj_GetDirtyRange2(This,start,stop) (This)->lpVtbl->GetDirtyRange2(This,start,stop)
2251#define IAMTimelineObj_SetDirtyRange(This,start,stop) (This)->lpVtbl->SetDirtyRange(This,start,stop)
2252#define IAMTimelineObj_SetDirtyRange2(This,start,stop) (This)->lpVtbl->SetDirtyRange2(This,start,stop)
2253#define IAMTimelineObj_ClearDirty(This) (This)->lpVtbl->ClearDirty(This)
2254#define IAMTimelineObj_Remove(This) (This)->lpVtbl->Remove(This)
2255#define IAMTimelineObj_RemoveAll(This) (This)->lpVtbl->RemoveAll(This)
2256#define IAMTimelineObj_GetTimelineNoRef(This,timeline) (This)->lpVtbl->GetTimelineNoRef(This,timeline)
2257#define IAMTimelineObj_GetGroupIBelongTo(This,group) (This)->lpVtbl->GetGroupIBelongTo(This,group)
2258#define IAMTimelineObj_GetEmbedDepth(This,depth) (This)->lpVtbl->GetEmbedDepth(This,depth)
2259#else
2260/*** IUnknown methods ***/
2261static inline HRESULT IAMTimelineObj_QueryInterface(IAMTimelineObj* This,REFIID riid,void **ppvObject) {
2262    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2263}
2264static inline ULONG IAMTimelineObj_AddRef(IAMTimelineObj* This) {
2265    return This->lpVtbl->AddRef(This);
2266}
2267static inline ULONG IAMTimelineObj_Release(IAMTimelineObj* This) {
2268    return This->lpVtbl->Release(This);
2269}
2270/*** IAMTimelineObj methods ***/
2271static inline HRESULT IAMTimelineObj_GetStartStop(IAMTimelineObj* This,REFERENCE_TIME *start,REFERENCE_TIME *stop) {
2272    return This->lpVtbl->GetStartStop(This,start,stop);
2273}
2274static inline HRESULT IAMTimelineObj_GetStartStop2(IAMTimelineObj* This,REFTIME *start,REFTIME *stop) {
2275    return This->lpVtbl->GetStartStop2(This,start,stop);
2276}
2277static inline HRESULT IAMTimelineObj_FixTimes(IAMTimelineObj* This,REFERENCE_TIME *start,REFERENCE_TIME *stop) {
2278    return This->lpVtbl->FixTimes(This,start,stop);
2279}
2280static inline HRESULT IAMTimelineObj_FixTimes2(IAMTimelineObj* This,REFTIME *start,REFTIME *stop) {
2281    return This->lpVtbl->FixTimes2(This,start,stop);
2282}
2283static inline HRESULT IAMTimelineObj_SetStartStop(IAMTimelineObj* This,REFERENCE_TIME start,REFERENCE_TIME stop) {
2284    return This->lpVtbl->SetStartStop(This,start,stop);
2285}
2286static inline HRESULT IAMTimelineObj_SetStartStop2(IAMTimelineObj* This,REFTIME start,REFTIME stop) {
2287    return This->lpVtbl->SetStartStop2(This,start,stop);
2288}
2289static inline HRESULT IAMTimelineObj_GetPropertySetter(IAMTimelineObj* This,IPropertySetter **setter) {
2290    return This->lpVtbl->GetPropertySetter(This,setter);
2291}
2292static inline HRESULT IAMTimelineObj_SetPropertySetter(IAMTimelineObj* This,IPropertySetter *setter) {
2293    return This->lpVtbl->SetPropertySetter(This,setter);
2294}
2295static inline HRESULT IAMTimelineObj_GetSubObject(IAMTimelineObj* This,IUnknown **obj) {
2296    return This->lpVtbl->GetSubObject(This,obj);
2297}
2298static inline HRESULT IAMTimelineObj_SetSubObject(IAMTimelineObj* This,IUnknown *obj) {
2299    return This->lpVtbl->SetSubObject(This,obj);
2300}
2301static inline HRESULT IAMTimelineObj_SetSubObjectGUID(IAMTimelineObj* This,GUID guid) {
2302    return This->lpVtbl->SetSubObjectGUID(This,guid);
2303}
2304static inline HRESULT IAMTimelineObj_SetSubObjectGUIDB(IAMTimelineObj* This,BSTR guidb) {
2305    return This->lpVtbl->SetSubObjectGUIDB(This,guidb);
2306}
2307static inline HRESULT IAMTimelineObj_GetSubObjectGUID(IAMTimelineObj* This,GUID *guid) {
2308    return This->lpVtbl->GetSubObjectGUID(This,guid);
2309}
2310static inline HRESULT IAMTimelineObj_GetSubObjectGUIDB(IAMTimelineObj* This,BSTR *guidb) {
2311    return This->lpVtbl->GetSubObjectGUIDB(This,guidb);
2312}
2313static inline HRESULT IAMTimelineObj_GetSubObjectLoaded(IAMTimelineObj* This,WINBOOL *loaded) {
2314    return This->lpVtbl->GetSubObjectLoaded(This,loaded);
2315}
2316static inline HRESULT IAMTimelineObj_GetTimelineType(IAMTimelineObj* This,TIMELINE_MAJOR_TYPE *type) {
2317    return This->lpVtbl->GetTimelineType(This,type);
2318}
2319static inline HRESULT IAMTimelineObj_SetTimelineType(IAMTimelineObj* This,TIMELINE_MAJOR_TYPE type) {
2320    return This->lpVtbl->SetTimelineType(This,type);
2321}
2322static inline HRESULT IAMTimelineObj_GetUserID(IAMTimelineObj* This,LONG *id) {
2323    return This->lpVtbl->GetUserID(This,id);
2324}
2325static inline HRESULT IAMTimelineObj_SetUserID(IAMTimelineObj* This,LONG id) {
2326    return This->lpVtbl->SetUserID(This,id);
2327}
2328static inline HRESULT IAMTimelineObj_GetGenID(IAMTimelineObj* This,LONG *id) {
2329    return This->lpVtbl->GetGenID(This,id);
2330}
2331static inline HRESULT IAMTimelineObj_GetUserName(IAMTimelineObj* This,BSTR *name) {
2332    return This->lpVtbl->GetUserName(This,name);
2333}
2334static inline HRESULT IAMTimelineObj_SetUserName(IAMTimelineObj* This,BSTR name) {
2335    return This->lpVtbl->SetUserName(This,name);
2336}
2337static inline HRESULT IAMTimelineObj_GetUserData(IAMTimelineObj* This,BYTE *data,LONG *size) {
2338    return This->lpVtbl->GetUserData(This,data,size);
2339}
2340static inline HRESULT IAMTimelineObj_SetUserData(IAMTimelineObj* This,BYTE *data,LONG size) {
2341    return This->lpVtbl->SetUserData(This,data,size);
2342}
2343static inline HRESULT IAMTimelineObj_GetMuted(IAMTimelineObj* This,WINBOOL *muted) {
2344    return This->lpVtbl->GetMuted(This,muted);
2345}
2346static inline HRESULT IAMTimelineObj_SetMuted(IAMTimelineObj* This,WINBOOL muted) {
2347    return This->lpVtbl->SetMuted(This,muted);
2348}
2349static inline HRESULT IAMTimelineObj_GetLocked(IAMTimelineObj* This,WINBOOL *locked) {
2350    return This->lpVtbl->GetLocked(This,locked);
2351}
2352static inline HRESULT IAMTimelineObj_SetLocked(IAMTimelineObj* This,WINBOOL locked) {
2353    return This->lpVtbl->SetLocked(This,locked);
2354}
2355static inline HRESULT IAMTimelineObj_GetDirtyRange(IAMTimelineObj* This,REFERENCE_TIME *start,REFERENCE_TIME *stop) {
2356    return This->lpVtbl->GetDirtyRange(This,start,stop);
2357}
2358static inline HRESULT IAMTimelineObj_GetDirtyRange2(IAMTimelineObj* This,REFTIME *start,REFTIME *stop) {
2359    return This->lpVtbl->GetDirtyRange2(This,start,stop);
2360}
2361static inline HRESULT IAMTimelineObj_SetDirtyRange(IAMTimelineObj* This,REFERENCE_TIME start,REFERENCE_TIME stop) {
2362    return This->lpVtbl->SetDirtyRange(This,start,stop);
2363}
2364static inline HRESULT IAMTimelineObj_SetDirtyRange2(IAMTimelineObj* This,REFTIME start,REFTIME stop) {
2365    return This->lpVtbl->SetDirtyRange2(This,start,stop);
2366}
2367static inline HRESULT IAMTimelineObj_ClearDirty(IAMTimelineObj* This) {
2368    return This->lpVtbl->ClearDirty(This);
2369}
2370static inline HRESULT IAMTimelineObj_Remove(IAMTimelineObj* This) {
2371    return This->lpVtbl->Remove(This);
2372}
2373static inline HRESULT IAMTimelineObj_RemoveAll(IAMTimelineObj* This) {
2374    return This->lpVtbl->RemoveAll(This);
2375}
2376static inline HRESULT IAMTimelineObj_GetTimelineNoRef(IAMTimelineObj* This,IAMTimeline **timeline) {
2377    return This->lpVtbl->GetTimelineNoRef(This,timeline);
2378}
2379static inline HRESULT IAMTimelineObj_GetGroupIBelongTo(IAMTimelineObj* This,IAMTimelineGroup **group) {
2380    return This->lpVtbl->GetGroupIBelongTo(This,group);
2381}
2382static inline HRESULT IAMTimelineObj_GetEmbedDepth(IAMTimelineObj* This,LONG *depth) {
2383    return This->lpVtbl->GetEmbedDepth(This,depth);
2384}
2385#endif
2386#endif
2387
2388#endif
2389
2390
2391#endif  /* __IAMTimelineObj_INTERFACE_DEFINED__ */
2392
2393/*****************************************************************************
2394 * IAMTimelineSrc interface
2395 */
2396#ifndef __IAMTimelineSrc_INTERFACE_DEFINED__
2397#define __IAMTimelineSrc_INTERFACE_DEFINED__
2398
2399DEFINE_GUID(IID_IAMTimelineSrc, 0x78530b79, 0x61f9, 0x11d2, 0x8c,0xad, 0x00,0xa0,0x24,0x58,0x09,0x02);
2400#if defined(__cplusplus) && !defined(CINTERFACE)
2401MIDL_INTERFACE("78530b79-61f9-11d2-8cad-00a024580902")
2402IAMTimelineSrc : public IUnknown
2403{
2404    virtual HRESULT STDMETHODCALLTYPE GetMediaTimes(
2405        REFERENCE_TIME *start,
2406        REFERENCE_TIME *stop) = 0;
2407
2408    virtual HRESULT STDMETHODCALLTYPE GetMediaTimes2(
2409        REFTIME *start,
2410        REFTIME *stop) = 0;
2411
2412    virtual HRESULT STDMETHODCALLTYPE ModifyStopTime(
2413        REFERENCE_TIME stop) = 0;
2414
2415    virtual HRESULT STDMETHODCALLTYPE ModifyStopTime2(
2416        REFTIME stop) = 0;
2417
2418    virtual HRESULT STDMETHODCALLTYPE FixMediaTimes(
2419        REFERENCE_TIME *start,
2420        REFERENCE_TIME *stop) = 0;
2421
2422    virtual HRESULT STDMETHODCALLTYPE FixMediaTimes2(
2423        REFTIME *start,
2424        REFTIME *stop) = 0;
2425
2426    virtual HRESULT STDMETHODCALLTYPE SetMediaTimes(
2427        REFERENCE_TIME Start,
2428        REFERENCE_TIME Stop) = 0;
2429
2430    virtual HRESULT STDMETHODCALLTYPE SetMediaTimes2(
2431        REFTIME Start,
2432        REFTIME Stop) = 0;
2433
2434    virtual HRESULT STDMETHODCALLTYPE SetMediaLength(
2435        REFERENCE_TIME length) = 0;
2436
2437    virtual HRESULT STDMETHODCALLTYPE SetMediaLength2(
2438        REFTIME length) = 0;
2439
2440    virtual HRESULT STDMETHODCALLTYPE GetMediaLength(
2441        REFERENCE_TIME *length) = 0;
2442
2443    virtual HRESULT STDMETHODCALLTYPE GetMediaLength2(
2444        REFTIME *length) = 0;
2445
2446    virtual HRESULT STDMETHODCALLTYPE GetMediaName(
2447        BSTR *name) = 0;
2448
2449    virtual HRESULT STDMETHODCALLTYPE SetMediaName(
2450        BSTR name) = 0;
2451
2452    virtual HRESULT STDMETHODCALLTYPE SpliceWithNext(
2453        IAMTimelineObj *next) = 0;
2454
2455    virtual HRESULT STDMETHODCALLTYPE GetStreamNumber(
2456        LONG *num) = 0;
2457
2458    virtual HRESULT STDMETHODCALLTYPE SetStreamNumber(
2459        LONG num) = 0;
2460
2461    virtual HRESULT STDMETHODCALLTYPE IsNormalRate(
2462        WINBOOL *normal) = 0;
2463
2464    virtual HRESULT STDMETHODCALLTYPE GetDefaultFPS(
2465        double *fps) = 0;
2466
2467    virtual HRESULT STDMETHODCALLTYPE SetDefaultFPS(
2468        double fps) = 0;
2469
2470    virtual HRESULT STDMETHODCALLTYPE GetStretchMode(
2471        int *mode) = 0;
2472
2473    virtual HRESULT STDMETHODCALLTYPE SetStretchMode(
2474        int mode) = 0;
2475
2476};
2477#ifdef __CRT_UUID_DECL
2478__CRT_UUID_DECL(IAMTimelineSrc, 0x78530b79, 0x61f9, 0x11d2, 0x8c,0xad, 0x00,0xa0,0x24,0x58,0x09,0x02)
2479#endif
2480#else
2481typedef struct IAMTimelineSrcVtbl {
2482    BEGIN_INTERFACE
2483
2484    /*** IUnknown methods ***/
2485    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2486        IAMTimelineSrc *This,
2487        REFIID riid,
2488        void **ppvObject);
2489
2490    ULONG (STDMETHODCALLTYPE *AddRef)(
2491        IAMTimelineSrc *This);
2492
2493    ULONG (STDMETHODCALLTYPE *Release)(
2494        IAMTimelineSrc *This);
2495
2496    /*** IAMTimelineSrc methods ***/
2497    HRESULT (STDMETHODCALLTYPE *GetMediaTimes)(
2498        IAMTimelineSrc *This,
2499        REFERENCE_TIME *start,
2500        REFERENCE_TIME *stop);
2501
2502    HRESULT (STDMETHODCALLTYPE *GetMediaTimes2)(
2503        IAMTimelineSrc *This,
2504        REFTIME *start,
2505        REFTIME *stop);
2506
2507    HRESULT (STDMETHODCALLTYPE *ModifyStopTime)(
2508        IAMTimelineSrc *This,
2509        REFERENCE_TIME stop);
2510
2511    HRESULT (STDMETHODCALLTYPE *ModifyStopTime2)(
2512        IAMTimelineSrc *This,
2513        REFTIME stop);
2514
2515    HRESULT (STDMETHODCALLTYPE *FixMediaTimes)(
2516        IAMTimelineSrc *This,
2517        REFERENCE_TIME *start,
2518        REFERENCE_TIME *stop);
2519
2520    HRESULT (STDMETHODCALLTYPE *FixMediaTimes2)(
2521        IAMTimelineSrc *This,
2522        REFTIME *start,
2523        REFTIME *stop);
2524
2525    HRESULT (STDMETHODCALLTYPE *SetMediaTimes)(
2526        IAMTimelineSrc *This,
2527        REFERENCE_TIME Start,
2528        REFERENCE_TIME Stop);
2529
2530    HRESULT (STDMETHODCALLTYPE *SetMediaTimes2)(
2531        IAMTimelineSrc *This,
2532        REFTIME Start,
2533        REFTIME Stop);
2534
2535    HRESULT (STDMETHODCALLTYPE *SetMediaLength)(
2536        IAMTimelineSrc *This,
2537        REFERENCE_TIME length);
2538
2539    HRESULT (STDMETHODCALLTYPE *SetMediaLength2)(
2540        IAMTimelineSrc *This,
2541        REFTIME length);
2542
2543    HRESULT (STDMETHODCALLTYPE *GetMediaLength)(
2544        IAMTimelineSrc *This,
2545        REFERENCE_TIME *length);
2546
2547    HRESULT (STDMETHODCALLTYPE *GetMediaLength2)(
2548        IAMTimelineSrc *This,
2549        REFTIME *length);
2550
2551    HRESULT (STDMETHODCALLTYPE *GetMediaName)(
2552        IAMTimelineSrc *This,
2553        BSTR *name);
2554
2555    HRESULT (STDMETHODCALLTYPE *SetMediaName)(
2556        IAMTimelineSrc *This,
2557        BSTR name);
2558
2559    HRESULT (STDMETHODCALLTYPE *SpliceWithNext)(
2560        IAMTimelineSrc *This,
2561        IAMTimelineObj *next);
2562
2563    HRESULT (STDMETHODCALLTYPE *GetStreamNumber)(
2564        IAMTimelineSrc *This,
2565        LONG *num);
2566
2567    HRESULT (STDMETHODCALLTYPE *SetStreamNumber)(
2568        IAMTimelineSrc *This,
2569        LONG num);
2570
2571    HRESULT (STDMETHODCALLTYPE *IsNormalRate)(
2572        IAMTimelineSrc *This,
2573        WINBOOL *normal);
2574
2575    HRESULT (STDMETHODCALLTYPE *GetDefaultFPS)(
2576        IAMTimelineSrc *This,
2577        double *fps);
2578
2579    HRESULT (STDMETHODCALLTYPE *SetDefaultFPS)(
2580        IAMTimelineSrc *This,
2581        double fps);
2582
2583    HRESULT (STDMETHODCALLTYPE *GetStretchMode)(
2584        IAMTimelineSrc *This,
2585        int *mode);
2586
2587    HRESULT (STDMETHODCALLTYPE *SetStretchMode)(
2588        IAMTimelineSrc *This,
2589        int mode);
2590
2591    END_INTERFACE
2592} IAMTimelineSrcVtbl;
2593
2594interface IAMTimelineSrc {
2595    CONST_VTBL IAMTimelineSrcVtbl* lpVtbl;
2596};
2597
2598#ifdef COBJMACROS
2599#ifndef WIDL_C_INLINE_WRAPPERS
2600/*** IUnknown methods ***/
2601#define IAMTimelineSrc_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2602#define IAMTimelineSrc_AddRef(This) (This)->lpVtbl->AddRef(This)
2603#define IAMTimelineSrc_Release(This) (This)->lpVtbl->Release(This)
2604/*** IAMTimelineSrc methods ***/
2605#define IAMTimelineSrc_GetMediaTimes(This,start,stop) (This)->lpVtbl->GetMediaTimes(This,start,stop)
2606#define IAMTimelineSrc_GetMediaTimes2(This,start,stop) (This)->lpVtbl->GetMediaTimes2(This,start,stop)
2607#define IAMTimelineSrc_ModifyStopTime(This,stop) (This)->lpVtbl->ModifyStopTime(This,stop)
2608#define IAMTimelineSrc_ModifyStopTime2(This,stop) (This)->lpVtbl->ModifyStopTime2(This,stop)
2609#define IAMTimelineSrc_FixMediaTimes(This,start,stop) (This)->lpVtbl->FixMediaTimes(This,start,stop)
2610#define IAMTimelineSrc_FixMediaTimes2(This,start,stop) (This)->lpVtbl->FixMediaTimes2(This,start,stop)
2611#define IAMTimelineSrc_SetMediaTimes(This,Start,Stop) (This)->lpVtbl->SetMediaTimes(This,Start,Stop)
2612#define IAMTimelineSrc_SetMediaTimes2(This,Start,Stop) (This)->lpVtbl->SetMediaTimes2(This,Start,Stop)
2613#define IAMTimelineSrc_SetMediaLength(This,length) (This)->lpVtbl->SetMediaLength(This,length)
2614#define IAMTimelineSrc_SetMediaLength2(This,length) (This)->lpVtbl->SetMediaLength2(This,length)
2615#define IAMTimelineSrc_GetMediaLength(This,length) (This)->lpVtbl->GetMediaLength(This,length)
2616#define IAMTimelineSrc_GetMediaLength2(This,length) (This)->lpVtbl->GetMediaLength2(This,length)
2617#define IAMTimelineSrc_GetMediaName(This,name) (This)->lpVtbl->GetMediaName(This,name)
2618#define IAMTimelineSrc_SetMediaName(This,name) (This)->lpVtbl->SetMediaName(This,name)
2619#define IAMTimelineSrc_SpliceWithNext(This,next) (This)->lpVtbl->SpliceWithNext(This,next)
2620#define IAMTimelineSrc_GetStreamNumber(This,num) (This)->lpVtbl->GetStreamNumber(This,num)
2621#define IAMTimelineSrc_SetStreamNumber(This,num) (This)->lpVtbl->SetStreamNumber(This,num)
2622#define IAMTimelineSrc_IsNormalRate(This,normal) (This)->lpVtbl->IsNormalRate(This,normal)
2623#define IAMTimelineSrc_GetDefaultFPS(This,fps) (This)->lpVtbl->GetDefaultFPS(This,fps)
2624#define IAMTimelineSrc_SetDefaultFPS(This,fps) (This)->lpVtbl->SetDefaultFPS(This,fps)
2625#define IAMTimelineSrc_GetStretchMode(This,mode) (This)->lpVtbl->GetStretchMode(This,mode)
2626#define IAMTimelineSrc_SetStretchMode(This,mode) (This)->lpVtbl->SetStretchMode(This,mode)
2627#else
2628/*** IUnknown methods ***/
2629static inline HRESULT IAMTimelineSrc_QueryInterface(IAMTimelineSrc* This,REFIID riid,void **ppvObject) {
2630    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2631}
2632static inline ULONG IAMTimelineSrc_AddRef(IAMTimelineSrc* This) {
2633    return This->lpVtbl->AddRef(This);
2634}
2635static inline ULONG IAMTimelineSrc_Release(IAMTimelineSrc* This) {
2636    return This->lpVtbl->Release(This);
2637}
2638/*** IAMTimelineSrc methods ***/
2639static inline HRESULT IAMTimelineSrc_GetMediaTimes(IAMTimelineSrc* This,REFERENCE_TIME *start,REFERENCE_TIME *stop) {
2640    return This->lpVtbl->GetMediaTimes(This,start,stop);
2641}
2642static inline HRESULT IAMTimelineSrc_GetMediaTimes2(IAMTimelineSrc* This,REFTIME *start,REFTIME *stop) {
2643    return This->lpVtbl->GetMediaTimes2(This,start,stop);
2644}
2645static inline HRESULT IAMTimelineSrc_ModifyStopTime(IAMTimelineSrc* This,REFERENCE_TIME stop) {
2646    return This->lpVtbl->ModifyStopTime(This,stop);
2647}
2648static inline HRESULT IAMTimelineSrc_ModifyStopTime2(IAMTimelineSrc* This,REFTIME stop) {
2649    return This->lpVtbl->ModifyStopTime2(This,stop);
2650}
2651static inline HRESULT IAMTimelineSrc_FixMediaTimes(IAMTimelineSrc* This,REFERENCE_TIME *start,REFERENCE_TIME *stop) {
2652    return This->lpVtbl->FixMediaTimes(This,start,stop);
2653}
2654static inline HRESULT IAMTimelineSrc_FixMediaTimes2(IAMTimelineSrc* This,REFTIME *start,REFTIME *stop) {
2655    return This->lpVtbl->FixMediaTimes2(This,start,stop);
2656}
2657static inline HRESULT IAMTimelineSrc_SetMediaTimes(IAMTimelineSrc* This,REFERENCE_TIME Start,REFERENCE_TIME Stop) {
2658    return This->lpVtbl->SetMediaTimes(This,Start,Stop);
2659}
2660static inline HRESULT IAMTimelineSrc_SetMediaTimes2(IAMTimelineSrc* This,REFTIME Start,REFTIME Stop) {
2661    return This->lpVtbl->SetMediaTimes2(This,Start,Stop);
2662}
2663static inline HRESULT IAMTimelineSrc_SetMediaLength(IAMTimelineSrc* This,REFERENCE_TIME length) {
2664    return This->lpVtbl->SetMediaLength(This,length);
2665}
2666static inline HRESULT IAMTimelineSrc_SetMediaLength2(IAMTimelineSrc* This,REFTIME length) {
2667    return This->lpVtbl->SetMediaLength2(This,length);
2668}
2669static inline HRESULT IAMTimelineSrc_GetMediaLength(IAMTimelineSrc* This,REFERENCE_TIME *length) {
2670    return This->lpVtbl->GetMediaLength(This,length);
2671}
2672static inline HRESULT IAMTimelineSrc_GetMediaLength2(IAMTimelineSrc* This,REFTIME *length) {
2673    return This->lpVtbl->GetMediaLength2(This,length);
2674}
2675static inline HRESULT IAMTimelineSrc_GetMediaName(IAMTimelineSrc* This,BSTR *name) {
2676    return This->lpVtbl->GetMediaName(This,name);
2677}
2678static inline HRESULT IAMTimelineSrc_SetMediaName(IAMTimelineSrc* This,BSTR name) {
2679    return This->lpVtbl->SetMediaName(This,name);
2680}
2681static inline HRESULT IAMTimelineSrc_SpliceWithNext(IAMTimelineSrc* This,IAMTimelineObj *next) {
2682    return This->lpVtbl->SpliceWithNext(This,next);
2683}
2684static inline HRESULT IAMTimelineSrc_GetStreamNumber(IAMTimelineSrc* This,LONG *num) {
2685    return This->lpVtbl->GetStreamNumber(This,num);
2686}
2687static inline HRESULT IAMTimelineSrc_SetStreamNumber(IAMTimelineSrc* This,LONG num) {
2688    return This->lpVtbl->SetStreamNumber(This,num);
2689}
2690static inline HRESULT IAMTimelineSrc_IsNormalRate(IAMTimelineSrc* This,WINBOOL *normal) {
2691    return This->lpVtbl->IsNormalRate(This,normal);
2692}
2693static inline HRESULT IAMTimelineSrc_GetDefaultFPS(IAMTimelineSrc* This,double *fps) {
2694    return This->lpVtbl->GetDefaultFPS(This,fps);
2695}
2696static inline HRESULT IAMTimelineSrc_SetDefaultFPS(IAMTimelineSrc* This,double fps) {
2697    return This->lpVtbl->SetDefaultFPS(This,fps);
2698}
2699static inline HRESULT IAMTimelineSrc_GetStretchMode(IAMTimelineSrc* This,int *mode) {
2700    return This->lpVtbl->GetStretchMode(This,mode);
2701}
2702static inline HRESULT IAMTimelineSrc_SetStretchMode(IAMTimelineSrc* This,int mode) {
2703    return This->lpVtbl->SetStretchMode(This,mode);
2704}
2705#endif
2706#endif
2707
2708#endif
2709
2710
2711#endif  /* __IAMTimelineSrc_INTERFACE_DEFINED__ */
2712
2713enum {
2714    E_NOTINTREE = 0x80040400,
2715    E_RENDER_ENGINE_IS_BROKEN = 0x80040401,
2716    E_MUST_INIT_RENDERER = 0x80040402,
2717    E_NOTDETERMINED = 0x80040403,
2718    E_NO_TIMELINE = 0x80040404,
2719    S_WARN_OUTPUTRESET = 40404
2720};
2721/* Begin additional prototypes for all interfaces */
2722
2723ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
2724unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
2725unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
2726void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
2727ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
2728unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
2729unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
2730void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
2731
2732/* End additional prototypes */
2733
2734#ifdef __cplusplus
2735}
2736#endif
2737
2738#endif /* __qedit_h__ */