mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
216 lines
5.7 KiB
216 lines
5.7 KiB
// -*- Mode: C++ -*-
|
|
/*++
|
|
|
|
Copyright (c) 1998 Microsoft Corporation
|
|
|
|
Abstract:
|
|
|
|
Interface definitions for Windows Multimedia Runtime components
|
|
|
|
--*/
|
|
|
|
cpp_quote("#include \"danim.h\"")
|
|
|
|
[
|
|
uuid(a1b046bc-4ad2-11d2-b953-3078302c2030),
|
|
lcid(0x0000),
|
|
version(1.0)
|
|
]
|
|
library WindowsMultimediaRuntime
|
|
{
|
|
importlib("STDOLE2.TLB");
|
|
importlib("DANIM.TLB");
|
|
|
|
interface IMMBehavior;
|
|
interface IMMTimeline;
|
|
interface IMMPlayer;
|
|
interface IMMFactory;
|
|
|
|
typedef enum {
|
|
MM_PLAY_EVENT,
|
|
MM_STOP_EVENT,
|
|
MM_REPEAT_EVENT,
|
|
MM_AUTOREVERSE_EVENT,
|
|
MM_PAUSE_EVENT,
|
|
MM_RESUME_EVENT,
|
|
} MM_EVENT_TYPE ;
|
|
|
|
[
|
|
object,
|
|
uuid(dc2f58e6-4ad2-11d2-b953-3078302c2030),
|
|
dual,
|
|
pointer_default(unique)
|
|
]
|
|
interface IMMEventCB : IUnknown
|
|
{
|
|
HRESULT OnEvent([in] double eventTime,
|
|
[in] IMMBehavior *,
|
|
[in] MM_EVENT_TYPE et);
|
|
}
|
|
|
|
typedef enum {
|
|
MM_PLAYING_STATE,
|
|
MM_STOPPED_STATE,
|
|
MM_PAUSED_STATE,
|
|
} MM_STATE;
|
|
|
|
typedef enum {
|
|
MM_START_ABSOLUTE,
|
|
MM_START_EVENT,
|
|
MM_START_WITH,
|
|
MM_START_AFTER,
|
|
} MM_START_TYPE;
|
|
|
|
typedef enum {
|
|
MM_STOP_ABSOLUTE,
|
|
MM_STOP_WITH
|
|
} MM_STOP_TYPE;
|
|
|
|
[
|
|
object,
|
|
uuid(18b4a8b2-5f36-11d2-b957-3078302c2030),
|
|
dual,
|
|
pointer_default(unique)
|
|
]
|
|
interface IMMBehavior : IDispatch
|
|
{
|
|
[propget] HRESULT ID([out, retval] BSTR *);
|
|
[propput] HRESULT ID([in] BSTR);
|
|
|
|
[propget] HRESULT StartOffset([out, retval] float *);
|
|
[propput] HRESULT StartOffset([in] float);
|
|
|
|
[propget] HRESULT Duration([out, retval] float *);
|
|
[propput] HRESULT Duration([in] float);
|
|
|
|
[propget] HRESULT Repeat([out, retval] LONG *);
|
|
[propput] HRESULT Repeat([in] LONG);
|
|
|
|
[propget] HRESULT AutoReverse([out, retval] VARIANT_BOOL *);
|
|
[propput] HRESULT AutoReverse([in] VARIANT_BOOL);
|
|
|
|
[propget] HRESULT RepeatDur([out, retval] float *);
|
|
[propput] HRESULT RepeatDur([in] float);
|
|
|
|
[propget] HRESULT EndOffset([out, retval] float *);
|
|
[propput] HRESULT EndOffset([in] float);
|
|
|
|
[propget] HRESULT EaseIn([out, retval] float *);
|
|
[propput] HRESULT EaseIn([in] float);
|
|
|
|
[propget] HRESULT EaseInStart([out, retval] float *);
|
|
[propput] HRESULT EaseInStart([in] float);
|
|
|
|
[propget] HRESULT EaseOut([out, retval] float *);
|
|
[propput] HRESULT EaseOut([in] float);
|
|
|
|
[propget] HRESULT EaseOutEnd([out, retval] float *);
|
|
[propput] HRESULT EaseOutEnd([in] float);
|
|
|
|
[propget] HRESULT EventCB([out, retval] IMMEventCB **);
|
|
[propput] HRESULT EventCB([in] IMMEventCB *);
|
|
|
|
[propget] HRESULT TotalTime([out, retval] float *);
|
|
|
|
HRESULT Begin(VARIANT_BOOL bAfterOffset);
|
|
HRESULT End();
|
|
HRESULT Pause();
|
|
HRESULT Run();
|
|
HRESULT Seek([in] double lTime);
|
|
|
|
[propget] HRESULT CurrentTime([out, retval] double * d);
|
|
|
|
[propget] HRESULT PlayState([out, retval] MM_STATE *);
|
|
|
|
[propget] HRESULT DABehavior([out, retval] IDABehavior **);
|
|
|
|
HRESULT GetDABehavior(REFIID iid, void ** retobj);
|
|
}
|
|
|
|
// Flags for the endsync property.
|
|
enum {
|
|
MM_ENDSYNC_NONE = 0x00000000,
|
|
MM_ENDSYNC_FIRST = 0x00000001,
|
|
MM_ENDSYNC_LAST = 0x00000002,
|
|
} ;
|
|
|
|
[
|
|
object,
|
|
uuid(03030490-4ad3-11d2-b953-3078302c2030),
|
|
dual,
|
|
pointer_default(unique)
|
|
]
|
|
interface IMMTimeline : IMMBehavior
|
|
{
|
|
HRESULT AddBehavior([in] IMMBehavior * bvr,
|
|
[in] MM_START_TYPE st,
|
|
[in] IMMBehavior * basebvr);
|
|
HRESULT RemoveBehavior([in] IMMBehavior * bvr);
|
|
|
|
HRESULT AddView([in] IDAView * view,
|
|
[in] IUnknown *pUnk,
|
|
[in] IDAImage * img,
|
|
[in] IDASound * snd);
|
|
|
|
[propget] HRESULT EndSync([out, retval] DWORD * flags);
|
|
[propput] HRESULT EndSync([in] DWORD flags);
|
|
}
|
|
|
|
|
|
[
|
|
object,
|
|
uuid(abc4aa1c-5bbc-11d2-b957-3078302c2030),
|
|
dual,
|
|
pointer_default(unique)
|
|
]
|
|
interface IMMPlayer : IDispatch
|
|
{
|
|
[propget] HRESULT ID([out, retval] BSTR *);
|
|
[propput] HRESULT ID([in] BSTR);
|
|
|
|
HRESULT Play();
|
|
HRESULT Stop();
|
|
HRESULT Pause();
|
|
HRESULT Resume();
|
|
|
|
[propget] HRESULT PlayerState([out, retval] MM_STATE *);
|
|
|
|
[propget] HRESULT CurrentTime([out, retval] double * d);
|
|
|
|
HRESULT SetPosition([in] double lTime);
|
|
HRESULT SetDirection([in] VARIANT_BOOL bForward);
|
|
|
|
[propget] HRESULT Behavior([out, retval] IMMBehavior ** bvr);
|
|
[propget] HRESULT View([out, retval] IDAView ** v);
|
|
|
|
}
|
|
|
|
|
|
[
|
|
object,
|
|
uuid(083a2970-4ad3-11d2-b953-3078302c2030),
|
|
dual,
|
|
hidden,
|
|
pointer_default(unique)
|
|
]
|
|
interface IMMFactory : IDispatch
|
|
{
|
|
HRESULT CreateBehavior([in] BSTR id,
|
|
[in] IDABehavior *bvr,
|
|
[out, retval] IMMBehavior **ppOut);
|
|
HRESULT CreateTimeline([in] BSTR id,
|
|
[out, retval] IMMTimeline **ppOut);
|
|
HRESULT CreatePlayer([in] BSTR id,
|
|
[in] IMMBehavior * bvr,
|
|
[in] IDAView *v,
|
|
[out, retval] IMMPlayer **ppOut);
|
|
}
|
|
|
|
[
|
|
uuid(0c02242c-4ad3-11d2-b953-3078302c2030)
|
|
]
|
|
coclass MMFactory
|
|
{
|
|
[default] interface IMMFactory;
|
|
};
|
|
}
|