1 /* DirectShow Timeline object (QEDIT.DLL)
3 * Copyright 2016 Alex Henrie
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 #include "qedit_private.h"
23 IUnknown IUnknown_inner
;
24 IAMTimeline IAMTimeline_iface
;
29 static inline TimelineImpl
*impl_from_IUnknown(IUnknown
*iface
)
31 return CONTAINING_RECORD(iface
, TimelineImpl
, IUnknown_inner
);
34 static inline TimelineImpl
*impl_from_IAMTimeline(IAMTimeline
*iface
)
36 return CONTAINING_RECORD(iface
, TimelineImpl
, IAMTimeline_iface
);
40 IAMTimelineObj IAMTimelineObj_iface
;
42 TIMELINE_MAJOR_TYPE timeline_type
;
45 static inline TimelineObjImpl
*impl_from_IAMTimelineObj(IAMTimelineObj
*iface
)
47 return CONTAINING_RECORD(iface
, TimelineObjImpl
, IAMTimelineObj_iface
);
50 static const IAMTimelineObjVtbl IAMTimelineObj_VTable
;
52 /* Timeline inner IUnknown */
54 static HRESULT WINAPI
Timeline_QueryInterface(IUnknown
*iface
, REFIID riid
, void **ppv
)
56 TimelineImpl
*This
= impl_from_IUnknown(iface
);
58 TRACE("(%p)->(%s %p)\n", This
, debugstr_guid(riid
), ppv
);
64 if (IsEqualIID(riid
, &IID_IUnknown
))
65 *ppv
= &This
->IUnknown_inner
;
66 else if (IsEqualIID(riid
, &IID_IAMTimeline
))
67 *ppv
= &This
->IAMTimeline_iface
;
69 WARN("(%p, %s,%p): not found\n", This
, debugstr_guid(riid
), ppv
);
74 IUnknown_AddRef((IUnknown
*)*ppv
);
78 static ULONG WINAPI
Timeline_AddRef(IUnknown
*iface
)
80 TimelineImpl
*This
= impl_from_IUnknown(iface
);
81 ULONG ref
= InterlockedIncrement(&This
->ref
);
83 TRACE("(%p) new ref = %u\n", This
, ref
);
88 static ULONG WINAPI
Timeline_Release(IUnknown
*iface
)
90 TimelineImpl
*This
= impl_from_IUnknown(iface
);
91 ULONG ref
= InterlockedDecrement(&This
->ref
);
93 TRACE("(%p) new ref = %u\n", This
, ref
);
101 static const IUnknownVtbl timeline_vtbl
=
103 Timeline_QueryInterface
,
108 /* IAMTimeline implementation */
110 static HRESULT WINAPI
Timeline_IAMTimeline_QueryInterface(IAMTimeline
*iface
, REFIID riid
, void **ppv
)
112 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
113 return IUnknown_QueryInterface(This
->outer_unk
, riid
, ppv
);
116 static ULONG WINAPI
Timeline_IAMTimeline_AddRef(IAMTimeline
*iface
)
118 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
119 return IUnknown_AddRef(This
->outer_unk
);
122 static ULONG WINAPI
Timeline_IAMTimeline_Release(IAMTimeline
*iface
)
124 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
125 return IUnknown_Release(This
->outer_unk
);
128 static HRESULT WINAPI
Timeline_IAMTimeline_CreateEmptyNode(IAMTimeline
*iface
, IAMTimelineObj
**obj
,
129 TIMELINE_MAJOR_TYPE type
)
131 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
132 TimelineObjImpl
* obj_impl
;
134 TRACE("(%p)->(%p,%d)\n", This
, obj
, type
);
141 case TIMELINE_MAJOR_TYPE_COMPOSITE
:
142 case TIMELINE_MAJOR_TYPE_TRACK
:
143 case TIMELINE_MAJOR_TYPE_SOURCE
:
144 case TIMELINE_MAJOR_TYPE_TRANSITION
:
145 case TIMELINE_MAJOR_TYPE_EFFECT
:
146 case TIMELINE_MAJOR_TYPE_GROUP
:
152 obj_impl
= CoTaskMemAlloc(sizeof(TimelineObjImpl
));
155 return E_OUTOFMEMORY
;
159 obj_impl
->IAMTimelineObj_iface
.lpVtbl
= &IAMTimelineObj_VTable
;
160 obj_impl
->timeline_type
= type
;
162 *obj
= &obj_impl
->IAMTimelineObj_iface
;
166 static HRESULT WINAPI
Timeline_IAMTimeline_AddGroup(IAMTimeline
*iface
, IAMTimelineObj
*group
)
168 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
169 FIXME("(%p)->(%p): not implemented!\n", This
, group
);
173 static HRESULT WINAPI
Timeline_IAMTimeline_RemGroupFromList(IAMTimeline
*iface
, IAMTimelineObj
*group
)
175 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
176 FIXME("(%p)->(%p): not implemented!\n", This
, group
);
180 static HRESULT WINAPI
Timeline_IAMTimeline_GetGroup(IAMTimeline
*iface
, IAMTimelineObj
**group
, LONG index
)
182 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
183 FIXME("(%p)->(%p,%d): not implemented!\n", This
, group
, index
);
187 static HRESULT WINAPI
Timeline_IAMTimeline_GetGroupCount(IAMTimeline
*iface
, LONG
*count
)
189 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
190 FIXME("(%p)->(%p): not implemented!\n", This
, count
);
194 static HRESULT WINAPI
Timeline_IAMTimeline_ClearAllGroups(IAMTimeline
*iface
)
196 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
197 FIXME("(%p): not implemented!\n", This
);
201 static HRESULT WINAPI
Timeline_IAMTimeline_GetInsertMode(IAMTimeline
*iface
, LONG
*mode
)
203 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
204 FIXME("(%p)->(%p): not implemented!\n", This
, mode
);
208 static HRESULT WINAPI
Timeline_IAMTimeline_SetInsertMode(IAMTimeline
*iface
, LONG mode
)
210 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
211 FIXME("(%p)->(%d): not implemented!\n", This
, mode
);
215 static HRESULT WINAPI
Timeline_IAMTimeline_EnableTransitions(IAMTimeline
*iface
, BOOL enabled
)
217 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
218 FIXME("(%p)->(%d): not implemented!\n", This
, enabled
);
222 static HRESULT WINAPI
Timeline_IAMTimeline_TransitionsEnabled(IAMTimeline
*iface
, BOOL
*enabled
)
224 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
225 FIXME("(%p)->(%p): not implemented!\n", This
, enabled
);
229 static HRESULT WINAPI
Timeline_IAMTimeline_EnableEffects(IAMTimeline
*iface
, BOOL enabled
)
231 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
232 FIXME("(%p)->(%d): not implemented!\n", This
, enabled
);
236 static HRESULT WINAPI
Timeline_IAMTimeline_EffectsEnabled(IAMTimeline
*iface
, BOOL
*enabled
)
238 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
239 FIXME("(%p)->(%p): not implemented!\n", This
, enabled
);
243 static HRESULT WINAPI
Timeline_IAMTimeline_SetInterestRange(IAMTimeline
*iface
, REFERENCE_TIME start
,
246 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
247 FIXME("(%p)->(%s,%s): not implemented!\n", This
, wine_dbgstr_longlong(start
),
248 wine_dbgstr_longlong(stop
));
252 static HRESULT WINAPI
Timeline_IAMTimeline_GetDuration(IAMTimeline
*iface
, REFERENCE_TIME
*duration
)
254 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
255 FIXME("(%p)->(%p): not implemented!\n", This
, duration
);
259 static HRESULT WINAPI
Timeline_IAMTimeline_GetDuration2(IAMTimeline
*iface
, double *duration
)
261 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
262 FIXME("(%p)->(%p): not implemented!\n", This
, duration
);
266 static HRESULT WINAPI
Timeline_IAMTimeline_SetDefaultFPS(IAMTimeline
*iface
, double fps
)
268 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
269 FIXME("(%p)->(%f): not implemented!\n", This
, fps
);
273 static HRESULT WINAPI
Timeline_IAMTimeline_GetDefaultFPS(IAMTimeline
*iface
, double *fps
)
275 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
276 FIXME("(%p)->(%p): not implemented!\n", This
, fps
);
280 static HRESULT WINAPI
Timeline_IAMTimeline_IsDirty(IAMTimeline
*iface
, BOOL
*dirty
)
282 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
283 FIXME("(%p)->(%p): not implemented!\n", This
, dirty
);
287 static HRESULT WINAPI
Timeline_IAMTimeline_GetDirtyRange(IAMTimeline
*iface
, REFERENCE_TIME
*start
,
288 REFERENCE_TIME
*stop
)
290 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
291 FIXME("(%p)->(%p,%p): not implemented!\n", This
, start
, stop
);
295 static HRESULT WINAPI
Timeline_IAMTimeline_GetCountOfType(IAMTimeline
*iface
, LONG group
, LONG
*value
,
296 LONG
*value_with_comps
, TIMELINE_MAJOR_TYPE type
)
298 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
299 FIXME("(%p)->(%d,%p,%p,%04x): not implemented!\n", This
, group
, value
, value_with_comps
, type
);
303 static HRESULT WINAPI
Timeline_IAMTimeline_ValidateSourceNames(IAMTimeline
*iface
, LONG flags
, IMediaLocator
*override
,
304 LONG_PTR notify_event
)
306 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
307 FIXME("(%p)->(%d,%p,%lx): not implemented!\n", This
, flags
, override
, notify_event
);
311 static HRESULT WINAPI
Timeline_IAMTimeline_SetDefaultTransition(IAMTimeline
*iface
, GUID
*guid
)
313 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
314 FIXME("(%p)->(%s): not implemented!\n", This
, wine_dbgstr_guid(guid
));
318 static HRESULT WINAPI
Timeline_IAMTimeline_GetDefaultTransition(IAMTimeline
*iface
, GUID
*guid
)
320 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
321 FIXME("(%p)->(%s): not implemented!\n", This
, wine_dbgstr_guid(guid
));
325 static HRESULT WINAPI
Timeline_IAMTimeline_SetDefaultEffect(IAMTimeline
*iface
, GUID
*guid
)
327 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
328 FIXME("(%p)->(%s): not implemented!\n", This
, wine_dbgstr_guid(guid
));
332 static HRESULT WINAPI
Timeline_IAMTimeline_GetDefaultEffect(IAMTimeline
*iface
, GUID
*guid
)
334 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
335 FIXME("(%p)->(%s): not implemented!\n", This
, wine_dbgstr_guid(guid
));
339 static HRESULT WINAPI
Timeline_IAMTimeline_SetDefaultTransitionB(IAMTimeline
*iface
, BSTR guidb
)
341 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
342 FIXME("(%p)->(%p): not implemented!\n", This
, guidb
);
346 static HRESULT WINAPI
Timeline_IAMTimeline_GetDefaultTransitionB(IAMTimeline
*iface
, BSTR
*guidb
)
348 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
349 FIXME("(%p)->(%p): not implemented!\n", This
, guidb
);
353 static HRESULT WINAPI
Timeline_IAMTimeline_SetDefaultEffectB(IAMTimeline
*iface
, BSTR guidb
)
355 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
356 FIXME("(%p)->(%p): not implemented!\n", This
, guidb
);
360 static HRESULT WINAPI
Timeline_IAMTimeline_GetDefaultEffectB(IAMTimeline
*iface
, BSTR
*guidb
)
362 TimelineImpl
*This
= impl_from_IAMTimeline(iface
);
363 FIXME("(%p)->(%p): not implemented!\n", This
, guidb
);
367 static const IAMTimelineVtbl IAMTimeline_VTable
=
369 Timeline_IAMTimeline_QueryInterface
,
370 Timeline_IAMTimeline_AddRef
,
371 Timeline_IAMTimeline_Release
,
372 Timeline_IAMTimeline_CreateEmptyNode
,
373 Timeline_IAMTimeline_AddGroup
,
374 Timeline_IAMTimeline_RemGroupFromList
,
375 Timeline_IAMTimeline_GetGroup
,
376 Timeline_IAMTimeline_GetGroupCount
,
377 Timeline_IAMTimeline_ClearAllGroups
,
378 Timeline_IAMTimeline_GetInsertMode
,
379 Timeline_IAMTimeline_SetInsertMode
,
380 Timeline_IAMTimeline_EnableTransitions
,
381 Timeline_IAMTimeline_TransitionsEnabled
,
382 Timeline_IAMTimeline_EnableEffects
,
383 Timeline_IAMTimeline_EffectsEnabled
,
384 Timeline_IAMTimeline_SetInterestRange
,
385 Timeline_IAMTimeline_GetDuration
,
386 Timeline_IAMTimeline_GetDuration2
,
387 Timeline_IAMTimeline_SetDefaultFPS
,
388 Timeline_IAMTimeline_GetDefaultFPS
,
389 Timeline_IAMTimeline_IsDirty
,
390 Timeline_IAMTimeline_GetDirtyRange
,
391 Timeline_IAMTimeline_GetCountOfType
,
392 Timeline_IAMTimeline_ValidateSourceNames
,
393 Timeline_IAMTimeline_SetDefaultTransition
,
394 Timeline_IAMTimeline_GetDefaultTransition
,
395 Timeline_IAMTimeline_SetDefaultEffect
,
396 Timeline_IAMTimeline_GetDefaultEffect
,
397 Timeline_IAMTimeline_SetDefaultTransitionB
,
398 Timeline_IAMTimeline_GetDefaultTransitionB
,
399 Timeline_IAMTimeline_SetDefaultEffectB
,
400 Timeline_IAMTimeline_GetDefaultEffectB
,
403 HRESULT
AMTimeline_create(IUnknown
*pUnkOuter
, LPVOID
*ppv
)
405 TimelineImpl
* obj
= NULL
;
407 TRACE("(%p,%p)\n", pUnkOuter
, ppv
);
409 obj
= CoTaskMemAlloc(sizeof(TimelineImpl
));
412 return E_OUTOFMEMORY
;
414 ZeroMemory(obj
, sizeof(TimelineImpl
));
417 obj
->IUnknown_inner
.lpVtbl
= &timeline_vtbl
;
418 obj
->IAMTimeline_iface
.lpVtbl
= &IAMTimeline_VTable
;
421 obj
->outer_unk
= pUnkOuter
;
423 obj
->outer_unk
= &obj
->IUnknown_inner
;
425 *ppv
= &obj
->IUnknown_inner
;
429 /* IAMTimelineObj implementation */
431 static HRESULT WINAPI
TimelineObj_QueryInterface(IAMTimelineObj
*iface
, REFIID riid
, void **ppv
)
433 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
435 TRACE("(%p)->(%s %p)\n", This
, debugstr_guid(riid
), ppv
);
441 if (IsEqualIID(riid
, &IID_IUnknown
) || IsEqualIID(riid
, &IID_IAMTimelineObj
))
442 *ppv
= &This
->IAMTimelineObj_iface
;
444 WARN("(%p, %s,%p): not found\n", This
, debugstr_guid(riid
), ppv
);
447 return E_NOINTERFACE
;
449 IUnknown_AddRef((IUnknown
*)*ppv
);
453 static ULONG WINAPI
TimelineObj_AddRef(IAMTimelineObj
*iface
)
455 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
456 ULONG ref
= InterlockedIncrement(&This
->ref
);
458 TRACE("(%p) new ref = %u\n", This
, ref
);
463 static ULONG WINAPI
TimelineObj_Release(IAMTimelineObj
*iface
)
465 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
466 ULONG ref
= InterlockedDecrement(&This
->ref
);
468 TRACE("(%p) new ref = %u\n", This
, ref
);
476 static HRESULT WINAPI
TimelineObj_GetStartStop(IAMTimelineObj
*iface
, REFERENCE_TIME
*start
, REFERENCE_TIME
*stop
)
478 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
479 FIXME("(%p)->(%p,%p): not implemented!\n", This
, start
, stop
);
483 static HRESULT WINAPI
TimelineObj_GetStartStop2(IAMTimelineObj
*iface
, REFTIME
*start
, REFTIME
*stop
)
485 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
486 FIXME("(%p)->(%p,%p): not implemented!\n", This
, start
, stop
);
490 static HRESULT WINAPI
TimelineObj_FixTimes(IAMTimelineObj
*iface
, REFERENCE_TIME
*start
, REFERENCE_TIME
*stop
)
492 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
493 FIXME("(%p)->(%p,%p): not implemented!\n", This
, start
, stop
);
497 static HRESULT WINAPI
TimelineObj_FixTimes2(IAMTimelineObj
*iface
, REFTIME
*start
, REFTIME
*stop
)
499 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
500 FIXME("(%p)->(%p,%p): not implemented!\n", This
, start
, stop
);
504 static HRESULT WINAPI
TimelineObj_SetStartStop(IAMTimelineObj
*iface
, REFERENCE_TIME start
, REFERENCE_TIME stop
)
506 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
507 FIXME("(%p)->(%s,%s): not implemented!\n", This
, wine_dbgstr_longlong(start
), wine_dbgstr_longlong(stop
));
511 static HRESULT WINAPI
TimelineObj_SetStartStop2(IAMTimelineObj
*iface
, REFTIME start
, REFTIME stop
)
513 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
514 FIXME("(%p)->(%f,%f): not implemented!\n", This
, start
, stop
);
518 static HRESULT WINAPI
TimelineObj_GetPropertySetter(IAMTimelineObj
*iface
, IPropertySetter
**setter
)
520 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
521 FIXME("(%p)->(%p): not implemented!\n", This
, setter
);
525 static HRESULT WINAPI
TimelineObj_SetPropertySetter(IAMTimelineObj
*iface
, IPropertySetter
*setter
)
527 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
528 FIXME("(%p)->(%p): not implemented!\n", This
, setter
);
532 static HRESULT WINAPI
TimelineObj_GetSubObject(IAMTimelineObj
*iface
, IUnknown
**obj
)
534 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
535 FIXME("(%p)->(%p): not implemented!\n", This
, obj
);
539 static HRESULT WINAPI
TimelineObj_SetSubObject(IAMTimelineObj
*iface
, IUnknown
*obj
)
541 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
542 FIXME("(%p)->(%p): not implemented!\n", This
, obj
);
546 static HRESULT WINAPI
TimelineObj_SetSubObjectGUID(IAMTimelineObj
*iface
, GUID guid
)
548 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
549 FIXME("(%p)->(%s): not implemented!\n", This
, wine_dbgstr_guid(&guid
));
553 static HRESULT WINAPI
TimelineObj_SetSubObjectGUIDB(IAMTimelineObj
*iface
, BSTR guidb
)
555 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
556 FIXME("(%p)->(%s): not implemented!\n", This
, wine_dbgstr_w(guidb
));
560 static HRESULT WINAPI
TimelineObj_GetSubObjectGUID(IAMTimelineObj
*iface
, GUID
*guid
)
562 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
563 FIXME("(%p)->(%p): not implemented!\n", This
, guid
);
567 static HRESULT WINAPI
TimelineObj_GetSubObjectGUIDB(IAMTimelineObj
*iface
, BSTR
*guidb
)
569 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
570 FIXME("(%p)->(%p): not implemented!\n", This
, guidb
);
574 static HRESULT WINAPI
TimelineObj_GetSubObjectLoaded(IAMTimelineObj
*iface
, BOOL
*loaded
)
576 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
577 FIXME("(%p)->(%p): not implemented!\n", This
, loaded
);
581 static HRESULT WINAPI
TimelineObj_GetTimelineType(IAMTimelineObj
*iface
, TIMELINE_MAJOR_TYPE
*type
)
583 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
584 TRACE("(%p)->(%p)\n", This
, type
);
585 if (!type
) return E_POINTER
;
586 *type
= This
->timeline_type
;
590 static HRESULT WINAPI
TimelineObj_SetTimelineType(IAMTimelineObj
*iface
, TIMELINE_MAJOR_TYPE type
)
592 /* MSDN says that this function is "not supported" */
593 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
594 TRACE("(%p)->(%d)\n", This
, type
);
595 if (type
!= This
->timeline_type
) return E_INVALIDARG
;
599 static HRESULT WINAPI
TimelineObj_GetUserID(IAMTimelineObj
*iface
, LONG
*id
)
601 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
602 FIXME("(%p)->(%p): not implemented!\n", This
, id
);
606 static HRESULT WINAPI
TimelineObj_SetUserID(IAMTimelineObj
*iface
, LONG id
)
608 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
609 FIXME("(%p)->(%d): not implemented!\n", This
, id
);
613 static HRESULT WINAPI
TimelineObj_GetGenID(IAMTimelineObj
*iface
, LONG
*id
)
615 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
616 FIXME("(%p)->(%p): not implemented!\n", This
, id
);
620 static HRESULT WINAPI
TimelineObj_GetUserName(IAMTimelineObj
*iface
, BSTR
*name
)
622 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
623 FIXME("(%p)->(%p): not implemented!\n", This
, name
);
627 static HRESULT WINAPI
TimelineObj_SetUserName(IAMTimelineObj
*iface
, BSTR name
)
629 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
630 FIXME("(%p)->(%s): not implemented!\n", This
, wine_dbgstr_w(name
));
634 static HRESULT WINAPI
TimelineObj_GetUserData(IAMTimelineObj
*iface
, BYTE
*data
, LONG
*size
)
636 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
637 FIXME("(%p)->(%p,%p): not implemented!\n", This
, data
, size
);
641 static HRESULT WINAPI
TimelineObj_SetUserData(IAMTimelineObj
*iface
, BYTE
*data
, LONG size
)
643 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
644 FIXME("(%p)->(%p,%d): not implemented!\n", This
, data
, size
);
648 static HRESULT WINAPI
TimelineObj_GetMuted(IAMTimelineObj
*iface
, BOOL
*muted
)
650 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
651 FIXME("(%p)->(%p): not implemented!\n", This
, muted
);
655 static HRESULT WINAPI
TimelineObj_SetMuted(IAMTimelineObj
*iface
, BOOL muted
)
657 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
658 FIXME("(%p)->(%d): not implemented!\n", This
, muted
);
662 static HRESULT WINAPI
TimelineObj_GetLocked(IAMTimelineObj
*iface
, BOOL
*locked
)
664 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
665 FIXME("(%p)->(%p): not implemented!\n", This
, locked
);
669 static HRESULT WINAPI
TimelineObj_SetLocked(IAMTimelineObj
*iface
, BOOL locked
)
671 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
672 FIXME("(%p)->(%d): not implemented!\n", This
, locked
);
676 static HRESULT WINAPI
TimelineObj_GetDirtyRange(IAMTimelineObj
*iface
, REFERENCE_TIME
*start
, REFERENCE_TIME
*stop
)
678 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
679 FIXME("(%p)->(%p,%p): not implemented!\n", This
, start
, stop
);
683 static HRESULT WINAPI
TimelineObj_GetDirtyRange2(IAMTimelineObj
*iface
, REFTIME
*start
, REFTIME
*stop
)
685 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
686 FIXME("(%p)->(%p,%p): not implemented!\n", This
, start
, stop
);
690 static HRESULT WINAPI
TimelineObj_SetDirtyRange(IAMTimelineObj
*iface
, REFERENCE_TIME start
, REFERENCE_TIME stop
)
692 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
693 FIXME("(%p)->(%s,%s): not implemented!\n", This
, wine_dbgstr_longlong(start
), wine_dbgstr_longlong(stop
));
697 static HRESULT WINAPI
TimelineObj_SetDirtyRange2(IAMTimelineObj
*iface
, REFTIME start
, REFTIME stop
)
699 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
700 FIXME("(%p)->(%f,%f): not implemented!\n", This
, start
, stop
);
704 static HRESULT WINAPI
TimelineObj_ClearDirty(IAMTimelineObj
*iface
)
706 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
707 FIXME("(%p): not implemented!\n", This
);
711 static HRESULT WINAPI
TimelineObj_Remove(IAMTimelineObj
*iface
)
713 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
714 FIXME("(%p): not implemented!\n", This
);
718 static HRESULT WINAPI
TimelineObj_RemoveAll(IAMTimelineObj
*iface
)
720 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
721 FIXME("(%p): not implemented!\n", This
);
725 static HRESULT WINAPI
TimelineObj_GetTimelineNoRef(IAMTimelineObj
*iface
, IAMTimeline
**timeline
)
727 /* MSDN says that this function is "not supported" */
728 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
729 TRACE("(%p)->(%p)\n", This
, timeline
);
730 if (!timeline
) return E_POINTER
;
732 return E_NOINTERFACE
;
735 static HRESULT WINAPI
TimelineObj_GetGroupIBelongTo(IAMTimelineObj
*iface
, IAMTimelineGroup
**group
)
737 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
738 FIXME("(%p)->(%p): not implemented!\n", This
, group
);
742 static HRESULT WINAPI
TimelineObj_GetEmbedDepth(IAMTimelineObj
*iface
, LONG
*depth
)
744 TimelineObjImpl
*This
= impl_from_IAMTimelineObj(iface
);
745 FIXME("(%p)->(%p): not implemented!\n", This
, depth
);
749 static const IAMTimelineObjVtbl IAMTimelineObj_VTable
=
751 TimelineObj_QueryInterface
,
754 TimelineObj_GetStartStop
,
755 TimelineObj_GetStartStop2
,
756 TimelineObj_FixTimes
,
757 TimelineObj_FixTimes2
,
758 TimelineObj_SetStartStop
,
759 TimelineObj_SetStartStop2
,
760 TimelineObj_GetPropertySetter
,
761 TimelineObj_SetPropertySetter
,
762 TimelineObj_GetSubObject
,
763 TimelineObj_SetSubObject
,
764 TimelineObj_SetSubObjectGUID
,
765 TimelineObj_SetSubObjectGUIDB
,
766 TimelineObj_GetSubObjectGUID
,
767 TimelineObj_GetSubObjectGUIDB
,
768 TimelineObj_GetSubObjectLoaded
,
769 TimelineObj_GetTimelineType
,
770 TimelineObj_SetTimelineType
,
771 TimelineObj_GetUserID
,
772 TimelineObj_SetUserID
,
773 TimelineObj_GetGenID
,
774 TimelineObj_GetUserName
,
775 TimelineObj_SetUserName
,
776 TimelineObj_GetUserData
,
777 TimelineObj_SetUserData
,
778 TimelineObj_GetMuted
,
779 TimelineObj_SetMuted
,
780 TimelineObj_GetLocked
,
781 TimelineObj_SetLocked
,
782 TimelineObj_GetDirtyRange
,
783 TimelineObj_GetDirtyRange2
,
784 TimelineObj_SetDirtyRange
,
785 TimelineObj_SetDirtyRange2
,
786 TimelineObj_ClearDirty
,
788 TimelineObj_RemoveAll
,
789 TimelineObj_GetTimelineNoRef
,
790 TimelineObj_GetGroupIBelongTo
,
791 TimelineObj_GetEmbedDepth
,