Commits

Jason R. Coombs  committed 614fdc8

DirectShow typelib generation is now built-in to the api package

  • Participants
  • Parent commits b349da7

Comments (0)

Files changed (8)

File DirectShow/DexterLib.idl

+// Generated .IDL file (by the OLE/COM Object Viewer)
+// 
+// typelib filename: qedit.dll
+
+[
+  uuid(78530B68-61F9-11D2-8CAD-00A024580902),
+  version(1.0),
+  helpstring("Dexter 1.0 Type Library")
+]
+library DexterLib
+{
+    // TLib :     // TLib : OLE Automation : {00020430-0000-0000-C000-000000000046}
+    importlib("STDOLE2.TLB");
+    importlib("DirectShow.tlb");
+
+    // Forward declare all types defined in this typelib
+    interface IResize;
+    interface IAMTimeline;
+    interface IAMTimelineObj;
+    interface IPropertySetter;
+    interface IAMTimelineGroup;
+    interface IAMTimelineSrc;
+    interface IMediaLocator;
+    interface IAMSetErrorLog;
+    interface IAMErrorLog;
+    interface IAMTimelineEffectable;
+    interface IAMTimelineSplittable;
+    interface IAMTimelineTrack;
+    interface IAMTimelineTransable;
+    interface IAMTimelineVirtualTrack;
+    interface IAMTimelineComp;
+    interface IAMTimelineTrans;
+    interface IAMTimelineEffect;
+    interface IErrorLog;
+    interface IRenderEngine;
+    interface IGrfCache;
+    interface IRenderEngine2;
+    interface ISmartRenderEngine;
+    interface IFindCompressorCB;
+    interface IXml2Dex;
+    interface IMediaDet;
+    interface ISampleGrabber;
+    interface ISampleGrabberCB;
+    interface IDxtCompositor;
+    interface IDXEffect;
+    interface IDxtAlphaSetter;
+    interface IDxtJpeg;
+    interface IDxtKey;
+
+    typedef enum {
+        PINDIR_INPUT = 0,
+        PINDIR_OUTPUT = 1
+    } _PinDirection;
+
+    typedef struct tag_PinInfo {
+                
+IBaseFilter* pFilter;
+                
+_PinDirection dir;
+                
+unsigned short achName[128];
+    } _PinInfo;
+
+    typedef enum {
+        State_Stopped = 0,
+        State_Paused = 1,
+        State_Running = 2
+    } _FilterState;
+
+    typedef struct tag_FilterInfo {
+                
+unsigned short achName[128];
+                
+IFilterGraph* pGraph;
+    } _FilterInfo;
+
+    typedef struct tag_AMMediaType {
+                
+GUID majortype;
+                
+GUID subtype;
+                
+long bFixedSizeSamples;
+                
+long bTemporalCompression;
+                
+unsigned long lSampleSize;
+                
+GUID formattype;
+                
+IUnknown* pUnk;
+                
+unsigned long cbFormat;
+                
+unsigned char* pbFormat;
+    } _AMMediaType;
+
+    typedef [public]
+    __MIDL___MIDL_itf_qedit_0000_0002 DEXTER_PARAM;
+
+    typedef struct tag__MIDL___MIDL_itf_qedit_0000_0002 {
+                
+BSTR Name;
+                
+long dispID;
+                
+long nValues;
+    } __MIDL___MIDL_itf_qedit_0000_0002;
+
+    typedef [public]
+    __MIDL___MIDL_itf_qedit_0000_0003 DEXTER_VALUE;
+
+    typedef struct tag__MIDL___MIDL_itf_qedit_0000_0003 {
+                
+VARIANT v;
+                
+int64 rt;
+                
+unsigned long dwInterp;
+    } __MIDL___MIDL_itf_qedit_0000_0003;
+
+    typedef [public]
+    __MIDL___MIDL_itf_qedit_0000_0007 TIMELINE_MAJOR_TYPE;
+
+    [
+      odl,
+      uuid(4ADA63A0-72D5-11D2-952A-0060081840BC),
+      helpstring("IResize Interface")
+    ]
+    interface IResize : IUnknown {
+        HRESULT _stdcall get_Size(
+                        [out] int* piHeight, 
+                        [out] int* piWidth, 
+                        [out] long* pFlag);
+        HRESULT _stdcall get_InputSize(
+                        [out] int* piHeight, 
+                        [out] int* piWidth);
+        HRESULT _stdcall put_Size(
+                        [in] int Height, 
+                        [in] int Width, 
+                        [in] long Flag);
+        HRESULT _stdcall get_MediaType([out] _AMMediaType* pmt);
+        HRESULT _stdcall put_MediaType([in] _AMMediaType* pmt);
+    };
+
+    [
+      uuid(78530B75-61F9-11D2-8CAD-00A024580902),
+      helpstring("AMTimeline Class")
+    ]
+    coclass AMTimeline {
+        [default] interface IAMTimeline;
+        interface IPersistStream;
+        interface IAMSetErrorLog;
+    };
+
+    [
+      odl,
+      uuid(78530B74-61F9-11D2-8CAD-00A024580902),
+      helpstring("IAMTimeline Interface")
+    ]
+    interface IAMTimeline : IUnknown {
+        [helpstring("method CreateEmptyNode")]
+        HRESULT _stdcall CreateEmptyNode(
+                        [out] IAMTimelineObj** ppObj, 
+                        TIMELINE_MAJOR_TYPE Type);
+        HRESULT _stdcall AddGroup(IAMTimelineObj* pGroup);
+        HRESULT _stdcall RemGroupFromList(IAMTimelineObj* pGroup);
+        HRESULT _stdcall GetGroup(
+                        [out] IAMTimelineObj** ppGroup, 
+                        long WhichGroup);
+        HRESULT _stdcall GetGroupCount(long* pCount);
+        HRESULT _stdcall ClearAllGroups();
+        HRESULT _stdcall GetInsertMode(long* pMode);
+        [helpstring("method SetInsertMode")]
+        HRESULT _stdcall SetInsertMode(long Mode);
+        [helpstring("method EnableTransitions")]
+        HRESULT _stdcall EnableTransitions(long fEnabled);
+        [helpstring("method TransitionsEnabled")]
+        HRESULT _stdcall TransitionsEnabled(long* pfEnabled);
+        [helpstring("method EnableEffects")]
+        HRESULT _stdcall EnableEffects(long fEnabled);
+        [helpstring("method EffectsEnabled")]
+        HRESULT _stdcall EffectsEnabled(long* pfEnabled);
+        [helpstring("method SetInterestRange")]
+        HRESULT _stdcall SetInterestRange(
+                        int64 Start, 
+                        int64 Stop);
+        [helpstring("method GetDuration")]
+        HRESULT _stdcall GetDuration(int64* pDuration);
+        [helpstring("method GetDuration2")]
+        HRESULT _stdcall GetDuration2(double* pDuration);
+        [helpstring("method SetDefaultFPS")]
+        HRESULT _stdcall SetDefaultFPS(double FPS);
+        [helpstring("method GetDefaultFPS")]
+        HRESULT _stdcall GetDefaultFPS(double* pFPS);
+        [helpstring("method IsDirty")]
+        HRESULT _stdcall IsDirty(long* pDirty);
+        [helpstring("method GetDirtyRange")]
+        HRESULT _stdcall GetDirtyRange(
+                        int64* pStart, 
+                        int64* pStop);
+        [helpstring("method GetCountOfType")]
+        HRESULT _stdcall GetCountOfType(
+                        long Group, 
+                        long* pVal, 
+                        long* pValWithComps, 
+                        TIMELINE_MAJOR_TYPE majortype);
+        HRESULT _stdcall ValidateSourceNames(
+                        long ValidateFlags, 
+                        IMediaLocator* pOverride, 
+                        LONG_PTR NotifyEventHandle);
+        HRESULT _stdcall SetDefaultTransition(GUID* pGuid);
+        HRESULT _stdcall GetDefaultTransition(GUID* pGuid);
+        HRESULT _stdcall SetDefaultEffect(GUID* pGuid);
+        HRESULT _stdcall GetDefaultEffect(GUID* pGuid);
+        HRESULT _stdcall SetDefaultTransitionB(BSTR pGuid);
+        HRESULT _stdcall GetDefaultTransitionB([out, retval] BSTR* pGuid);
+        HRESULT _stdcall SetDefaultEffectB(BSTR pGuid);
+        HRESULT _stdcall GetDefaultEffectB([out, retval] BSTR* pGuid);
+    };
+
+    [
+      odl,
+      uuid(78530B77-61F9-11D2-8CAD-00A024580902),
+      helpstring("IAMTimelineObj Interface")
+    ]
+    interface IAMTimelineObj : IUnknown {
+        [helpstring("method GetStartStop")]
+        HRESULT _stdcall GetStartStop(
+                        int64* pStart, 
+                        int64* pStop);
+        [helpstring("method GetStartStop2")]
+        HRESULT _stdcall GetStartStop2(
+                        double* pStart, 
+                        double* pStop);
+        [helpstring("method FixTimes")]
+        HRESULT _stdcall FixTimes(
+                        int64* pStart, 
+                        int64* pStop);
+        [helpstring("method FixTimes2")]
+        HRESULT _stdcall FixTimes2(
+                        double* pStart, 
+                        double* pStop);
+        [helpstring("method SetStartStop")]
+        HRESULT _stdcall SetStartStop(
+                        int64 Start, 
+                        int64 Stop);
+        [helpstring("method SetStartStop2")]
+        HRESULT _stdcall SetStartStop2(
+                        double Start, 
+                        double Stop);
+        [helpstring("method GetPropertySetter")]
+        HRESULT _stdcall GetPropertySetter([out, retval] IPropertySetter** pVal);
+        [helpstring("method SetPropertySetter")]
+        HRESULT _stdcall SetPropertySetter(IPropertySetter* newVal);
+        [helpstring("method GetSubObject")]
+        HRESULT _stdcall GetSubObject([out, retval] IUnknown** pVal);
+        [helpstring("method SetSubObject")]
+        HRESULT _stdcall SetSubObject(IUnknown* newVal);
+        [helpstring("method SetSubObjectGUID")]
+        HRESULT _stdcall SetSubObjectGUID(GUID newVal);
+        [helpstring("method SetSubObjectGUIDByBSTR")]
+        HRESULT _stdcall SetSubObjectGUIDB(BSTR newVal);
+        [helpstring("method GetSubObjectGUID")]
+        HRESULT _stdcall GetSubObjectGUID(GUID* pVal);
+        [helpstring("method GetSubObjectGUIDByBSTR")]
+        HRESULT _stdcall GetSubObjectGUIDB([out, retval] BSTR* pVal);
+        [helpstring("method GetSubObjectLoaded")]
+        HRESULT _stdcall GetSubObjectLoaded(long* pVal);
+        [helpstring("method GetTimelineType")]
+        HRESULT _stdcall GetTimelineType(TIMELINE_MAJOR_TYPE* pVal);
+        [helpstring("method SetTimelineType")]
+        HRESULT _stdcall SetTimelineType(TIMELINE_MAJOR_TYPE newVal);
+        [helpstring("method GetUserID")]
+        HRESULT _stdcall GetUserID(long* pVal);
+        [helpstring("method SetUserID")]
+        HRESULT _stdcall SetUserID(long newVal);
+        [helpstring("method GetGenID")]
+        HRESULT _stdcall GetGenID(long* pVal);
+        [helpstring("method GetUserName")]
+        HRESULT _stdcall GetUserName([out, retval] BSTR* pVal);
+        [helpstring("method SetUserName")]
+        HRESULT _stdcall SetUserName(BSTR newVal);
+        [helpstring("method GetUserData")]
+        HRESULT _stdcall GetUserData(
+                        unsigned char* pData, 
+                        long* pSize);
+        [helpstring("method SetUserData")]
+        HRESULT _stdcall SetUserData(
+                        unsigned char* pData, 
+                        long Size);
+        [helpstring("method GetMuted")]
+        HRESULT _stdcall GetMuted(long* pVal);
+        [helpstring("method SetMuted")]
+        HRESULT _stdcall SetMuted(long newVal);
+        [helpstring("method GetLocked")]
+        HRESULT _stdcall GetLocked(long* pVal);
+        [helpstring("method SetLocked")]
+        HRESULT _stdcall SetLocked(long newVal);
+        [helpstring("method GetDirtyRange")]
+        HRESULT _stdcall GetDirtyRange(
+                        int64* pStart, 
+                        int64* pStop);
+        [helpstring("method GetDirtyRange")]
+        HRESULT _stdcall GetDirtyRange2(
+                        double* pStart, 
+                        double* pStop);
+        [helpstring("method SetDirtyRange")]
+        HRESULT _stdcall SetDirtyRange(
+                        int64 Start, 
+                        int64 Stop);
+        [helpstring("method SetDirtyRange")]
+        HRESULT _stdcall SetDirtyRange2(
+                        double Start, 
+                        double Stop);
+        [helpstring("method ClearDirty")]
+        HRESULT _stdcall ClearDirty();
+        [helpstring("method Remove")]
+        HRESULT _stdcall Remove();
+        [helpstring("method RemoveAll")]
+        HRESULT _stdcall RemoveAll();
+        HRESULT _stdcall GetTimelineNoRef(IAMTimeline** ppResult);
+        HRESULT _stdcall GetGroupIBelongTo([out] IAMTimelineGroup** ppGroup);
+        HRESULT _stdcall GetEmbedDepth(long* pVal);
+    };
+
+    [
+      odl,
+      uuid(AE9472BD-B0C3-11D2-8D24-00A0C9441E20),
+      helpstring("IPropertySetter Interface")
+    ]
+    interface IPropertySetter : IUnknown {
+        HRESULT _stdcall LoadXML([in] IUnknown* pxml);
+        HRESULT _stdcall PrintXML(
+                        [out] unsigned char* pszXML, 
+                        [in] int cbXML, 
+                        [out] int* pcbPrinted, 
+                        [in] int indent);
+        HRESULT _stdcall CloneProps(
+                        [out] IPropertySetter** ppSetter, 
+                        [in] int64 rtStart, 
+                        [in] int64 rtStop);
+        HRESULT _stdcall AddProp(
+                        [in] DEXTER_PARAM Param, 
+                        [in] DEXTER_VALUE* paValue);
+        HRESULT _stdcall GetProps(
+                        [out] long* pcParams, 
+                        [out] DEXTER_PARAM** paParam, 
+                        [out] DEXTER_VALUE** paValue);
+        HRESULT _stdcall FreeProps(
+                        [in] long cParams, 
+                        [in] DEXTER_PARAM* paParam, 
+                        [in] DEXTER_VALUE* paValue);
+        HRESULT _stdcall ClearProps();
+        HRESULT _stdcall SaveToBlob(
+                        [out] long* pcSize, 
+                        [out] unsigned char** ppb);
+        HRESULT _stdcall LoadFromBlob(
+                        [in] long cSize, 
+                        [in] unsigned char* pb);
+        HRESULT _stdcall SetProps(
+                        [in] IUnknown* pTarget, 
+                        [in] int64 rtNow);
+        HRESULT _stdcall PrintXMLW(
+                        [out] unsigned short* pszXML, 
+                        [in] int cchXML, 
+                        [out] int* pcchPrinted, 
+                        [in] int indent);
+    };
+
+    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
+    } __MIDL___MIDL_itf_qedit_0000_0007;
+
+    [
+      odl,
+      uuid(9EED4F00-B8A6-11D2-8023-00C0DF10D434),
+      helpstring("IAMTimelineGroup Interface")
+    ]
+    interface IAMTimelineGroup : IUnknown {
+        [helpstring("method SetTimeline")]
+        HRESULT _stdcall SetTimeline(IAMTimeline* pTimeline);
+        [helpstring("method GetTimeline")]
+        HRESULT _stdcall GetTimeline([out] IAMTimeline** ppTimeline);
+        [helpstring("method GetPriority")]
+        HRESULT _stdcall GetPriority(long* pPriority);
+        [helpstring("method GetMediaType")]
+        HRESULT _stdcall GetMediaType([out] _AMMediaType* __MIDL_0043);
+        [helpstring("method SetMediaType")]
+        HRESULT _stdcall SetMediaType([in] _AMMediaType* __MIDL_0044);
+        [helpstring("method SetOutputFPS")]
+        HRESULT _stdcall SetOutputFPS(double FPS);
+        [helpstring("method GetOutputFPS")]
+        HRESULT _stdcall GetOutputFPS(double* pFPS);
+        [helpstring("method SetGroupName")]
+        HRESULT _stdcall SetGroupName(BSTR pGroupName);
+        [helpstring("method GetGroupName")]
+        HRESULT _stdcall GetGroupName([out, retval] BSTR* pGroupName);
+        [helpstring("method SetPreviewMode")]
+        HRESULT _stdcall SetPreviewMode(long fPreview);
+        [helpstring("method GetPreviewMode")]
+        HRESULT _stdcall GetPreviewMode(long* pfPreview);
+        [helpstring("method SetMediaTypeForVB")]
+        HRESULT _stdcall SetMediaTypeForVB([in] long Val);
+        [helpstring("method GetOutputBuffering")]
+        HRESULT _stdcall GetOutputBuffering([out] int* pnBuffer);
+        [helpstring("method SetOutputBuffering")]
+        HRESULT _stdcall SetOutputBuffering([in] int nBuffer);
+        HRESULT _stdcall SetSmartRecompressFormat(long* pFormat);
+        HRESULT _stdcall GetSmartRecompressFormat(long** ppFormat);
+        HRESULT _stdcall IsSmartRecompressFormatSet(long* pVal);
+        HRESULT _stdcall IsRecompressFormatDirty(long* pVal);
+        HRESULT _stdcall ClearRecompressFormatDirty();
+        HRESULT _stdcall SetRecompFormatFromSource(IAMTimelineSrc* pSource);
+    };
+
+    [
+      odl,
+      uuid(78530B79-61F9-11D2-8CAD-00A024580902),
+      helpstring("IAMTimelineSrc Interface")
+    ]
+    interface IAMTimelineSrc : IUnknown {
+        [helpstring("method GetMediaTimes")]
+        HRESULT _stdcall GetMediaTimes(
+                        int64* pStart, 
+                        int64* pStop);
+        [helpstring("method GetMediaTimes2")]
+        HRESULT _stdcall GetMediaTimes2(
+                        double* pStart, 
+                        double* pStop);
+        [helpstring("method ModifyStopTime")]
+        HRESULT _stdcall ModifyStopTime(int64 Stop);
+        [helpstring("method ModifyStopTime2")]
+        HRESULT _stdcall ModifyStopTime2(double Stop);
+        [helpstring("method FixMediaTimes")]
+        HRESULT _stdcall FixMediaTimes(
+                        int64* pStart, 
+                        int64* pStop);
+        [helpstring("method FixMediaTimes2")]
+        HRESULT _stdcall FixMediaTimes2(
+                        double* pStart, 
+                        double* pStop);
+        [helpstring("method SetMediaTimes")]
+        HRESULT _stdcall SetMediaTimes(
+                        int64 Start, 
+                        int64 Stop);
+        [helpstring("method SetMediaTimes2")]
+        HRESULT _stdcall SetMediaTimes2(
+                        double Start, 
+                        double Stop);
+        [helpstring("method SetMediaLength")]
+        HRESULT _stdcall SetMediaLength(int64 Length);
+        [helpstring("method SetMediaLength2")]
+        HRESULT _stdcall SetMediaLength2(double Length);
+        [helpstring("method GetMediaLength")]
+        HRESULT _stdcall GetMediaLength(int64* pLength);
+        [helpstring("method GetMediaLength2")]
+        HRESULT _stdcall GetMediaLength2(double* pLength);
+        [helpstring("method GetMediaName")]
+        HRESULT _stdcall GetMediaName([out, retval] BSTR* pVal);
+        [helpstring("method SetMediaName")]
+        HRESULT _stdcall SetMediaName(BSTR newVal);
+        [helpstring("method SpliceWithNext")]
+        HRESULT _stdcall SpliceWithNext(IAMTimelineObj* pNext);
+        [helpstring("method GetStreamNumber")]
+        HRESULT _stdcall GetStreamNumber(long* pVal);
+        [helpstring("method SetStreamNumber")]
+        HRESULT _stdcall SetStreamNumber(long Val);
+        HRESULT _stdcall IsNormalRate(long* pVal);
+        [helpstring("method GetDefaultFPS")]
+        HRESULT _stdcall GetDefaultFPS(double* pFPS);
+        [helpstring("method SetDefaultFPS")]
+        HRESULT _stdcall SetDefaultFPS(double FPS);
+        [helpstring("method GetStretchMode")]
+        HRESULT _stdcall GetStretchMode(int* pnStretchMode);
+        [helpstring("method SetStretchMode")]
+        HRESULT _stdcall SetStretchMode(int nStretchMode);
+    };
+
+    [
+      odl,
+      uuid(288581E0-66CE-11D2-918F-00C0DF10D434),
+      helpstring("IMediaLocator Interface")
+    ]
+    interface IMediaLocator : IUnknown {
+        HRESULT _stdcall FindMediaFile(
+                        BSTR Input, 
+                        BSTR FilterString, 
+                        BSTR* pOutput, 
+                        long Flags);
+        HRESULT _stdcall AddFoundLocation(BSTR DirectoryName);
+    };
+
+    typedef [public]
+    long LONG_PTR;
+
+
+    [
+      odl,
+      uuid(963566DA-BE21-4EAF-88E9-35704F8F52A1),
+      helpstring("IAMSetErrorLog Interface")
+    ]
+    interface IAMSetErrorLog : IUnknown {
+        [propget, helpstring("property ErrorLog")]
+        HRESULT _stdcall ErrorLog([out, retval] IAMErrorLog** pVal);
+        [propput, helpstring("property ErrorLog")]
+        HRESULT _stdcall ErrorLog([in] IAMErrorLog* pVal);
+    };
+
+    [
+      odl,
+      uuid(E43E73A2-0EFA-11D3-9601-00A0C9441E20),
+      helpstring("IAMErrorLog Interface")
+    ]
+    interface IAMErrorLog : IUnknown {
+        [helpstring("method LogError")]
+        HRESULT _stdcall LogError(
+                        long Severity, 
+                        BSTR pErrorString, 
+                        long ErrorCode, 
+                        long hresult, 
+                        [in] VARIANT* pExtraInfo);
+    };
+
+    [
+      uuid(78530B78-61F9-11D2-8CAD-00A024580902),
+      helpstring("IAMTimelineObj Class")
+    ]
+    coclass AMTimelineObj {
+        [default] interface IAMTimelineObj;
+    };
+
+    [
+      uuid(78530B7A-61F9-11D2-8CAD-00A024580902),
+      helpstring("IAMTimelineSrc Class")
+    ]
+    coclass AMTimelineSrc {
+        [default] interface IAMTimelineSrc;
+        interface IAMTimelineObj;
+        interface IAMTimelineEffectable;
+        interface IAMTimelineSplittable;
+    };
+
+    [
+      odl,
+      uuid(EAE58537-622E-11D2-8CAD-00A024580902),
+      helpstring("IAMTimelineEffectable Interface")
+    ]
+    interface IAMTimelineEffectable : IUnknown {
+        [helpstring("method EffectInsBefore")]
+        HRESULT _stdcall EffectInsBefore(
+                        IAMTimelineObj* pFX, 
+                        long priority);
+        [helpstring("method EffectSwapPriorities")]
+        HRESULT _stdcall EffectSwapPriorities(
+                        long PriorityA, 
+                        long PriorityB);
+        [helpstring("method EffectGetCount")]
+        HRESULT _stdcall EffectGetCount(long* pCount);
+        [helpstring("method GetEffect")]
+        HRESULT _stdcall GetEffect(
+                        [out] IAMTimelineObj** ppFx, 
+                        long Which);
+    };
+
+    [
+      odl,
+      uuid(A0F840A0-D590-11D2-8D55-00A0C9441E20),
+      helpstring("IAMTimelineSplittable Interface")
+    ]
+    interface IAMTimelineSplittable : IUnknown {
+        HRESULT _stdcall SplitAt(int64 Time);
+        HRESULT _stdcall SplitAt2(double Time);
+    };
+
+    [
+      uuid(8F6C3C50-897B-11D2-8CFB-00A0C9441E20)
+    ]
+    coclass AMTimelineTrack {
+        [default] interface IAMTimelineTrack;
+        interface IAMTimelineObj;
+        interface IAMTimelineEffectable;
+        interface IAMTimelineTransable;
+        interface IAMTimelineVirtualTrack;
+        interface IAMTimelineSplittable;
+    };
+
+    [
+      odl,
+      uuid(EAE58538-622E-11D2-8CAD-00A024580902),
+      helpstring("IAMTimelineTrack Interface")
+    ]
+    interface IAMTimelineTrack : IUnknown {
+        [helpstring("method SrcAdd")]
+        HRESULT _stdcall SrcAdd(IAMTimelineObj* pSource);
+        [helpstring("method GetNextSrc")]
+        HRESULT _stdcall GetNextSrc(
+                        [out] IAMTimelineObj** ppSrc, 
+                        int64* pInOut);
+        [helpstring("method GetNextSrc2")]
+        HRESULT _stdcall GetNextSrc2(
+                        [out] IAMTimelineObj** ppSrc, 
+                        double* pInOut);
+        [helpstring("method MoveEverythingBy")]
+        HRESULT _stdcall MoveEverythingBy(
+                        int64 Start, 
+                        int64 MoveBy);
+        [helpstring("method MoveEverythingBy2")]
+        HRESULT _stdcall MoveEverythingBy2(
+                        double Start, 
+                        double MoveBy);
+        [helpstring("method GetSourcesCount")]
+        HRESULT _stdcall GetSourcesCount(long* pVal);
+        [helpstring("method AreYouBlank")]
+        HRESULT _stdcall AreYouBlank(long* pVal);
+        [helpstring("method GetSrcAtTime")]
+        HRESULT _stdcall GetSrcAtTime(
+                        [out] IAMTimelineObj** ppSrc, 
+                        int64 Time, 
+                        long SearchDirection);
+        [helpstring("method GetSrcAtTime2")]
+        HRESULT _stdcall GetSrcAtTime2(
+                        [out] IAMTimelineObj** ppSrc, 
+                        double Time, 
+                        long SearchDirection);
+        HRESULT _stdcall InsertSpace(
+                        int64 rtStart, 
+                        int64 rtEnd);
+        HRESULT _stdcall InsertSpace2(
+                        double rtStart, 
+                        double rtEnd);
+        HRESULT _stdcall ZeroBetween(
+                        int64 rtStart, 
+                        int64 rtEnd);
+        HRESULT _stdcall ZeroBetween2(
+                        double rtStart, 
+                        double rtEnd);
+        HRESULT _stdcall GetNextSrcEx(
+                        IAMTimelineObj* pLast, 
+                        [out] IAMTimelineObj** ppNext);
+    };
+
+    [
+      odl,
+      uuid(378FA386-622E-11D2-8CAD-00A024580902),
+      helpstring("IAMTimelineTransable Interface")
+    ]
+    interface IAMTimelineTransable : IUnknown {
+        [helpstring("method TransAdd")]
+        HRESULT _stdcall TransAdd(IAMTimelineObj* pTrans);
+        [helpstring("method TransGetCount")]
+        HRESULT _stdcall TransGetCount(long* pCount);
+        [helpstring("method GetNextTrans")]
+        HRESULT _stdcall GetNextTrans(
+                        [out] IAMTimelineObj** ppTrans, 
+                        int64* pInOut);
+        [helpstring("method GetNextTrans2")]
+        HRESULT _stdcall GetNextTrans2(
+                        [out] IAMTimelineObj** ppTrans, 
+                        double* pInOut);
+        [helpstring("method GetTransAtTime")]
+        HRESULT _stdcall GetTransAtTime(
+                        [out] IAMTimelineObj** ppObj, 
+                        int64 Time, 
+                        long SearchDirection);
+        [helpstring("method GetTransAtTime2")]
+        HRESULT _stdcall GetTransAtTime2(
+                        [out] IAMTimelineObj** ppObj, 
+                        double Time, 
+                        long SearchDirection);
+    };
+
+    [
+      odl,
+      uuid(A8ED5F80-C2C7-11D2-8D39-00A0C9441E20),
+      helpstring("IAMTimelineVirtualTrack Interface")
+    ]
+    interface IAMTimelineVirtualTrack : IUnknown {
+        [helpstring("method TrackGetPriority")]
+        HRESULT _stdcall TrackGetPriority(long* pPriority);
+        [helpstring("method SetTrackDirty")]
+        HRESULT _stdcall SetTrackDirty();
+    };
+
+    [
+      uuid(74D2EC80-6233-11D2-8CAD-00A024580902)
+    ]
+    coclass AMTimelineComp {
+        [default] interface IAMTimelineComp;
+        interface IAMTimelineObj;
+        interface IAMTimelineEffectable;
+        interface IAMTimelineTransable;
+        interface IAMTimelineVirtualTrack;
+    };
+
+    [
+      odl,
+      uuid(EAE58536-622E-11D2-8CAD-00A024580902),
+      helpstring("IAMTimelineComp Interface")
+    ]
+    interface IAMTimelineComp : IUnknown {
+        [helpstring("method VTrackInsBefore")]
+        HRESULT _stdcall VTrackInsBefore(
+                        IAMTimelineObj* pVirtualTrack, 
+                        long priority);
+        [helpstring("method VTrackSwapPriorities")]
+        HRESULT _stdcall VTrackSwapPriorities(
+                        long VirtualTrackA, 
+                        long VirtualTrackB);
+        [helpstring("method VTrackGetCount")]
+        HRESULT _stdcall VTrackGetCount(long* pVal);
+        [helpstring("method GetVTrack")]
+        HRESULT _stdcall GetVTrack(
+                        [out] IAMTimelineObj** ppVirtualTrack, 
+                        long Which);
+        [helpstring("method GetCountOfType")]
+        HRESULT _stdcall GetCountOfType(
+                        long* pVal, 
+                        long* pValWithComps, 
+                        TIMELINE_MAJOR_TYPE majortype);
+        [helpstring("method GetRecursiveLayerOfType")]
+        HRESULT _stdcall GetRecursiveLayerOfType(
+                        [out] IAMTimelineObj** ppVirtualTrack, 
+                        long WhichLayer, 
+                        TIMELINE_MAJOR_TYPE Type);
+        [helpstring("method GetRecursiveLayerOfTypeI (do not call)")]
+        HRESULT _stdcall GetRecursiveLayerOfTypeI(
+                        [out] IAMTimelineObj** ppVirtualTrack, 
+                        [in, out] long* pWhichLayer, 
+                        TIMELINE_MAJOR_TYPE Type);
+        HRESULT _stdcall GetNextVTrack(
+                        IAMTimelineObj* pVirtualTrack, 
+                        [out] IAMTimelineObj** ppNextVirtualTrack);
+    };
+
+    [
+      uuid(F6D371E1-B8A6-11D2-8023-00C0DF10D434)
+    ]
+    coclass AMTimelineGroup {
+        [default] interface IAMTimelineGroup;
+        interface IAMTimelineComp;
+        interface IAMTimelineObj;
+    };
+
+    [
+      uuid(74D2EC81-6233-11D2-8CAD-00A024580902)
+    ]
+    coclass AMTimelineTrans {
+        [default] interface IAMTimelineTrans;
+        interface IAMTimelineObj;
+        interface IAMTimelineSplittable;
+    };
+
+    [
+      odl,
+      uuid(BCE0C265-622D-11D2-8CAD-00A024580902),
+      helpstring("IAMTimelineTrans Interface")
+    ]
+    interface IAMTimelineTrans : IUnknown {
+        [helpstring("method GetCutPoint")]
+        HRESULT _stdcall GetCutPoint(int64* pTLTime);
+        [helpstring("method GetCutPoint2")]
+        HRESULT _stdcall GetCutPoint2(double* pTLTime);
+        [helpstring("method SetCutPoint")]
+        HRESULT _stdcall SetCutPoint(int64 TLTime);
+        [helpstring("method SetCutPoint2")]
+        HRESULT _stdcall SetCutPoint2(double TLTime);
+        [helpstring("method GetSwapInputs")]
+        HRESULT _stdcall GetSwapInputs(long* pVal);
+        [helpstring("method SetSwapInputs")]
+        HRESULT _stdcall SetSwapInputs(long pVal);
+        [helpstring("method GetCutsOnly")]
+        HRESULT _stdcall GetCutsOnly(long* pVal);
+        [helpstring("method SetCutsOnly")]
+        HRESULT _stdcall SetCutsOnly(long pVal);
+    };
+
+    [
+      uuid(74D2EC82-6233-11D2-8CAD-00A024580902)
+    ]
+    coclass AMTimelineEffect {
+        [default] interface IAMTimelineEffect;
+        interface IAMTimelineObj;
+        interface IAMTimelineSplittable;
+        interface IPropertyBag;
+    };
+
+    [
+      odl,
+      uuid(BCE0C264-622D-11D2-8CAD-00A024580902),
+      helpstring("IAMTimelineEffect Interface")
+    ]
+    interface IAMTimelineEffect : IUnknown {
+        [helpstring("method EffectGetPriority")]
+        HRESULT _stdcall EffectGetPriority(long* pVal);
+    };
+    [
+      uuid(64D8A8E0-80A2-11D2-8CF3-00A0C9441E20)
+    ]
+    coclass RenderEngine {
+        [default] interface IRenderEngine;
+        interface IRenderEngine2;
+        interface IAMSetErrorLog;
+    };
+
+    [
+      odl,
+      uuid(6BEE3A81-66C9-11D2-918F-00C0DF10D434),
+      helpstring("IRenderEngine Interface")
+    ]
+    interface IRenderEngine : IUnknown {
+        HRESULT _stdcall SetTimelineObject(IAMTimeline* pTimeline);
+        HRESULT _stdcall GetTimelineObject([out] IAMTimeline** ppTimeline);
+        HRESULT _stdcall GetFilterGraph([out] IGraphBuilder** ppFG);
+        HRESULT _stdcall SetFilterGraph(IGraphBuilder* pFG);
+        HRESULT _stdcall SetInterestRange(
+                        int64 Start, 
+                        int64 Stop);
+        HRESULT _stdcall SetInterestRange2(
+                        double Start, 
+                        double Stop);
+        HRESULT _stdcall SetRenderRange(
+                        int64 Start, 
+                        int64 Stop);
+        HRESULT _stdcall SetRenderRange2(
+                        double Start, 
+                        double Stop);
+        HRESULT _stdcall GetGroupOutputPin(
+                        long Group, 
+                        [out] IPin** ppRenderPin);
+        HRESULT _stdcall ScrapIt();
+        HRESULT _stdcall RenderOutputPins();
+        HRESULT _stdcall GetVendorString([out, retval] BSTR* pVendorID);
+        HRESULT _stdcall ConnectFrontEnd();
+        HRESULT _stdcall SetSourceConnectCallback(IGrfCache* pCallback);
+        HRESULT _stdcall SetDynamicReconnectLevel(long Level);
+        HRESULT _stdcall DoSmartRecompression();
+        HRESULT _stdcall UseInSmartRecompressionGraph();
+        HRESULT _stdcall SetSourceNameValidation(
+                        BSTR FilterString, 
+                        IMediaLocator* pOverride, 
+                        long Flags);
+        HRESULT _stdcall Commit();
+        HRESULT _stdcall Decommit();
+        HRESULT _stdcall GetCaps(
+                        long Index, 
+                        long* pReturn);
+    };
+
+    typedef [public]
+    unsigned long ULONG_PTR;
+    
+
+    [
+      odl,
+      uuid(AE9472BE-B0C3-11D2-8D24-00A0C9441E20),
+      helpstring("IGrfCache Interface")
+    ]
+    interface IGrfCache : IDispatch {
+        [helpstring("method AddFilter")]
+        HRESULT _stdcall AddFilter(
+                        IGrfCache* ChainedCache, 
+                        int64 Id, 
+                        IBaseFilter* pFilter, 
+                        LPWSTR pName);
+        [helpstring("method ConnectPins")]
+        HRESULT _stdcall ConnectPins(
+                        IGrfCache* ChainedCache, 
+                        int64 PinID1, 
+                        IPin* pPin1, 
+                        int64 PinID2, 
+                        IPin* pPin2);
+        [helpstring("method SetGraph")]
+        HRESULT _stdcall SetGraph(IGraphBuilder* pGraph);
+        [helpstring("method DoConnectionsNow")]
+        HRESULT _stdcall DoConnectionsNow();
+    };
+
+    [
+      odl,
+      uuid(6BEE3A82-66C9-11D2-918F-00C0DF10D434),
+      helpstring("IRenderEngine2 Interface")
+    ]
+    interface IRenderEngine2 : IUnknown {
+        HRESULT _stdcall SetResizerGUID(GUID ResizerGuid);
+    };
+
+    [
+      uuid(498B0949-BBE9-4072-98BE-6CCAEB79DC6F)
+    ]
+    coclass SmartRenderEngine {
+        [default] interface IRenderEngine;
+        interface ISmartRenderEngine;
+        interface IAMSetErrorLog;
+    };
+
+    [
+      odl,
+      uuid(F03FA8CE-879A-4D59-9B2C-26BB1CF83461),
+      helpstring("ISmartRenderEngine Interface")
+    ]
+    interface ISmartRenderEngine : IUnknown {
+        HRESULT _stdcall SetGroupCompressor(
+                        long Group, 
+                        IBaseFilter* pCompressor);
+        HRESULT _stdcall GetGroupCompressor(
+                        long Group, 
+                        IBaseFilter** pCompressor);
+        HRESULT _stdcall SetFindCompressorCB(IFindCompressorCB* pCallback);
+    };
+
+    [
+      odl,
+      uuid(F03FA8DE-879A-4D59-9B2C-26BB1CF83461),
+      helpstring("IFindCompressorCB Interface")
+    ]
+    interface IFindCompressorCB : IUnknown {
+        HRESULT _stdcall GetCompressor(
+                        _AMMediaType* pType, 
+                        _AMMediaType* pCompType, 
+                        [out] IBaseFilter** ppFilter);
+    };
+
+    [
+      uuid(036A9790-C153-11D2-9EF7-006008039E37)
+    ]
+    coclass AudMixer {
+        [default] interface IBaseFilter;
+    };
+
+    [
+      uuid(18C628EE-962A-11D2-8D08-00A0C9441E20),
+      helpstring("Xml2Dex Class")
+    ]
+    coclass Xml2Dex {
+        [default] interface IXml2Dex;
+    };
+
+    [
+      odl,
+      uuid(18C628ED-962A-11D2-8D08-00A0C9441E20),
+      helpstring("IXml2Dex Interface")
+    ]
+    interface IXml2Dex : IDispatch {
+        [helpstring("method CreateGraphFromFile")]
+        HRESULT _stdcall CreateGraphFromFile(
+                        [out] IUnknown** ppGraph, 
+                        IUnknown* pTimeline, 
+                        BSTR Filename);
+        [helpstring("method WriteGrfFile")]
+        HRESULT _stdcall WriteGrfFile(
+                        IUnknown* pGraph, 
+                        BSTR Filename);
+        [helpstring("method WriteXMLFile")]
+        HRESULT _stdcall WriteXMLFile(
+                        IUnknown* pTimeline, 
+                        BSTR Filename);
+        [helpstring("method ReadXMLFile")]
+        HRESULT _stdcall ReadXMLFile(
+                        IUnknown* pTimeline, 
+                        BSTR XMLName);
+        [helpstring("method Delete")]
+        HRESULT _stdcall Delete(
+                        IUnknown* pTimeline, 
+                        double dStart, 
+                        double dEnd);
+        [helpstring("method WriteXMLPart")]
+        HRESULT _stdcall WriteXMLPart(
+                        IUnknown* pTimeline, 
+                        double dStart, 
+                        double dEnd, 
+                        BSTR Filename);
+        [helpstring("method PasteXMLFile")]
+        HRESULT _stdcall PasteXMLFile(
+                        IUnknown* pTimeline, 
+                        double dStart, 
+                        BSTR Filename);
+        [helpstring("method CopyXML")]
+        HRESULT _stdcall CopyXML(
+                        IUnknown* pTimeline, 
+                        double dStart, 
+                        double dEnd);
+        [helpstring("method PasteXML")]
+        HRESULT _stdcall PasteXML(
+                        IUnknown* pTimeline, 
+                        double dStart);
+        [helpstring("method Reset")]
+        HRESULT _stdcall Reset();
+        [helpstring("method ReadXML")]
+        HRESULT _stdcall ReadXML(
+                        IUnknown* pTimeline, 
+                        IUnknown* pxml);
+        [helpstring("method WriteXML")]
+        HRESULT _stdcall WriteXML(
+                        IUnknown* pTimeline, 
+                        BSTR* pbstrXML);
+    };
+
+    [
+      uuid(CC1101F2-79DC-11D2-8CE6-00A0C9441E20),
+      helpstring("MediaLocator Class")
+    ]
+    coclass MediaLocator {
+        [default] interface IMediaLocator;
+    };
+
+    [
+      uuid(ADF95821-DED7-11D2-ACBE-0080C75E246E),
+      helpstring("Varying Property Holder")
+    ]
+    coclass PropertySetter {
+        [default] interface IPropertySetter;
+        interface IAMSetErrorLog;
+    };
+
+    [
+      uuid(65BD0711-24D2-4FF7-9324-ED2E5D3ABAFA),
+      helpstring("MediaDet Class")
+    ]
+    coclass MediaDet {
+        [default] interface IMediaDet;
+    };
+
+    [
+      odl,
+      uuid(65BD0710-24D2-4FF7-9324-ED2E5D3ABAFA),
+      helpstring("IMediaDet Interface")
+    ]
+    interface IMediaDet : IUnknown {
+        [propget, helpstring("property Filter")]
+        HRESULT _stdcall Filter([out, retval] IUnknown** pVal);
+        [propput, helpstring("property Filter")]
+        HRESULT _stdcall Filter([in] IUnknown* pVal);
+        [propget, helpstring("property OutputStreams")]
+        HRESULT _stdcall OutputStreams([out, retval] long* pVal);
+        [propget, helpstring("property CurrentStream")]
+        HRESULT _stdcall CurrentStream([out, retval] long* pVal);
+        [propput, helpstring("property CurrentStream")]
+        HRESULT _stdcall CurrentStream([in] long pVal);
+        [propget, helpstring("property StreamType")]
+        HRESULT _stdcall StreamType([out, retval] GUID* pVal);
+        [propget, helpstring("property StreamTypeB")]
+        HRESULT _stdcall StreamTypeB([out, retval] BSTR* pVal);
+        [propget, helpstring("property StreamLength")]
+        HRESULT _stdcall StreamLength([out, retval] double* pVal);
+        [propget, helpstring("property Filename")]
+        HRESULT _stdcall Filename([out, retval] BSTR* pVal);
+        [propput, helpstring("property Filename")]
+        HRESULT _stdcall Filename([in] BSTR pVal);
+        [helpstring("method GetBitmapBits")]
+        HRESULT _stdcall GetBitmapBits(
+                        double streamTime, 
+                        long* pBufferSize, 
+                        unsigned char* pBuffer, 
+                        long Width, 
+                        long Height);
+        [helpstring("method WriteBitmapBits")]
+        HRESULT _stdcall WriteBitmapBits(
+                        double streamTime, 
+                        long Width, 
+                        long Height, 
+                        BSTR Filename);
+        [propget, helpstring("property StreamMediaType")]
+        HRESULT _stdcall StreamMediaType([out, retval] _AMMediaType* pVal);
+        [helpstring("method GetSampleGrabber")]
+        HRESULT _stdcall GetSampleGrabber([out] ISampleGrabber** ppVal);
+        [propget, helpstring("property FrameRate")]
+        HRESULT _stdcall FrameRate([out, retval] double* pVal);
+        [helpstring("method EnterBitmapGrabMode")]
+        HRESULT _stdcall EnterBitmapGrabMode(double SeekTime);
+    };
+
+    [
+      odl,
+      uuid(6B652FFF-11FE-4FCE-92AD-0266B5D7C78F),
+      helpstring("ISampleGrabber Interface")
+    ]
+    interface ISampleGrabber : IUnknown {
+        HRESULT _stdcall SetOneShot(long OneShot);
+        HRESULT _stdcall SetMediaType(_AMMediaType* pType);
+        HRESULT _stdcall GetConnectedMediaType(_AMMediaType* pType);
+        HRESULT _stdcall SetBufferSamples(long BufferThem);
+        HRESULT _stdcall GetCurrentBuffer(
+                        [in, out] long* pBufferSize, 
+                        [out] long* pBuffer);
+        HRESULT _stdcall GetCurrentSample([out, retval] IMediaSample** ppSample);
+        HRESULT _stdcall SetCallback(
+                        ISampleGrabberCB* pCallback, 
+                        long WhichMethodToCallback);
+    };
+
+    [
+      odl,
+      uuid(0579154A-2B53-4994-B0D0-E773148EFF85),
+      helpstring("ISampleGrabberCB Interface")
+    ]
+    interface ISampleGrabberCB : IUnknown {
+        HRESULT _stdcall SampleCB(
+                        double SampleTime, 
+                        [in] IMediaSample* pSample);
+        HRESULT _stdcall BufferCB(
+                        double SampleTime, 
+                        int pBuffer, 
+                        long BufferLen);
+    };
+
+    [
+      uuid(C1F400A0-3F08-11D3-9F0B-006008039E37),
+      helpstring("MsGrab Class")
+    ]
+    coclass SampleGrabber {
+        [default] interface ISampleGrabber;
+        interface IBaseFilter;
+    };
+
+    [
+      uuid(C1F400A4-3F08-11D3-9F0B-006008039E37),
+      helpstring("NullRenderer Class")
+    ]
+    coclass NullRenderer {
+        [default] interface IBaseFilter;
+    };
+
+    [
+      uuid(BB44391D-6ABD-422F-9E2E-385C9DFF51FC),
+      helpstring("DxtCompositor Class")
+    ]
+    coclass DxtCompositor {
+        [default] interface IDxtCompositor;
+    };
+
+    [
+      odl,
+      uuid(BB44391E-6ABD-422F-9E2E-385C9DFF51FC),
+      helpstring("IDxtCompositor Interface"),
+      dual,
+      oleautomation
+    ]
+    interface IDxtCompositor : IDXEffect {
+        [id(0x00000001), propget, helpstring("property OffsetX")]
+        HRESULT OffsetX([out, retval] long* pVal);
+        [id(0x00000001), propput, helpstring("property OffsetX")]
+        HRESULT OffsetX([in] long pVal);
+        [id(0x00000002), propget, helpstring("property OffsetY")]
+        HRESULT OffsetY([out, retval] long* pVal);
+        [id(0x00000002), propput, helpstring("property OffsetY")]
+        HRESULT OffsetY([in] long pVal);
+        [id(0x00000003), propget, helpstring("property Width")]
+        HRESULT Width([out, retval] long* pVal);
+        [id(0x00000003), propput, helpstring("property Width")]
+        HRESULT Width([in] long pVal);
+        [id(0x00000004), propget, helpstring("property Height")]
+        HRESULT Height([out, retval] long* pVal);
+        [id(0x00000004), propput, helpstring("property Height")]
+        HRESULT Height([in] long pVal);
+        [id(0x00000005), propget, helpstring("property SrcOffsetX")]
+        HRESULT SrcOffsetX([out, retval] long* pVal);
+        [id(0x00000005), propput, helpstring("property SrcOffsetX")]
+        HRESULT SrcOffsetX([in] long pVal);
+        [id(0x00000006), propget, helpstring("property SrcOffsetY")]
+        HRESULT SrcOffsetY([out, retval] long* pVal);
+        [id(0x00000006), propput, helpstring("property SrcOffsetY")]
+        HRESULT SrcOffsetY([in] long pVal);
+        [id(0x00000007), propget, helpstring("property SrcWidth")]
+        HRESULT SrcWidth([out, retval] long* pVal);
+        [id(0x00000007), propput, helpstring("property SrcWidth")]
+        HRESULT SrcWidth([in] long pVal);
+        [id(0x00000008), propget, helpstring("property SrcHeight")]
+        HRESULT SrcHeight([out, retval] long* pVal);
+        [id(0x00000008), propput, helpstring("property SrcHeight")]
+        HRESULT SrcHeight([in] long pVal);
+    };
+
+    [
+      odl,
+      uuid(E31FB81B-1335-11D1-8189-0000F87557DB),
+      helpstring("IDXEffect Interface"),
+      dual,
+      oleautomation
+    ]
+    interface IDXEffect : IDispatch {
+        [id(0x00002710), propget]
+        HRESULT Capabilities([out, retval] long* pVal);
+        [id(0x00002711), propget]
+        HRESULT Progress([out, retval] float* pVal);
+        [id(0x00002711), propput]
+        HRESULT Progress([in] float pVal);
+        [id(0x00002712), propget]
+        HRESULT StepResolution([out, retval] float* pVal);
+        [id(0x00002713), propget]
+        HRESULT Duration([out, retval] float* pVal);
+        [id(0x00002713), propput]
+        HRESULT Duration([in] float pVal);
+    };
+
+    [
+      uuid(506D89AE-909A-44F7-9444-ABD575896E35),
+      helpstring("DxtAlphaSetter Class")
+    ]
+    coclass DxtAlphaSetter {
+        [default] interface IDxtAlphaSetter;
+    };
+
+    [
+      odl,
+      uuid(4EE9EAD9-DA4D-43D0-9383-06B90C08B12B),
+      helpstring("IDxtAlphaSetter Interface"),
+      dual,
+      oleautomation
+    ]
+    interface IDxtAlphaSetter : IDXEffect {
+        [id(0x00000001), propget, helpstring("property Alpha")]
+        HRESULT Alpha([out, retval] long* pVal);
+        [id(0x00000001), propput, helpstring("property Alpha")]
+        HRESULT Alpha([in] long pVal);
+        [id(0x00000002), propget, helpstring("property AlphaRamp")]
+        HRESULT AlphaRamp([out, retval] double* pVal);
+        [id(0x00000002), propput, helpstring("property AlphaRamp")]
+        HRESULT AlphaRamp([in] double pVal);
+    };
+
+    [
+      uuid(DE75D012-7A65-11D2-8CEA-00A0C9441E20),
+      helpstring("SMPTE wipe DXT")
+    ]
+    coclass DxtJpeg {
+        [default] interface IDxtJpeg;
+    };
+
+    [
+      odl,
+      uuid(DE75D011-7A65-11D2-8CEA-00A0C9441E20),
+      helpstring("IDxtJpeg Interface"),
+      dual,
+      oleautomation
+    ]
+    interface IDxtJpeg : IDXEffect {
+        [id(0x00000001), propget, helpstring("property MaskNum")]
+        HRESULT MaskNum([out, retval] long* __MIDL_0021);
+        [id(0x00000001), propput, helpstring("property MaskNum")]
+        HRESULT MaskNum([in] long __MIDL_0021);
+        [id(0x00000002), propget, helpstring("property MaskName")]
+        HRESULT MaskName([out, retval] BSTR* pVal);
+        [id(0x00000002), propput, helpstring("property MaskName")]
+        HRESULT MaskName([in] BSTR pVal);
+        [id(0x00000003), propget, helpstring("property ScaleX")]
+        HRESULT ScaleX([out, retval] double* __MIDL_0023);
+        [id(0x00000003), propput, helpstring("property ScaleX")]
+        HRESULT ScaleX([in] double __MIDL_0023);
+        [id(0x00000004), propget, helpstring("property ScaleY")]
+        HRESULT ScaleY([out, retval] double* __MIDL_0025);
+        [id(0x00000004), propput, helpstring("property ScaleY")]
+        HRESULT ScaleY([in] double __MIDL_0025);
+        [id(0x00000005), propget, helpstring("property OffsetX")]
+        HRESULT OffsetX([out, retval] long* __MIDL_0027);
+        [id(0x00000005), propput, helpstring("property OffsetX")]
+        HRESULT OffsetX([in] long __MIDL_0027);
+        [id(0x00000006), propget, helpstring("property OffsetY")]
+        HRESULT OffsetY([out, retval] long* __MIDL_0029);
+        [id(0x00000006), propput, helpstring("property OffsetY")]
+        HRESULT OffsetY([in] long __MIDL_0029);
+        [id(0x00000007), propget, helpstring("property ReplicateX")]
+        HRESULT ReplicateX([out, retval] long* pVal);
+        [id(0x00000007), propput, helpstring("property ReplicateX")]
+        HRESULT ReplicateX([in] long pVal);
+        [id(0x00000008), propget, helpstring("property ReplicateY")]
+        HRESULT ReplicateY([out, retval] long* pVal);
+        [id(0x00000008), propput, helpstring("property ReplicateY")]
+        HRESULT ReplicateY([in] long pVal);
+        [id(0x00000009), propget, helpstring("property BorderColor")]
+        HRESULT BorderColor([out, retval] long* pVal);
+        [id(0x00000009), propput, helpstring("property BorderColor")]
+        HRESULT BorderColor([in] long pVal);
+        [id(0x0000000a), propget, helpstring("property BorderWidth")]
+        HRESULT BorderWidth([out, retval] long* pVal);
+        [id(0x0000000a), propput, helpstring("property BorderWidth")]
+        HRESULT BorderWidth([in] long pVal);
+        [id(0x0000000b), propget, helpstring("property BorderSoftness")]
+        HRESULT BorderSoftness([out, retval] long* pVal);
+        [id(0x0000000b), propput, helpstring("property BorderSoftness")]
+        HRESULT BorderSoftness([in] long pVal);
+        [id(0x60030016)]
+        HRESULT ApplyChanges();
+        [id(0x60030017)]
+        HRESULT LoadDefSettings();
+    };
+
+    [
+      uuid(0CFDD070-581A-11D2-9EE6-006008039E37)
+    ]
+    coclass ColorSource {
+        [default] interface IBaseFilter;
+    };
+
+    [
+      uuid(C5B19592-145E-11D3-9F04-006008039E37),
+      helpstring("DxtKey Class")
+    ]
+    coclass DxtKey {
+        [default] interface IDxtKey;
+    };
+
+    [
+      odl,
+      uuid(3255DE56-38FB-4901-B980-94B438010D7B),
+      helpstring("IDxtKey Interface"),
+      dual,
+      oleautomation
+    ]
+    interface IDxtKey : IDXEffect {
+        [id(0x00000001), propget, helpstring("property KeyType")]
+        HRESULT KeyType([out, retval] int* __MIDL_0031);
+        [id(0x00000001), propput, helpstring("property KeyType")]
+        HRESULT KeyType([in] int __MIDL_0031);
+        [id(0x00000002), propget, helpstring("property Hue")]
+        HRESULT Hue([out, retval] int* __MIDL_0033);
+        [id(0x00000002), propput, helpstring("property Hue")]
+        HRESULT Hue([in] int __MIDL_0033);
+        [id(0x00000003), propget, helpstring("property Luminance")]
+        HRESULT Luminance([out, retval] int* __MIDL_0035);
+        [id(0x00000003), propput, helpstring("property Luminance")]
+        HRESULT Luminance([in] int __MIDL_0035);
+        [id(0x00000004), propget, helpstring("property RGB")]
+        HRESULT RGB([out, retval] unsigned long* __MIDL_0037);
+        [id(0x00000004), propput, helpstring("property RGB")]
+        HRESULT RGB([in] unsigned long __MIDL_0037);
+        [id(0x00000005), propget, helpstring("property Similarity")]
+        HRESULT Similarity([out, retval] int* __MIDL_0039);
+        [id(0x00000005), propput, helpstring("property Similarity")]
+        HRESULT Similarity([in] int __MIDL_0039);
+        [id(0x00000006), propget, helpstring("property Invert")]
+        HRESULT Invert([out, retval] long* __MIDL_0041);
+        [id(0x00000006), propput, helpstring("property Invert")]
+        HRESULT Invert([in] long __MIDL_0041);
+    };
+};

