d3d9: Implement setting the maximum frame latency.
[wine.git] / include / qedit.idl
blob753ac15bf432a0a1dcd3f215565e1ede356ad91c
1 /*
2 * Copyright (C) 2008 Google (Lei Zhang)
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 import "oaidl.idl";
20 import "ocidl.idl";
21 /* import "dxtrans.idl"; */
22 import "amstream.idl";
23 import "msxml.idl";
26 object,
27 uuid(0579154A-2B53-4994-B0D0-E773148EFF85),
28 local,
29 pointer_default(unique)
31 interface ISampleGrabberCB : IUnknown
33 HRESULT SampleCB(
34 double SampleTime,
35 IMediaSample * pSample
37 HRESULT BufferCB(
38 double SampleTime,
39 BYTE * pBuffer,
40 LONG BufferLen
45 object,
46 uuid(6B652FFF-11FE-4fce-92AD-0266B5D7C78F),
47 local,
48 pointer_default(unique)
50 interface ISampleGrabber: IUnknown
52 HRESULT SetOneShot(
53 BOOL OneShot
56 HRESULT SetMediaType(
57 const AM_MEDIA_TYPE * pType
60 HRESULT GetConnectedMediaType(
61 AM_MEDIA_TYPE * pType
64 HRESULT SetBufferSamples(
65 BOOL BufferThem
68 HRESULT GetCurrentBuffer(
69 [in,out] LONG * pBufferSize,
70 [out] LONG * pBuffer
73 HRESULT GetCurrentSample(
74 [out] IMediaSample ** ppSample
77 HRESULT SetCallback(
78 ISampleGrabberCB * pCallback,
79 LONG WhichMethodToCallback
84 object,
85 uuid(65bd0710-24d2-4FF7-9324-ed2e5d3abafa),
86 pointer_default(unique)
88 interface IMediaDet : IUnknown
90 HRESULT get_Filter(
91 [out] IUnknown* *pVal
94 HRESULT put_Filter(
95 IUnknown* newVal
98 HRESULT get_OutputStreams(
99 [out] LONG *pVal
102 HRESULT get_CurrentStream(
103 [out] LONG *pVal
106 HRESULT put_CurrentStream(
107 LONG newVal
110 HRESULT get_StreamType(
111 [out] GUID *pVal
114 HRESULT get_StreamTypeB(
115 [out] BSTR *pVal
118 HRESULT get_StreamLength(
119 [out] double *pVal
122 HRESULT get_Filename(
123 [out] BSTR *pVal
126 HRESULT put_Filename(
127 BSTR newVal
130 HRESULT GetBitmapBits(
131 double StreamTime,
132 LONG * pBufferSize,
133 char * pBuffer,
134 LONG Width,
135 LONG Height
138 HRESULT WriteBitmapBits(
139 double StreamTime,
140 LONG Width,
141 LONG Height,
142 BSTR Filename
145 HRESULT get_StreamMediaType(
146 [out] AM_MEDIA_TYPE * pVal
149 HRESULT GetSampleGrabber(
150 [out] ISampleGrabber ** ppVal
153 HRESULT get_FrameRate(
154 [out] double *pVal
157 HRESULT EnterBitmapGrabMode(
158 double SeekTime
163 uuid(65BD0711-24D2-4ff7-9324-ED2E5D3ABAFA),
165 coclass MediaDet
167 [default] interface IMediaDet;
171 object,
172 uuid(288581E0-66CE-11d2-918F-00C0DF10D434),
173 odl,
174 pointer_default(unique)
176 interface IMediaLocator : IUnknown
178 HRESULT FindMediaFile(
179 BSTR input,
180 BSTR filter,
181 BSTR * output,
182 long flags
185 HRESULT AddFoundLocation(
186 BSTR dir
190 typedef struct
192 BSTR name;
193 DISPID dispID;
194 LONG nValues;
195 } DEXTER_PARAM;
197 typedef struct
199 VARIANT v;
200 REFERENCE_TIME rt;
201 DWORD dwInterp;
202 } DEXTER_VALUE;
205 object,
206 uuid(AE9472BD-B0C3-11D2-8D24-00A0C9441E20),
207 pointer_default(unique)
209 interface IPropertySetter : IUnknown
211 HRESULT LoadXML(
212 [in] IUnknown * pxml
215 HRESULT PrintXML(
216 [out] char * xml,
217 [in] int size,
218 [out] int * printed,
219 [in] int indent
222 HRESULT CloneProps(
223 [out] IPropertySetter ** setter,
224 [in] REFERENCE_TIME start,
225 [in] REFERENCE_TIME stop
228 HRESULT AddProp(
229 [in] DEXTER_PARAM param,
230 [in] DEXTER_VALUE * value
233 HRESULT GetProps(
234 [out] LONG * params,
235 [out] DEXTER_PARAM ** param,
236 [out] DEXTER_VALUE ** value
239 HRESULT FreeProps(
240 [in] LONG params,
241 [in] DEXTER_PARAM * param,
242 [in] DEXTER_VALUE * value
245 HRESULT ClearProps();
247 HRESULT SaveToBlob(
248 [out] LONG * size,
249 [out] BYTE ** blob
252 HRESULT LoadFromBlob(
253 [in] LONG size,
254 [in] BYTE * blob
257 HRESULT SetProps(
258 [in] IUnknown * target,
259 [in] REFERENCE_TIME now
264 object,
265 uuid(E43E73A2-0EFA-11d3-9601-00A0C9441E20),
266 odl,
267 pointer_default(unique)
269 interface IAMErrorLog : IUnknown
271 HRESULT LogError(
272 long severity,
273 BSTR error_str,
274 long error_code,
275 long hresult,
276 [in] VARIANT * extra
281 object,
282 uuid(963566DA-BE21-4eaf-88E9-35704F8F52A1),
283 odl,
284 pointer_default(unique)
286 interface IAMSetErrorLog : IUnknown
288 [propget] HRESULT ErrorLog(
289 [out, retval] IAMErrorLog ** log
292 [propput] HRESULT ErrorLog(
293 [in] IAMErrorLog * log
297 interface IAMTimeline;
298 interface IAMTimelineGroup;
299 interface IAMTimelineObj;
300 interface IAMTimelineSrc;
302 typedef enum
304 TIMELINE_MAJOR_TYPE_COMPOSITE = 1,
305 TIMELINE_MAJOR_TYPE_TRACK = 2,
306 TIMELINE_MAJOR_TYPE_SOURCE = 4,
307 TIMELINE_MAJOR_TYPE_TRANSITION = 8,
308 TIMELINE_MAJOR_TYPE_EFFECT = 16,
309 TIMELINE_MAJOR_TYPE_GROUP = 128
310 } TIMELINE_MAJOR_TYPE;
313 object,
314 uuid(78530B74-61F9-11D2-8CAD-00A024580902),
315 odl,
316 pointer_default(unique)
318 interface IAMTimeline : IUnknown
320 HRESULT CreateEmptyNode(
321 [out] IAMTimelineObj ** obj,
322 TIMELINE_MAJOR_TYPE type
325 HRESULT AddGroup(
326 IAMTimelineObj * group
329 HRESULT RemGroupFromList(
330 IAMTimelineObj * group
333 HRESULT GetGroup(
334 [out] IAMTimelineObj ** group,
335 long index
338 HRESULT GetGroupCount(
339 long * count
342 HRESULT ClearAllGroups();
344 HRESULT GetInsertMode(
345 long * mode
348 HRESULT SetInsertMode(
349 long mode
352 HRESULT EnableTransitions(
353 BOOL enabled
356 HRESULT TransitionsEnabled(
357 BOOL * enabled
360 HRESULT EnableEffects(
361 BOOL enabled
364 HRESULT EffectsEnabled(
365 BOOL * enabled
368 HRESULT SetInterestRange(
369 REFERENCE_TIME start,
370 REFERENCE_TIME stop
373 HRESULT GetDuration(
374 REFERENCE_TIME * duration
377 HRESULT GetDuration2(
378 double * duration
381 HRESULT SetDefaultFPS(
382 double fps
385 HRESULT GetDefaultFPS(
386 double * fps
389 HRESULT IsDirty(
390 BOOL * dirty
393 HRESULT GetDirtyRange(
394 REFERENCE_TIME * start,
395 REFERENCE_TIME * stop
398 HRESULT GetCountOfType(
399 long group,
400 long * value,
401 long * value_with_comps,
402 TIMELINE_MAJOR_TYPE type
405 HRESULT ValidateSourceNames(
406 long flags,
407 IMediaLocator * override,
408 LONG_PTR notify_event
411 HRESULT SetDefaultTransition(
412 GUID * guid
415 HRESULT GetDefaultTransition(
416 GUID * guid
419 HRESULT SetDefaultEffect(
420 GUID * guid
423 HRESULT GetDefaultEffect(
424 GUID * guid
427 HRESULT SetDefaultTransitionB(
428 BSTR guidb
431 HRESULT GetDefaultTransitionB(
432 [out,retval] BSTR * guidb
435 HRESULT SetDefaultEffectB(
436 BSTR guidb
439 HRESULT GetDefaultEffectB(
440 [out,retval] BSTR * guidb
445 uuid(78530B75-61F9-11D2-8CAD-00A024580902)
447 coclass AMTimeline
449 [default] interface IAMTimeline;
450 interface IPersistStream;
451 interface IAMSetErrorLog;
455 object,
456 uuid(9EED4F00-B8A6-11d2-8023-00C0DF10D434),
457 odl,
458 pointer_default(unique)
460 interface IAMTimelineGroup : IUnknown
462 HRESULT SetTimeline(
463 IAMTimeline * timeline
466 HRESULT GetTimeline(
467 [out] IAMTimeline ** timeline
470 HRESULT GetPriority(
471 long * priority
474 HRESULT GetMediaType(
475 [out] AM_MEDIA_TYPE *
478 HRESULT SetMediaType(
479 [in] AM_MEDIA_TYPE *
482 HRESULT SetOutputFPS(
483 double fps
486 HRESULT GetOutputFPS(
487 double * fps
490 HRESULT SetGroupName(
491 BSTR name
494 HRESULT GetGroupName(
495 [out,retval] BSTR * name
498 HRESULT SetPreviewMode(
499 BOOL preview
502 HRESULT GetPreviewMode(
503 BOOL * preview
506 HRESULT SetMediaTypeForVB(
507 [in] long type
510 HRESULT GetOutputBuffering(
511 [out] int * buffer
514 HRESULT SetOutputBuffering(
515 [in] int buffer
518 HRESULT SetSmartRecompressFormat(
519 long * format
522 HRESULT GetSmartRecompressFormat(
523 long ** format
526 HRESULT IsSmartRecompressFormatSet(
527 BOOL * set
530 HRESULT IsRecompressFormatDirty(
531 BOOL * dirty
534 HRESULT ClearRecompressFormatDirty();
536 HRESULT SetRecompFormatFromSource(
537 IAMTimelineSrc * source
542 object,
543 local,
544 uuid(78530B77-61F9-11D2-8CAD-00A024580902),
545 odl,
546 pointer_default(unique)
548 interface IAMTimelineObj : IUnknown
550 HRESULT GetStartStop(
551 REFERENCE_TIME * start,
552 REFERENCE_TIME * stop
555 HRESULT GetStartStop2(
556 REFTIME * start, REFTIME * stop
559 HRESULT FixTimes(
560 REFERENCE_TIME * start, REFERENCE_TIME * stop
563 HRESULT FixTimes2(
564 REFTIME * start, REFTIME * stop
567 HRESULT SetStartStop(
568 REFERENCE_TIME start,
569 REFERENCE_TIME stop
572 HRESULT SetStartStop2(
573 REFTIME start,
574 REFTIME stop
577 HRESULT GetPropertySetter(
578 [out,retval] IPropertySetter ** setter
581 HRESULT SetPropertySetter(
582 IPropertySetter * setter
585 HRESULT GetSubObject(
586 [out,retval] IUnknown ** obj
589 HRESULT SetSubObject(
590 IUnknown * obj
593 HRESULT SetSubObjectGUID(
594 GUID guid
597 HRESULT SetSubObjectGUIDB(
598 BSTR guidb
601 HRESULT GetSubObjectGUID(
602 GUID * guid
605 HRESULT GetSubObjectGUIDB(
606 [out,retval] BSTR * guidb
609 HRESULT GetSubObjectLoaded(
610 BOOL * loaded
613 HRESULT GetTimelineType(
614 TIMELINE_MAJOR_TYPE * type
617 HRESULT SetTimelineType(
618 TIMELINE_MAJOR_TYPE type
621 HRESULT GetUserID(
622 long * id
625 HRESULT SetUserID(
626 long id
629 HRESULT GetGenID(
630 long * id
633 HRESULT GetUserName(
634 [out,retval] BSTR * name
637 HRESULT SetUserName(
638 BSTR name
641 HRESULT GetUserData(
642 BYTE * data,
643 long * size
646 HRESULT SetUserData(
647 BYTE * data,
648 long size
651 HRESULT GetMuted(
652 BOOL * muted
655 HRESULT SetMuted(
656 BOOL muted
659 HRESULT GetLocked(
660 BOOL * locked
663 HRESULT SetLocked(
664 BOOL locked
667 HRESULT GetDirtyRange(
668 REFERENCE_TIME * start,
669 REFERENCE_TIME * stop
672 HRESULT GetDirtyRange2(
673 REFTIME * start,
674 REFTIME * stop
677 HRESULT SetDirtyRange(
678 REFERENCE_TIME start,
679 REFERENCE_TIME stop
682 HRESULT SetDirtyRange2(
683 REFTIME start,
684 REFTIME stop
687 HRESULT ClearDirty();
689 HRESULT Remove();
691 HRESULT RemoveAll();
693 HRESULT GetTimelineNoRef(
694 IAMTimeline ** timeline
697 HRESULT GetGroupIBelongTo(
698 [out] IAMTimelineGroup ** group
701 HRESULT GetEmbedDepth(
702 long * depth
707 object,
708 uuid(78530B79-61F9-11D2-8CAD-00A024580902),
709 odl,
710 pointer_default(unique)
712 interface IAMTimelineSrc : IUnknown
714 HRESULT GetMediaTimes(
715 REFERENCE_TIME * start,
716 REFERENCE_TIME * stop
719 HRESULT GetMediaTimes2(
720 REFTIME * start,
721 REFTIME * stop
724 HRESULT ModifyStopTime(
725 REFERENCE_TIME stop
728 HRESULT ModifyStopTime2(
729 REFTIME stop
732 HRESULT FixMediaTimes(
733 REFERENCE_TIME * start,
734 REFERENCE_TIME * stop
737 HRESULT FixMediaTimes2(
738 REFTIME * start,
739 REFTIME * stop
742 HRESULT SetMediaTimes(
743 REFERENCE_TIME Start,
744 REFERENCE_TIME Stop
747 HRESULT SetMediaTimes2(
748 REFTIME Start,
749 REFTIME Stop
752 HRESULT SetMediaLength(
753 REFERENCE_TIME length
756 HRESULT SetMediaLength2(
757 REFTIME length
760 HRESULT GetMediaLength(
761 REFERENCE_TIME * length
764 HRESULT GetMediaLength2(
765 REFTIME * length
768 HRESULT GetMediaName(
769 [out,retval] BSTR * name
772 HRESULT SetMediaName(
773 BSTR name
776 HRESULT SpliceWithNext(
777 IAMTimelineObj * next
780 HRESULT GetStreamNumber(
781 long * num
784 HRESULT SetStreamNumber(
785 long num
788 HRESULT IsNormalRate(
789 BOOL * normal
792 HRESULT GetDefaultFPS(
793 double * fps
796 HRESULT SetDefaultFPS(
797 double fps
800 HRESULT GetStretchMode(
801 int * mode
804 HRESULT SetStretchMode(
805 int mode
809 enum
811 E_NOTINTREE = 0x80040400,
812 E_RENDER_ENGINE_IS_BROKEN = 0x80040401,
813 E_MUST_INIT_RENDERER = 0x80040402,
814 E_NOTDETERMINED = 0x80040403,
815 E_NO_TIMELINE = 0x80040404,
816 S_WARN_OUTPUTRESET = 40404