ReactOS  0.4.15-dev-2704-gd5265b0
mfidl.idl
Go to the documentation of this file.
1 /*
2  * Copyright 2016 Michael Müller
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18 
19 import "mfobjects.idl";
20 import "mftransform.idl";
21 
22 typedef unsigned __int64 TOPOID;
23 typedef LONGLONG MFTIME;
24 
25 typedef enum MF_TOPOLOGY_TYPE
26 {
31  MF_TOPOLOGY_MAX = 0xffffffff
33 
34 typedef enum _MFCLOCK_STATE
35 {
41 
42 typedef enum MF_OBJECT_TYPE
43 {
48 
49 typedef struct _MFCLOCK_PROPERTIES
50 {
58 
59 [
60  object,
61  uuid(2eb1e945-18b8-4139-9b1a-d5d584818530),
62 ]
63 interface IMFClock : IUnknown
64 {
65  HRESULT GetClockCharacteristics([out] DWORD *characteristics);
66  HRESULT GetCorrelatedTime([in] DWORD reserved, [out] LONGLONG *clock_time, [out] MFTIME *system_time);
70 }
71 
72 [
73  object,
74  uuid(83cf873a-f6da-4bc8-823f-bacfd55dc430),
75 ]
77 {
78  HRESULT SetObject([in] IUnknown *object);
79  HRESULT GetObject([out] IUnknown **object);
85  [local] HRESULT ConnectOutput([in] DWORD output_index, [in] IMFTopologyNode *node, [in] DWORD input_index);
87  HRESULT GetInput([in] DWORD input_index, [out] IMFTopologyNode **node, [out] DWORD *output_index);
88  HRESULT GetOutput([in] DWORD output_index, [out] IMFTopologyNode **node, [out] DWORD *input_index);
90  [local] HRESULT GetOutputPrefType([in] DWORD output_index, [out] IMFMediaType **type);
92  [out, size_is(, *length)] BYTE **data);
96  [out, size_is(, *length)] BYTE **data);
98 }
99 
100 [
101  object,
102  uuid(83cf873a-f6da-4bc8-823f-bacfd55dc433),
103 ]
105 {
109  HRESULT GetNodeCount([out] WORD *nodes);
111  [local] HRESULT Clear();
112  HRESULT CloneFrom([in] IMFTopology *topology);
116 }
117 
118 [
119  object,
120  uuid(90377834-21d0-4dee-8214-ba2e3e6c1127),
121 ]
122 interface IMFMediaSession : IMFMediaEventGenerator
123 {
124  HRESULT SetTopology([in] DWORD flags, [in] IMFTopology *topology);
126  HRESULT Start([in, unique] const GUID *format, [in, unique] const PROPVARIANT *start);
127  HRESULT Pause();
128  HRESULT Stop();
129  HRESULT Close();
130  HRESULT Shutdown();
133  HRESULT GetFullTopology([in] DWORD flags, [in] TOPOID id, [out] IMFTopology **topology);
134 }
135 
136 [
137  object,
138  uuid(fbe5a32d-a497-4b61-bb85-97b1a848a6e3)
139 ]
141 {
143  [out] MF_OBJECT_TYPE *obj_type, [out] IUnknown **object);
145  [in] IPropertyStore *props, [out] MF_OBJECT_TYPE *obj_type, [out] IUnknown **object);
147  [out] IUnknown **cancel_cookie, [in] IMFAsyncCallback *callback, [in] IUnknown *unk_state);
151  [out] IUnknown **object);
153  [out] MF_OBJECT_TYPE *obj_type, [out] IUnknown **object);
155  [in] DWORD flags, [in] IPropertyStore *props, [out] IUnknown **cancel_cookie,
156  [in] IMFAsyncCallback *callback, [in] IUnknown *unk_state);
161  [out] IUnknown **object);
163  [out] MF_OBJECT_TYPE *obj_type, [out] IUnknown **object);
164  [local] HRESULT CanceObjectCreation([in] IUnknown *cancel_cookie);
165 }
166 
167 cpp_quote("HRESULT WINAPI MFCreateMediaSession(IMFAttributes *config, IMFMediaSession **session);")
HRESULT EndCreateObjectFromByteStream([in] IMFAsyncResult *result, [out] MF_OBJECT_TYPE *obj_type, [out] IUnknown **object)
HRESULT AddNode([in] IMFTopologyNode *node)
HRESULT GetNodeType([out] MF_TOPOLOGY_TYPE *type)
HRESULT GetNodeByID([in] TOPOID id, [out] IMFTopologyNode **node)
HRESULT GetTopologyID([out] TOPOID *id)
HRESULT GetSourceNodeCollection([out] IMFCollection **collection)
HRESULT CreateObjectFromURL([in] const WCHAR *url, [in] DWORD flags, [in] IPropertyStore *props, [out] MF_OBJECT_TYPE *obj_type, [out] IUnknown **object)
HRESULT CreateObjectFromByteStream([in] IMFByteStream *stream, [in] const WCHAR *url, [in] DWORD flags, [in] IPropertyStore *props, [out] MF_OBJECT_TYPE *obj_type, [out] IUnknown **object)
coclass MSXML2::XSLTemplate40 object
GLuint64EXT * result
Definition: glext.h:11304
HRESULT GetCorrelatedTime([in] DWORD reserved, [out] LONGLONG *clock_time, [out] MFTIME *system_time)
HRESULT GetFullTopology([in] DWORD flags, [in] TOPOID id, [out] IMFTopology **topology)
HRESULT Pause()
HRESULT RemoteEndCreateObjectFromByteStream([in] IUnknown *result, [out] MF_OBJECT_TYPE *obj_type, [out] IUnknown **object)
GLuint GLuint GLsizei count
Definition: gl.h:1545
HRESULT CanceObjectCreation([in] IUnknown *cancel_cookie)
HRESULT GetSessionCapabilities([out] DWORD *caps)
HRESULT GetClock([out] IMFClock **clock)
HRESULT GetObject([out] IUnknown **object)
HRESULT RemoveNode([in] IMFTopologyNode *node)
HRESULT GetNodeCount([out] WORD *nodes)
HRESULT RemoteGetInputPrefType([in] DWORD index, [out] DWORD *length, [out, size_is(, *length)] BYTE **data)
HRESULT GetProperties([out] MFCLOCK_PROPERTIES *props)
HRESULT GetOutput([in] DWORD output_index, [out] IMFTopologyNode **node, [out] DWORD *input_index)
HRESULT GetClockCharacteristics([out] DWORD *characteristics)
coclass AMMultiMediaStream cpp_quote("DEFINE_GUID(CLSID_AMDirectDrawStream, 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") cpp_quote("DEFINE_GUID(CLSID_AMAudioStream
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: gl.h:1546
HRESULT WINAPI MFCreateSourceResolver(IMFSourceResolver **resolver)
HRESULT RemoteBeginCreateObjectFromByteStream([in] IMFByteStream *stream, [in, unique] const WCHAR *url, [in] DWORD flags, [in, unique] IPropertyStore *props, [in] IMFRemoteAsyncCallback *callback)
HRESULT DisconnectOutput([in] DWORD index)
HRESULT SetTopology([in] DWORD flags, [in] IMFTopology *topology)
HRESULT ConnectOutput([in] DWORD output_index, [in] IMFTopologyNode *node, [in] DWORD input_index)
HRESULT ClearTopologies()
HRESULT GetState([in] DWORD reserved, [out] MFCLOCK_STATE *state)
HRESULT Clear()
DWORD dwClockFlags
Definition: mfidl.idl:53
HRESULT GetNode([in] WORD index, [out] IMFTopologyNode **node)
HRESULT SetObject([in] IUnknown *object)
HRESULT GetInputCount([out] DWORD *count)
GLenum GLuint GLenum GLsizei length
Definition: glext.h:5579
r reserved
Definition: btrfs.c:2940
enum _MFCLOCK_STATE MFCLOCK_STATE
HRESULT SetOutputPrefType([in] DWORD index, [in] IMFMediaType *type)
GLuint index
Definition: glext.h:6031
HRESULT WINAPI MFCreateTopology(IMFTopology **topology)
HRESULT Close()
HRESULT GetOutputPrefType([in] DWORD output_index, [out] IMFMediaType **type)
HRESULT SetTopoNodeID([in] TOPOID id)
int64_t LONGLONG
Definition: typedefs.h:68
HRESULT CloneFrom([in] IMFTopologyNode *node)
HRESULT Start([in, unique] const GUID *format, [in, unique] const PROPVARIANT *start)
MmuTrapHandler callback[0x30]
Definition: mmuobject.c:44
GLfloat f
Definition: glext.h:7540
__wchar_t WCHAR
Definition: xmlstorage.h:180
LONGLONG MFTIME
Definition: mfidl.idl:23
unsigned __int64 qwCorrelationRate
Definition: mfidl.idl:51
LONG HRESULT
Definition: typedefs.h:79
HRESULT CloneFrom([in] IMFTopology *topology)
static const WCHAR url[]
Definition: encode.c:1432
HRESULT Stop()
HRESULT RemoteGetOutputPrefType([in] DWORD index, [out] DWORD *length, [out, size_is(, *length)] BYTE **data)
#define WINAPI
Definition: msvc.h:6
unsigned short WORD
Definition: ntddk_ex.h:93
static FILE * out
Definition: regtests2xml.c:44
unsigned long DWORD
Definition: ntddk_ex.h:95
HRESULT BeginCreateObjectFromByteStream([in] IMFByteStream *stream, [in] const WCHAR *url, [in] DWORD flags, [in] IPropertyStore *props, [out] IUnknown **cancel_cookie, [in] IMFAsyncCallback *callback, [in] IUnknown *unk_state)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLbitfield flags
Definition: glext.h:7161
MF_TOPOLOGY_TYPE
Definition: mfidl.idl:25
HRESULT RemoteEndCreateObjectFromURL([in] IUnknown *result, [out] MF_OBJECT_TYPE *obj_type, [out] IUnknown **object)
Definition: parse.h:22
HRESULT GetInput([in] DWORD input_index, [out] IMFTopologyNode **node, [out] DWORD *output_index)
static int state
Definition: maze.c:121
HRESULT GetInputPrefType([in] DWORD index, [out] IMFMediaType **type)
unsigned char BYTE
Definition: xxhash.c:193
HRESULT GetOutputCount([out] DWORD *count)
DWORD dwClockTolerance
Definition: mfidl.idl:55
#define local
Definition: zutil.h:30
DWORD dwClockJitter
Definition: mfidl.idl:56
HRESULT GetOutputNodeCollection([out] IMFCollection **collection)
HRESULT Shutdown()
HRESULT GetContinuityKey([out] DWORD *key)
HRESULT SetInputPrefType([in] DWORD index, [in] IMFMediaType *type)
GLuint in
Definition: glext.h:9616
HRESULT EndCreateObjectFromURL([in] IMFAsyncResult *result, [out] MF_OBJECT_TYPE *obj_type, [out] IUnknown **object)
GLuint start
Definition: gl.h:1545
static ICollection collection
Definition: typelib.c:184
MF_OBJECT_TYPE
Definition: mfidl.idl:42
_Check_return_ _CRTIMP clock_t __cdecl clock(void)
Definition: clock.c:23
static const WCHAR props[]
Definition: wbemdisp.c:288
HRESULT GetTopoNodeID([out] TOPOID *id)
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
unsigned __int64 TOPOID
Definition: mfidl.idl:19
HRESULT RemoteBeginCreateObjectFromURL([in, string] const WCHAR *url, [in] DWORD flags, [in] IPropertyStore *props, [in] IMFRemoteAsyncCallback *callback)
unsigned __int64 qwClockFrequency
Definition: mfidl.idl:54
HRESULT BeginCreateObjectFromURL([in] const WCHAR *url, [in] DWORD flags, [in] IPropertyStore *props, [out] IUnknown **cancel_cookie, [in] IMFAsyncCallback *callback, [in] IUnknown *unk_state)
struct _MFCLOCK_PROPERTIES MFCLOCK_PROPERTIES
#define __int64
Definition: basetyps.h:16
_MFCLOCK_STATE
Definition: mfidl.idl:34
Definition: path.c:41
Definition: dlist.c:348