File DirectShow/DexterLib.tlb

Binary file added.

File DirectShow/DirectShow.tlb

Binary file added.

File gen_ds/DexterLib.idl

-// Generated .IDL file (by the OLE/COM Object Viewer)
-// 
-// typelib filename: qedit.dll
-
-[
-  uuid(78530B68-61F9-11D2-8CAD-00A024580902),
-  version(1.0),
-  helpstring("Dexter 1.0 Type Library")
-]
-library DexterLib
-{
-    // TLib :     // TLib : OLE Automation : {00020430-0000-0000-C000-000000000046}
-    importlib("STDOLE2.TLB");
-    importlib("DirectShow.tlb");
-
-    // Forward declare all types defined in this typelib
-    interface IResize;
-    interface IAMTimeline;
-    interface IAMTimelineObj;
-    interface IPropertySetter;
-    interface IAMTimelineGroup;
-    interface IAMTimelineSrc;
-    interface IMediaLocator;
-    interface IAMSetErrorLog;
-    interface IAMErrorLog;
-    interface IAMTimelineEffectable;
-    interface IAMTimelineSplittable;
-    interface IAMTimelineTrack;
-    interface IAMTimelineTransable;
-    interface IAMTimelineVirtualTrack;
-    interface IAMTimelineComp;
-    interface IAMTimelineTrans;
-    interface IAMTimelineEffect;
-    interface IErrorLog;
-    interface IRenderEngine;
-    interface IGrfCache;
-    interface IRenderEngine2;
-    interface ISmartRenderEngine;
-    interface IFindCompressorCB;
-    interface IXml2Dex;
-    interface IMediaDet;
-    interface ISampleGrabber;
-    interface ISampleGrabberCB;
-    interface IDxtCompositor;
-    interface IDXEffect;
-    interface IDxtAlphaSetter;
-    interface IDxtJpeg;
-    interface IDxtKey;
-
-    typedef enum {
-        PINDIR_INPUT = 0,
-        PINDIR_OUTPUT = 1
-    } _PinDirection;
-
-    typedef struct tag_PinInfo {
-                
-IBaseFilter* pFilter;
-                
-_PinDirection dir;
-                
-unsigned short achName[128];
-    } _PinInfo;
-
-    typedef enum {
-        State_Stopped = 0,
-        State_Paused = 1,
-        State_Running = 2
-    } _FilterState;
-
-    typedef struct tag_FilterInfo {
-                
-unsigned short achName[128];
-                
-IFilterGraph* pGraph;
-    } _FilterInfo;
-
-    typedef struct tag_AMMediaType {
-                
-GUID majortype;
-                
-GUID subtype;
-                
-long bFixedSizeSamples;
-                
-long bTemporalCompression;
-                
-unsigned long lSampleSize;
-                
-GUID formattype;
-                
-IUnknown* pUnk;
-                
-unsigned long cbFormat;
-                
-unsigned char* pbFormat;
-    } _AMMediaType;
-
-    typedef [public]
-    __MIDL___MIDL_itf_qedit_0000_0002 DEXTER_PARAM;
-
-    typedef struct tag__MIDL___MIDL_itf_qedit_0000_0002 {
-                
-BSTR Name;
-                
-long dispID;
-                
-long nValues;
-    } __MIDL___MIDL_itf_qedit_0000_0002;
-
-    typedef [public]
-    __MIDL___MIDL_itf_qedit_0000_0003 DEXTER_VALUE;
-
-    typedef struct tag__MIDL___MIDL_itf_qedit_0000_0003 {
-                
-VARIANT v;
-                
-int64 rt;
-                
-unsigned long dwInterp;
-    } __MIDL___MIDL_itf_qedit_0000_0003;
-
-    typedef [public]
-    __MIDL___MIDL_itf_qedit_0000_0007 TIMELINE_MAJOR_TYPE;
-
-    [
-      odl,
-      uuid(4ADA63A0-72D5-11D2-952A-0060081840BC),
-      helpstring("IResize Interface")
-    ]
-    interface IResize : IUnknown {
-        HRESULT _stdcall get_Size(
-                        [out] int* piHeight, 
-                        [out] int* piWidth, 
-                        [out] long* pFlag);
-        HRESULT _stdcall get_InputSize(
-                        [out] int* piHeight, 
-                        [out] int* piWidth);
-        HRESULT _stdcall put_Size(
-                        [in] int Height, 
-                        [in] int Width, 
-                        [in] long Flag);
-        HRESULT _stdcall get_MediaType([out] _AMMediaType* pmt);
-        HRESULT _stdcall put_MediaType([in] _AMMediaType* pmt);
-    };
-
-    [
-      uuid(78530B75-61F9-11D2-8CAD-00A024580902),
-      helpstring("AMTimeline Class")
-    ]
-    coclass AMTimeline {
-        [default] interface IAMTimeline;
-        interface IPersistStream;
-        interface IAMSetErrorLog;
-    };
-
-    [
-      odl,
-      uuid(78530B74-61F9-11D2-8CAD-00A024580902),
-      helpstring("IAMTimeline Interface")
-    ]
-    interface IAMTimeline : IUnknown {
-        [helpstring("method CreateEmptyNode")]
-        HRESULT _stdcall CreateEmptyNode(
-                        [out] IAMTimelineObj** ppObj, 
-                        TIMELINE_MAJOR_TYPE Type);
-        HRESULT _stdcall AddGroup(IAMTimelineObj* pGroup);
-        HRESULT _stdcall RemGroupFromList(IAMTimelineObj* pGroup);
-        HRESULT _stdcall GetGroup(
-                        [out] IAMTimelineObj** ppGroup, 
-                        long WhichGroup);
-        HRESULT _stdcall GetGroupCount(long* pCount);
-        HRESULT _stdcall ClearAllGroups();
-        HRESULT _stdcall GetInsertMode(long* pMode);
-        [helpstring("method SetInsertMode")]
-        HRESULT _stdcall SetInsertMode(long Mode);
-        [helpstring("method EnableTransitions")]
-        HRESULT _stdcall EnableTransitions(long fEnabled);
-        [helpstring("method TransitionsEnabled")]
-        HRESULT _stdcall TransitionsEnabled(long* pfEnabled);
-        [helpstring("method EnableEffects")]
-        HRESULT _stdcall EnableEffects(long fEnabled);
-        [helpstring("method EffectsEnabled")]
-        HRESULT _stdcall EffectsEnabled(long* pfEnabled);
-        [helpstring("method SetInterestRange")]
-        HRESULT _stdcall SetInterestRange(
-                        int64 Start, 
-                        int64 Stop);
-        [helpstring("method GetDuration")]
-        HRESULT _stdcall GetDuration(int64* pDuration);
-        [helpstring("method GetDuration2")]
-        HRESULT _stdcall GetDuration2(double* pDuration);
-        [helpstring("method SetDefaultFPS")]
-        HRESULT _stdcall SetDefaultFPS(double FPS);
-        [helpstring("method GetDefaultFPS")]
-        HRESULT _stdcall GetDefaultFPS(double* pFPS);
-        [helpstring("method IsDirty")]
-        HRESULT _stdcall IsDirty(long* pDirty);
-        [helpstring("method GetDirtyRange")]
-        HRESULT _stdcall GetDirtyRange(
-                        int64* pStart, 
-                        int64* pStop);
-        [helpstring("method GetCountOfType")]
-        HRESULT _stdcall GetCountOfType(
-                        long Group, 
-                        long* pVal, 
-                        long* pValWithComps, 
-                        TIMELINE_MAJOR_TYPE majortype);
-        HRESULT _stdcall ValidateSourceNames(
-                        long ValidateFlags, 
-                        IMediaLocator* pOverride, 
-                        LONG_PTR NotifyEventHandle);
-        HRESULT _stdcall SetDefaultTransition(GUID* pGuid);
-        HRESULT _stdcall GetDefaultTransition(GUID* pGuid);
-        HRESULT _stdcall SetDefaultEffect(GUID* pGuid);
-        HRESULT _stdcall GetDefaultEffect(GUID* pGuid);
-        HRESULT _stdcall SetDefaultTransitionB(BSTR pGuid);
-        HRESULT _stdcall GetDefaultTransitionB([out, retval] BSTR* pGuid);
-        HRESULT _stdcall SetDefaultEffectB(BSTR pGuid);
-        HRESULT _stdcall GetDefaultEffectB([out, retval] BSTR* pGuid);
-    };
-
-    [
-      odl,
-      uuid(78530B77-61F9-11D2-8CAD-00A024580902),
-      helpstring("IAMTimelineObj Interface")
-    ]
-    interface IAMTimelineObj : IUnknown {
-        [helpstring("method GetStartStop")]
-        HRESULT _stdcall GetStartStop(
-                        int64* pStart, 
-                        int64* pStop);
-        [helpstring("method GetStartStop2")]
-        HRESULT _stdcall GetStartStop2(
-                        double* pStart, 
-                        double* pStop);
-        [helpstring("method FixTimes")]
-        HRESULT _stdcall FixTimes(
-                        int64* pStart, 
-                        int64* pStop);
-        [helpstring("method FixTimes2")]
-        HRESULT _stdcall FixTimes2(
-                        double* pStart, 
-                        double* pStop);
-        [helpstring("method SetStartStop")]
-        HRESULT _stdcall SetStartStop(
-                        int64 Start, 
-                        int64 Stop);
-        [helpstring("method SetStartStop2")]
-        HRESULT _stdcall SetStartStop2(
-                        double Start, 
-                        double Stop);
-        [helpstring("method GetPropertySetter")]
-        HRESULT _stdcall GetPropertySetter([out, retval] IPropertySetter** pVal);
-        [helpstring("method SetPropertySetter")]
-        HRESULT _stdcall SetPropertySetter(IPropertySetter* newVal);
-        [helpstring("method GetSubObject")]
-        HRESULT _stdcall GetSubObject([out, retval] IUnknown** pVal);
-        [helpstring("method SetSubObject")]
-        HRESULT _stdcall SetSubObject(IUnknown* newVal);
-        [helpstring("method SetSubObjectGUID")]
-        HRESULT _stdcall SetSubObjectGUID(GUID newVal);
-        [helpstring("method SetSubObjectGUIDByBSTR")]
-        HRESULT _stdcall SetSubObjectGUIDB(BSTR newVal);
-        [helpstring("method GetSubObjectGUID")]
-        HRESULT _stdcall GetSubObjectGUID(GUID* pVal);
-        [helpstring("method GetSubObjectGUIDByBSTR")]
-        HRESULT _stdcall GetSubObjectGUIDB([out, retval] BSTR* pVal);
-        [helpstring("method GetSubObjectLoaded")]
-        HRESULT _stdcall GetSubObjectLoaded(long* pVal);
-        [helpstring("method GetTimelineType")]
-        HRESULT _stdcall GetTimelineType(TIMELINE_MAJOR_TYPE* pVal);
-        [helpstring("method SetTimelineType")]
-        HRESULT _stdcall SetTimelineType(TIMELINE_MAJOR_TYPE newVal);
-        [helpstring("method GetUserID")]
-        HRESULT _stdcall GetUserID(long* pVal);
-        [helpstring("method SetUserID")]
-        HRESULT _stdcall SetUserID(long newVal);
-        [helpstring("method GetGenID")]
-        HRESULT _stdcall GetGenID(long* pVal);
-        [helpstring("method GetUserName")]
-        HRESULT _stdcall GetUserName([out, retval] BSTR* pVal);
-        [helpstring("method SetUserName")]
-        HRESULT _stdcall SetUserName(BSTR newVal);
-        [helpstring("method GetUserData")]
-        HRESULT _stdcall GetUserData(
-                        unsigned char* pData, 
-                        long* pSize);
-        [helpstring("method SetUserData")]
-        HRESULT _stdcall SetUserData(
-                        unsigned char* pData, 
-                        long Size);
-        [helpstring("method GetMuted")]
-        HRESULT _stdcall GetMuted(long* pVal);
-        [helpstring("method SetMuted")]
-        HRESULT _stdcall SetMuted(long newVal);
-        [helpstring("method GetLocked")]
-        HRESULT _stdcall GetLocked(long* pVal);
-        [helpstring("method SetLocked")]
-        HRESULT _stdcall SetLocked(long newVal);
-        [helpstring("method GetDirtyRange")]
-        HRESULT _stdcall GetDirtyRange(
-                        int64* pStart, 
-                        int64* pStop);
-        [helpstring("method GetDirtyRange")]
-        HRESULT _stdcall GetDirtyRange2(
-                        double* pStart, 
-                        double* pStop);
-        [helpstring("method SetDirtyRange")]
-        HRESULT _stdcall SetDirtyRange(
-                        int64 Start, 
-                        int64 Stop);
-        [helpstring("method SetDirtyRange")]
-        HRESULT _stdcall SetDirtyRange2(
-                        double Start, 
-                        double Stop);
-        [helpstring("method ClearDirty")]
-        HRESULT _stdcall ClearDirty();
-        [helpstring("method Remove")]
-        HRESULT _stdcall Remove();
-        [helpstring("method RemoveAll")]
-        HRESULT _stdcall RemoveAll();
-        HRESULT _stdcall GetTimelineNoRef(IAMTimeline** ppResult);
-        HRESULT _stdcall GetGroupIBelongTo([out] IAMTimelineGroup** ppGroup);
-        HRESULT _stdcall GetEmbedDepth(long* pVal);
-    };
-
-    [
-      odl,
-      uuid(AE9472BD-B0C3-11D2-8D24-00A0C9441E20),
-      helpstring("IPropertySetter Interface")
-    ]
-    interface IPropertySetter : IUnknown {
-        HRESULT _stdcall LoadXML([in] IUnknown* pxml);
-        HRESULT _stdcall PrintXML(
-                        [out] unsigned char* pszXML, 
-                        [in] int cbXML, 
-                        [out] int* pcbPrinted, 
-                        [in] int indent);
-        HRESULT _stdcall CloneProps(
-                        [out] IPropertySetter** ppSetter, 
-                        [in] int64 rtStart, 
-                        [in] int64 rtStop);
-        HRESULT _stdcall AddProp(
-                        [in] DEXTER_PARAM Param, 
-                        [in] DEXTER_VALUE* paValue);
-        HRESULT _stdcall GetProps(
-                        [out] long* pcParams, 
-                        [out] DEXTER_PARAM** paParam, 
-                        [out] DEXTER_VALUE** paValue);
-        HRESULT _stdcall FreeProps(
-                        [in] long cParams, 
-                        [in] DEXTER_PARAM* paParam, 
-                        [in] DEXTER_VALUE* paValue);
-        HRESULT _stdcall ClearProps();
-        HRESULT _stdcall SaveToBlob(
-                        [out] long* pcSize, 
-                        [out] unsigned char** ppb);
-        HRESULT _stdcall LoadFromBlob(
-                        [in] long cSize, 
-                        [in] unsigned char* pb);
-        HRESULT _stdcall SetProps(
-                        [in] IUnknown* pTarget, 
-                        [in] int64 rtNow);
-        HRESULT _stdcall PrintXMLW(
-                        [out] unsigned short* pszXML, 
-                        [in] int cchXML, 
-                        [out] int* pcchPrinted, 
-                        [in] int indent);
-    };
-
-    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
-    } __MIDL___MIDL_itf_qedit_0000_0007;
-
-    [
-      odl,
-      uuid(9EED4F00-B8A6-11D2-8023-00C0DF10D434),
-      helpstring("IAMTimelineGroup Interface")
-    ]
-    interface IAMTimelineGroup : IUnknown {
-        [helpstring("method SetTimeline")]
-        HRESULT _stdcall SetTimeline(IAMTimeline* pTimeline);
-        [helpstring("method GetTimeline")]
-        HRESULT _stdcall GetTimeline([out] IAMTimeline** ppTimeline);
-        [helpstring("method GetPriority")]
-        HRESULT _stdcall GetPriority(long* pPriority);
-        [helpstring("method GetMediaType")]
-        HRESULT _stdcall GetMediaType([out] _AMMediaType* __MIDL_0043);
-        [helpstring("method SetMediaType")]
-        HRESULT _stdcall SetMediaType([in] _AMMediaType* __MIDL_0044);
-        [helpstring("method SetOutputFPS")]
-        HRESULT _stdcall SetOutputFPS(double FPS);
-        [helpstring("method GetOutputFPS")]
-        HRESULT _stdcall GetOutputFPS(double* pFPS);
-        [helpstring("method SetGroupName")]
-        HRESULT _stdcall SetGroupName(BSTR pGroupName);
-        [helpstring("method GetGroupName")]
-        HRESULT _stdcall GetGroupName([out, retval] BSTR* pGroupName);
-        [helpstring("method SetPreviewMode")]
-        HRESULT _stdcall SetPreviewMode(long fPreview);
-        [helpstring("method GetPreviewMode")]
-        HRESULT _stdcall GetPreviewMode(long* pfPreview);
-        [helpstring("method SetMediaTypeForVB")]
-        HRESULT _stdcall SetMediaTypeForVB([in] long Val);
-        [helpstring("method GetOutputBuffering")]
-        HRESULT _stdcall GetOutputBuffering([out] int* pnBuffer);
-        [helpstring("method SetOutputBuffering")]
-        HRESULT _stdcall SetOutputBuffering([in] int nBuffer);
-        HRESULT _stdcall SetSmartRecompressFormat(long* pFormat);
-        HRESULT _stdcall GetSmartRecompressFormat(long** ppFormat);
-        HRESULT _stdcall IsSmartRecompressFormatSet(long* pVal);
-        HRESULT _stdcall IsRecompressFormatDirty(long* pVal);
-        HRESULT _stdcall ClearRecompressFormatDirty();
-        HRESULT _stdcall SetRecompFormatFromSource(IAMTimelineSrc* pSource);
-    };
-
-    [
-      odl,
-      uuid(78530B79-61F9-11D2-8CAD-00A024580902),
-      helpstring("IAMTimelineSrc Interface")
-    ]
-    interface IAMTimelineSrc : IUnknown {
-        [helpstring("method GetMediaTimes")]
-        HRESULT _stdcall GetMediaTimes(
-                        int64* pStart, 
-                        int64* pStop);
-        [helpstring("method GetMediaTimes2")]
-        HRESULT _stdcall GetMediaTimes2(
-                        double* pStart, 
-                        double* pStop);
-        [helpstring("method ModifyStopTime")]
-        HRESULT _stdcall ModifyStopTime(int64 Stop);
-        [helpstring("method ModifyStopTime2")]
-        HRESULT _stdcall ModifyStopTime2(double Stop);
-        [helpstring("method FixMediaTimes")]
-        HRESULT _stdcall FixMediaTimes(
-                        int64* pStart, 
-                        int64* pStop);
-        [helpstring("method FixMediaTimes2")]
-        HRESULT _stdcall FixMediaTimes2(
-                        double* pStart, 
-                        double* pStop);
-        [helpstring("method SetMediaTimes")]
-        HRESULT _stdcall SetMediaTimes(
-                        int64 Start, 
-                        int64 Stop);
-        [helpstring("method SetMediaTimes2")]
-        HRESULT _stdcall SetMediaTimes2(
-                        double Start, 
-                        double Stop);
-        [helpstring("method SetMediaLength")]
-        HRESULT _stdcall SetMediaLength(int64 Length);
-        [helpstring("method SetMediaLength2")]
-        HRESULT _stdcall SetMediaLength2(double Length);
-        [helpstring("method GetMediaLength")]
-        HRESULT _stdcall GetMediaLength(int64* pLength);
-        [helpstring("method GetMediaLength2")]
-        HRESULT _stdcall GetMediaLength2(double* pLength);
-        [helpstring("method GetMediaName")]
-        HRESULT _stdcall GetMediaName([out, retval] BSTR* pVal);
-        [helpstring("method SetMediaName")]
-        HRESULT _stdcall SetMediaName(BSTR newVal);
-        [helpstring("method SpliceWithNext")]
-        HRESULT _stdcall SpliceWithNext(IAMTimelineObj* pNext);
-        [helpstring("method GetStreamNumber")]
-        HRESULT _stdcall GetStreamNumber(long* pVal);
-        [helpstring("method SetStreamNumber")]
-        HRESULT _stdcall SetStreamNumber(long Val);
-        HRESULT _stdcall IsNormalRate(long* pVal);
-        [helpstring("method GetDefaultFPS")]
-        HRESULT _stdcall GetDefaultFPS(double* pFPS);
-        [helpstring("method SetDefaultFPS")]
-        HRESULT _stdcall SetDefaultFPS(double FPS);
-        [helpstring("method GetStretchMode")]
-        HRESULT _stdcall GetStretchMode(int* pnStretchMode);
-        [helpstring("method SetStretchMode")]
-        HRESULT _stdcall SetStretchMode(int nStretchMode);
-    };
-
-    [
-      odl,
-      uuid(288581E0-66CE-11D2-918F-00C0DF10D434),
-      helpstring("IMediaLocator Interface")
-    ]
-    interface IMediaLocator : IUnknown {
-        HRESULT _stdcall FindMediaFile(
-                        BSTR Input, 
-                        BSTR FilterString, 
-                        BSTR* pOutput, 
-                        long Flags);
-        HRESULT _stdcall AddFoundLocation(BSTR DirectoryName);
-    };
-
-    typedef [public]
-    long LONG_PTR;
-
-
-    [
-      odl,
-      uuid(963566DA-BE21-4EAF-88E9-35704F8F52A1),
-      helpstring("IAMSetErrorLog Interface")
-    ]
-    interface IAMSetErrorLog : IUnknown {
-        [propget, helpstring("property ErrorLog")]
-        HRESULT _stdcall ErrorLog([out, retval] IAMErrorLog** pVal);
-        [propput, helpstring("property ErrorLog")]
-        HRESULT _stdcall ErrorLog([in] IAMErrorLog* pVal);
-    };
-
-    [
-      odl,
-      uuid(E43E73A2-0EFA-11D3-9601-00A0C9441E20),
-      helpstring("IAMErrorLog Interface")
-    ]
-    interface IAMErrorLog : IUnknown {
-        [helpstring("method LogError")]
-        HRESULT _stdcall LogError(
-                        long Severity, 
-                        BSTR pErrorString, 
-                        long ErrorCode, 
-                        long hresult, 
-                        [in] VARIANT* pExtraInfo);
-    };
-
-    [
-      uuid(78530B78-61F9-11D2-8CAD-00A024580902),
-      helpstring("IAMTimelineObj Class")
-    ]
-    coclass AMTimelineObj {
-        [default] interface IAMTimelineObj;
-    };
-
-    [
-      uuid(78530B7A-61F9-11D2-8CAD-00A024580902),
-      helpstring("IAMTimelineSrc Class")
-    ]
-    coclass AMTimelineSrc {
-        [default] interface IAMTimelineSrc;
-        interface IAMTimelineObj;
-        interface IAMTimelineEffectable;
-        interface IAMTimelineSplittable;
-    };
-
-    [
-      odl,
-      uuid(EAE58537-622E-11D2-8CAD-00A024580902),
-      helpstring("IAMTimelineEffectable Interface")
-    ]
-    interface IAMTimelineEffectable : IUnknown {
-        [helpstring("method EffectInsBefore")]
-        HRESULT _stdcall EffectInsBefore(
-                        IAMTimelineObj* pFX, 
-                        long priority);
-        [helpstring("method EffectSwapPriorities")]
-        HRESULT _stdcall EffectSwapPriorities(
-                        long PriorityA, 
-                        long PriorityB);
-        [helpstring("method EffectGetCount")]
-        HRESULT _stdcall EffectGetCount(long* pCount);
-        [helpstring("method GetEffect")]
-        HRESULT _stdcall GetEffect(
-                        [out] IAMTimelineObj** ppFx, 
-                        long Which);
-    };
-
-    [
-      odl,
-      uuid(A0F840A0-D590-11D2-8D55-00A0C9441E20),
-      helpstring("IAMTimelineSplittable Interface")
-    ]
-    interface IAMTimelineSplittable : IUnknown {
-        HRESULT _stdcall SplitAt(int64 Time);
-        HRESULT _stdcall SplitAt2(double Time);
-    };
-
-    [
-      uuid(8F6C3C50-897B-11D2-8CFB-00A0C9441E20)
-    ]
-    coclass AMTimelineTrack {
-        [default] interface IAMTimelineTrack;
-        interface IAMTimelineObj;
-        interface IAMTimelineEffectable;
-        interface IAMTimelineTransable;
-        interface IAMTimelineVirtualTrack;
-        interface IAMTimelineSplittable;
-    };
-
-    [
-      odl,
-      uuid(EAE58538-622E-11D2-8CAD-00A024580902),
-      helpstring("IAMTimelineTrack Interface")
-    ]
-    interface IAMTimelineTrack : IUnknown {
-        [helpstring("method SrcAdd")]
-        HRESULT _stdcall SrcAdd(IAMTimelineObj* pSource);
-        [helpstring("method GetNextSrc")]
-        HRESULT _stdcall GetNextSrc(
-                        [out] IAMTimelineObj** ppSrc, 
-                        int64* pInOut);
-        [helpstring("method GetNextSrc2")]
-        HRESULT _stdcall GetNextSrc2(
-                        [out] IAMTimelineObj** ppSrc, 
-                        double* pInOut);
-        [helpstring("method MoveEverythingBy")]
-        HRESULT _stdcall MoveEverythingBy(
-                        int64 Start, 
-                        int64 MoveBy);
-        [helpstring("method MoveEverythingBy2")]
-        HRESULT _stdcall MoveEverythingBy2(
-                        double Start, 
-                        double MoveBy);
-        [helpstring("method GetSourcesCount")]
-        HRESULT _stdcall GetSourcesCount(long* pVal);
-        [helpstring("method AreYouBlank")]
-        HRESULT _stdcall AreYouBlank(long* pVal);
-        [helpstring("method GetSrcAtTime")]
-        HRESULT _stdcall GetSrcAtTime(
-                        [out] IAMTimelineObj** ppSrc, 
-                        int64 Time, 
-                        long SearchDirection);
-        [helpstring("method GetSrcAtTime2")]
-        HRESULT _stdcall GetSrcAtTime2(
-                        [out] IAMTimelineObj** ppSrc, 
-                        double Time, 
-                        long SearchDirection);
-        HRESULT _stdcall InsertSpace(
-                        int64 rtStart, 
-                        int64 rtEnd);
-        HRESULT _stdcall InsertSpace2(
-                        double rtStart, 
-                        double rtEnd);
-        HRESULT _stdcall ZeroBetween(
-                        int64 rtStart, 
-                        int64 rtEnd);
-        HRESULT _stdcall ZeroBetween2(
-                        double rtStart, 
-                        double rtEnd);
-        HRESULT _stdcall GetNextSrcEx(
-                        IAMTimelineObj* pLast, 
-                        [out] IAMTimelineObj** ppNext);
-    };
-
-    [
-      odl,
-      uuid(378FA386-622E-11D2-8CAD-00A024580902),
-      helpstring("IAMTimelineTransable Interface")
-    ]
-    interface IAMTimelineTransable : IUnknown {
-        [helpstring("method TransAdd")]
-        HRESULT _stdcall TransAdd(IAMTimelineObj* pTrans);
-        [helpstring("method TransGetCount")]
-        HRESULT _stdcall TransGetCount(long* pCount);
-        [helpstring("method GetNextTrans")]
-        HRESULT _stdcall GetNextTrans(
-                        [out] IAMTimelineObj** ppTrans, 
-                        int64* pInOut);
-        [helpstring("method GetNextTrans2")]
-        HRESULT _stdcall GetNextTrans2(
-                        [out] IAMTimelineObj** ppTrans, 
-                        double* pInOut);
-        [helpstring("method GetTransAtTime")]
-        HRESULT _stdcall GetTransAtTime(
-                        [out] IAMTimelineObj** ppObj, 
-                        int64 Time, 
-                        long SearchDirection);
-        [helpstring("method GetTransAtTime2")]
-        HRESULT _stdcall GetTransAtTime2(
-                        [out] IAMTimelineObj** ppObj, 
-                        double Time, 
-                        long SearchDirection);
-    };
-
-    [
-      odl,
-      uuid(A8ED5F80-C2C7-11D2-8D39-00A0C9441E20),
-      helpstring("IAMTimelineVirtualTrack Interface")
-    ]
-    interface IAMTimelineVirtualTrack : IUnknown {
-        [helpstring("method TrackGetPriority")]
-        HRESULT _stdcall TrackGetPriority(long* pPriority);
-        [helpstring("method SetTrackDirty")]
-        HRESULT _stdcall SetTrackDirty();
-    };
-
-    [
-      uuid(74D2EC80-6233-11D2-8CAD-00A024580902)
-    ]
-    coclass AMTimelineComp {
-        [default] interface IAMTimelineComp;
-        interface IAMTimelineObj;
-        interface IAMTimelineEffectable;
-        interface IAMTimelineTransable;
-        interface IAMTimelineVirtualTrack;
-    };
-
-    [
-      odl,
-      uuid(EAE58536-622E-11D2-8CAD-00A024580902),
-      helpstring("IAMTimelineComp Interface")
-    ]
-    interface IAMTimelineComp : IUnknown {
-        [helpstring("method VTrackInsBefore")]
-        HRESULT _stdcall VTrackInsBefore(
-                        IAMTimelineObj* pVirtualTrack, 
-                        long priority);
-        [helpstring("method VTrackSwapPriorities")]
-        HRESULT _stdcall VTrackSwapPriorities(
-                        long VirtualTrackA, 
-                        long VirtualTrackB);
-        [helpstring("method VTrackGetCount")]
-        HRESULT _stdcall VTrackGetCount(long* pVal);
-        [helpstring("method GetVTrack")]
-        HRESULT _stdcall GetVTrack(
-                        [out] IAMTimelineObj** ppVirtualTrack, 
-                        long Which);
-        [helpstring("method GetCountOfType")]
-        HRESULT _stdcall GetCountOfType(
-                        long* pVal, 
-                        long* pValWithComps, 
-                        TIMELINE_MAJOR_TYPE majortype);
-        [helpstring("method GetRecursiveLayerOfType")]
-        HRESULT _stdcall GetRecursiveLayerOfType(
-                        [out] IAMTimelineObj** ppVirtualTrack, 
-                        long WhichLayer, 
-                        TIMELINE_MAJOR_TYPE Type);
-        [helpstring("method GetRecursiveLayerOfTypeI (do not call)")]
-        HRESULT _stdcall GetRecursiveLayerOfTypeI(
-                        [out] IAMTimelineObj** ppVirtualTrack, 
-                        [in, out] long* pWhichLayer, 
-                        TIMELINE_MAJOR_TYPE Type);
-        HRESULT _stdcall GetNextVTrack(
-                        IAMTimelineObj* pVirtualTrack, 
-                        [out] IAMTimelineObj** ppNextVirtualTrack);
-    };
-
-    [
-      uuid(F6D371E1-B8A6-11D2-8023-00C0DF10D434)
-    ]
-    coclass AMTimelineGroup {
-        [default] interface IAMTimelineGroup;
-        interface IAMTimelineComp;
-        interface IAMTimelineObj;
-    };
-
-    [
-      uuid(74D2EC81-6233-11D2-8CAD-00A024580902)
-    ]
-    coclass AMTimelineTrans {
-        [default] interface IAMTimelineTrans;
-        interface IAMTimelineObj;
-        interface IAMTimelineSplittable;
-    };
-
-    [
-      odl,
-      uuid(BCE0C265-622D-11D2-8CAD-00A024580902),
-      helpstring("IAMTimelineTrans Interface")