diff --git a/include/qedit.idl b/include/qedit.idl index 1cf099670ea..d42e691f528 100644 --- a/include/qedit.idl +++ b/include/qedit.idl @@ -167,6 +167,645 @@ coclass MediaDet [default] interface IMediaDet; }; +[ + object, + uuid(288581E0-66CE-11d2-918F-00C0DF10D434), + odl, + pointer_default(unique) +] +interface IMediaLocator : IUnknown +{ + HRESULT FindMediaFile( + BSTR input, + BSTR filter, + BSTR * output, + long flags + ); + + HRESULT AddFoundLocation( + BSTR dir + ); +}; + +typedef struct +{ + BSTR name; + DISPID dispID; + LONG nValues; +} DEXTER_PARAM; + +typedef struct +{ + VARIANT v; + REFERENCE_TIME rt; + DWORD dwInterp; +} DEXTER_VALUE; + +[ + object, + uuid(AE9472BD-B0C3-11D2-8D24-00A0C9441E20), + pointer_default(unique) +] +interface IPropertySetter : IUnknown +{ + HRESULT LoadXML( + [in] IUnknown * pxml + ); + + HRESULT PrintXML( + [out] char * xml, + [in] int size, + [out] int * printed, + [in] int indent + ); + + HRESULT CloneProps( + [out] IPropertySetter ** setter, + [in] REFERENCE_TIME start, + [in] REFERENCE_TIME stop + ); + + HRESULT AddProp( + [in] DEXTER_PARAM param, + [in] DEXTER_VALUE * value + ); + + HRESULT GetProps( + [out] LONG * params, + [out] DEXTER_PARAM ** param, + [out] DEXTER_VALUE ** value + ); + + HRESULT FreeProps( + [in] LONG params, + [in] DEXTER_PARAM * param, + [in] DEXTER_VALUE * value + ); + + HRESULT ClearProps(); + + HRESULT SaveToBlob( + [out] LONG * size, + [out] BYTE ** blob + ); + + HRESULT LoadFromBlob( + [in] LONG size, + [in] BYTE * blob + ); + + HRESULT SetProps( + [in] IUnknown * target, + [in] REFERENCE_TIME now + ); +}; + +[ + object, + uuid(E43E73A2-0EFA-11d3-9601-00A0C9441E20), + odl, + pointer_default(unique) +] +interface IAMErrorLog : IUnknown +{ + HRESULT LogError( + long severity, + BSTR error_str, + long error_code, + long hresult, + [in] VARIANT * extra + ); +}; + +[ + object, + uuid(963566DA-BE21-4eaf-88E9-35704F8F52A1), + odl, + pointer_default(unique) +] +interface IAMSetErrorLog : IUnknown +{ + [propget] HRESULT ErrorLog( + [out, retval] IAMErrorLog ** log + ); + + [propput] HRESULT ErrorLog( + [in] IAMErrorLog * log + ); +}; + +interface IAMTimeline; +interface IAMTimelineGroup; +interface IAMTimelineObj; +interface IAMTimelineSrc; + +typedef enum +{ + TIMELINE_MAJOR_TYPE_COMPOSITE = 1, + TIMELINE_MAJOR_TYPE_TRACK = 2, + TIMELINE_MAJOR_TYPE_SOURCE = 4, + TIMELINE_MAJOR_TYPE_TRANSITION = 8, + TIMELINE_MAJOR_TYPE_EFFECT = 16, + TIMELINE_MAJOR_TYPE_GROUP = 128 +} TIMELINE_MAJOR_TYPE; + +[ + object, + uuid(78530B74-61F9-11D2-8CAD-00A024580902), + odl, + pointer_default(unique) +] +interface IAMTimeline : IUnknown +{ + HRESULT CreateEmptyNode( + [out] IAMTimelineObj ** obj, + TIMELINE_MAJOR_TYPE type + ); + + HRESULT AddGroup( + IAMTimelineObj * group + ); + + HRESULT RemGroupFromList( + IAMTimelineObj * group + ); + + HRESULT GetGroup( + [out] IAMTimelineObj ** group, + long index + ); + + HRESULT GetGroupCount( + long * count + ); + + HRESULT ClearAllGroups(); + + HRESULT GetInsertMode( + long * mode + ); + + HRESULT SetInsertMode( + long mode + ); + + HRESULT EnableTransitions( + BOOL enabled + ); + + HRESULT TransitionsEnabled( + BOOL * enabled + ); + + HRESULT EnableEffects( + BOOL enabled + ); + + HRESULT EffectsEnabled( + BOOL * enabled + ); + + HRESULT SetInterestRange( + REFERENCE_TIME start, + REFERENCE_TIME stop + ); + + HRESULT GetDuration( + REFERENCE_TIME * duration + ); + + HRESULT GetDuration2( + double * duration + ); + + HRESULT SetDefaultFPS( + double fps + ); + + HRESULT GetDefaultFPS( + double * fps + ); + + HRESULT IsDirty( + BOOL * dirty + ); + + HRESULT GetDirtyRange( + REFERENCE_TIME * start, + REFERENCE_TIME * stop + ); + + HRESULT GetCountOfType( + long group, + long * value, + long * value_with_comps, + TIMELINE_MAJOR_TYPE type + ); + + HRESULT ValidateSourceNames( + long flags, + IMediaLocator * override, + LONG_PTR notify_event + ); + + HRESULT SetDefaultTransition( + GUID * guid + ); + + HRESULT GetDefaultTransition( + GUID * guid + ); + + HRESULT SetDefaultEffect( + GUID * guid + ); + + HRESULT GetDefaultEffect( + GUID * guid + ); + + HRESULT SetDefaultTransitionB( + BSTR guidb + ); + + HRESULT GetDefaultTransitionB( + [out,retval] BSTR * guidb + ); + + HRESULT SetDefaultEffectB( + BSTR guidb + ); + + HRESULT GetDefaultEffectB( + [out,retval] BSTR * guidb + ); +}; + +[ + uuid(78530B75-61F9-11D2-8CAD-00A024580902) +] +coclass AMTimeline +{ + [default] interface IAMTimeline; + interface IPersistStream; + interface IAMSetErrorLog; +}; + +[ + object, + uuid(9EED4F00-B8A6-11d2-8023-00C0DF10D434), + odl, + pointer_default(unique) +] +interface IAMTimelineGroup : IUnknown +{ + HRESULT SetTimeline( + IAMTimeline * timeline + ); + + HRESULT GetTimeline( + [out] IAMTimeline ** timeline + ); + + HRESULT GetPriority( + long * priority + ); + + HRESULT GetMediaType( + [out] AM_MEDIA_TYPE * + ); + + HRESULT SetMediaType( + [in] AM_MEDIA_TYPE * + ); + + HRESULT SetOutputFPS( + double fps + ); + + HRESULT GetOutputFPS( + double * fps + ); + + HRESULT SetGroupName( + BSTR name + ); + + HRESULT GetGroupName( + [out,retval] BSTR * name + ); + + HRESULT SetPreviewMode( + BOOL preview + ); + + HRESULT GetPreviewMode( + BOOL * preview + ); + + HRESULT SetMediaTypeForVB( + [in] long type + ); + + HRESULT GetOutputBuffering( + [out] int * buffer + ); + + HRESULT SetOutputBuffering( + [in] int buffer + ); + + HRESULT SetSmartRecompressFormat( + long * format + ); + + HRESULT GetSmartRecompressFormat( + long ** format + ); + + HRESULT IsSmartRecompressFormatSet( + BOOL * set + ); + + HRESULT IsRecompressFormatDirty( + BOOL * dirty + ); + + HRESULT ClearRecompressFormatDirty(); + + HRESULT SetRecompFormatFromSource( + IAMTimelineSrc * source + ); +}; + +[ + object, + local, + uuid(78530B77-61F9-11D2-8CAD-00A024580902), + odl, + pointer_default(unique) +] +interface IAMTimelineObj : IUnknown +{ + HRESULT GetStartStop( + REFERENCE_TIME * start, + REFERENCE_TIME * stop + ); + + HRESULT GetStartStop2( + REFTIME * start, REFTIME * stop + ); + + HRESULT FixTimes( + REFERENCE_TIME * start, REFERENCE_TIME * stop + ); + + HRESULT FixTimes2( + REFTIME * start, REFTIME * stop + ); + + HRESULT SetStartStop( + REFERENCE_TIME start, + REFERENCE_TIME stop + ); + + HRESULT SetStartStop2( + REFTIME start, + REFTIME stop + ); + + HRESULT GetPropertySetter( + [out,retval] IPropertySetter ** setter + ); + + HRESULT SetPropertySetter( + IPropertySetter * setter + ); + + HRESULT GetSubObject( + [out,retval] IUnknown ** obj + ); + + HRESULT SetSubObject( + IUnknown * obj + ); + + HRESULT SetSubObjectGUID( + GUID guid + ); + + HRESULT SetSubObjectGUIDB( + BSTR guidb + ); + + HRESULT GetSubObjectGUID( + GUID * guid + ); + + HRESULT GetSubObjectGUIDB( + [out,retval] BSTR * guidb + ); + + HRESULT GetSubObjectLoaded( + BOOL * loaded + ); + + HRESULT GetTimelineType( + TIMELINE_MAJOR_TYPE * type + ); + + HRESULT SetTimelineType( + TIMELINE_MAJOR_TYPE type + ); + + HRESULT GetUserID( + long * id + ); + + HRESULT SetUserID( + long id + ); + + HRESULT GetGenID( + long * id + ); + + HRESULT GetUserName( + [out,retval] BSTR * name + ); + + HRESULT SetUserName( + BSTR name + ); + + HRESULT GetUserData( + BYTE * data, + long * size + ); + + HRESULT SetUserData( + BYTE * data, + long size + ); + + HRESULT GetMuted( + BOOL * muted + ); + + HRESULT SetMuted( + BOOL muted + ); + + HRESULT GetLocked( + BOOL * locked + ); + + HRESULT SetLocked( + BOOL locked + ); + + HRESULT GetDirtyRange( + REFERENCE_TIME * start, + REFERENCE_TIME * stop + ); + + HRESULT GetDirtyRange2( + REFTIME * start, + REFTIME * stop + ); + + HRESULT SetDirtyRange( + REFERENCE_TIME start, + REFERENCE_TIME stop + ); + + HRESULT SetDirtyRange2( + REFTIME start, + REFTIME stop + ); + + HRESULT ClearDirty(); + + HRESULT Remove(); + + HRESULT RemoveAll(); + + HRESULT GetTimelineNoRef( + IAMTimeline ** timeline + ); + + HRESULT GetGroupIBelongTo( + [out] IAMTimelineGroup ** group + ); + + HRESULT GetEmbedDepth( + long * depth + ); +}; + +[ + object, + uuid(78530B79-61F9-11D2-8CAD-00A024580902), + odl, + pointer_default(unique) +] +interface IAMTimelineSrc : IUnknown +{ + HRESULT GetMediaTimes( + REFERENCE_TIME * start, + REFERENCE_TIME * stop + ); + + HRESULT GetMediaTimes2( + REFTIME * start, + REFTIME * stop + ); + + HRESULT ModifyStopTime( + REFERENCE_TIME stop + ); + + HRESULT ModifyStopTime2( + REFTIME stop + ); + + HRESULT FixMediaTimes( + REFERENCE_TIME * start, + REFERENCE_TIME * stop + ); + + HRESULT FixMediaTimes2( + REFTIME * start, + REFTIME * stop + ); + + HRESULT SetMediaTimes( + REFERENCE_TIME Start, + REFERENCE_TIME Stop + ); + + HRESULT SetMediaTimes2( + REFTIME Start, + REFTIME Stop + ); + + HRESULT SetMediaLength( + REFERENCE_TIME length + ); + + HRESULT SetMediaLength2( + REFTIME length + ); + + HRESULT GetMediaLength( + REFERENCE_TIME * length + ); + + HRESULT GetMediaLength2( + REFTIME * length + ); + + HRESULT GetMediaName( + [out,retval] BSTR * name + ); + + HRESULT SetMediaName( + BSTR name + ); + + HRESULT SpliceWithNext( + IAMTimelineObj * next + ); + + HRESULT GetStreamNumber( + long * num + ); + + HRESULT SetStreamNumber( + long num + ); + + HRESULT IsNormalRate( + BOOL * normal + ); + + HRESULT GetDefaultFPS( + double * fps + ); + + HRESULT SetDefaultFPS( + double fps + ); + + HRESULT GetStretchMode( + int * mode + ); + + HRESULT SetStretchMode( + int mode + ); +}; + enum { E_NOTINTREE = 0x80040400,