windows-nt/Source/XPSP1/NT/multimedia/published/dxmdev/idl/mmapi.idl
2020-09-26 16:20:57 +08:00

217 lines
5.7 KiB
C++

// -*- 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;
};
}