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