ReactOS  0.4.14-dev-317-g96040ec
mmstream.idl
Go to the documentation of this file.
1 /*
2  * Copyright 2004 Christian Costa
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 "unknwn.idl";
20 
21 cpp_quote("#define MS_ERROR_CODE(x) MAKE_HRESULT(1, FACILITY_ITF, (x) + 0x400)")
22 cpp_quote("#define MS_SUCCESS_CODE(x) MAKE_HRESULT(0, FACILITY_ITF, x)")
23 cpp_quote("#define MS_S_PENDING MS_SUCCESS_CODE(1)")
24 cpp_quote("#define MS_S_NOUPDATE MS_SUCCESS_CODE(2)")
25 cpp_quote("#define MS_S_ENDOFSTREAM MS_SUCCESS_CODE(3)")
26 
27 cpp_quote("#define MS_E_SAMPLEALLOC MS_ERROR_CODE(1)")
28 cpp_quote("#define MS_E_PURPOSEID MS_ERROR_CODE(2)")
29 cpp_quote("#define MS_E_NOSTREAM MS_ERROR_CODE(3)")
30 cpp_quote("#define MS_E_NOSEEKING MS_ERROR_CODE(4)")
31 cpp_quote("#define MS_E_INCOMPATIBLE MS_ERROR_CODE(5)")
32 cpp_quote("#define MS_E_BUSY MS_ERROR_CODE(6)")
33 cpp_quote("#define MS_E_NOTINIT MS_ERROR_CODE(7)")
34 cpp_quote("#define MS_E_SOURCEALREADYDEFINED MS_ERROR_CODE(8)")
35 cpp_quote("#define MS_E_INVALIDSTREAMTYPE MS_ERROR_CODE(9)")
36 cpp_quote("#define MS_E_NOTRUNNING MS_ERROR_CODE(10)")
37 
38 cpp_quote("DEFINE_GUID(MSPID_PrimaryVideo, 0xa35ff56a, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);")
39 cpp_quote("DEFINE_GUID(MSPID_PrimaryAudio, 0xa35ff56b, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);")
40 
41 cpp_quote("#if 0")
42 typedef void* PAPCFUNC;
43 cpp_quote("#endif")
44 
46 
47 typedef GUID MSPID;
48 typedef REFGUID REFMSPID;
49 
50 typedef enum {
54 } STREAM_TYPE;
55 
56 typedef enum {
59 } STREAM_STATE;
60 
61 
62 typedef enum {
63  COMPSTAT_NOUPDATEOK = 0x00000001,
64  COMPSTAT_WAIT = 0x00000002,
65  COMPSTAT_ABORT = 0x00000004
67 
68 enum {
69  MMSSF_HASCLOCK = 0x00000001,
70  MMSSF_SUPPORTSEEK = 0x00000002,
71  MMSSF_ASYNCHRONOUS = 0x00000004
72 };
73 
74 enum {
75  SSUPDATE_ASYNC = 0x00000001,
76  SSUPDATE_CONTINUOUS = 0x00000002
77 };
78 
79 interface IMultiMediaStream;
80 interface IMediaStream;
81 interface IStreamSample;
82 
83 
84 [
85 object,
86 local,
87 uuid(B502D1BC-9A57-11d0-8FDE-00C04FD9189D),
89 ]
91 
93  [out, optional] DWORD *pdwFlags,
94  [out, optional] STREAM_TYPE *pStreamType);
95 
97  [in] REFMSPID idPurpose,
98  [out] IMediaStream **ppMediaStream);
99 
101  [in] long Index,
102  [out] IMediaStream **ppMediaStream);
103 
105  [out] STREAM_STATE *pCurrentState);
106 
108  [in] STREAM_STATE NewState);
109 
111  [out] STREAM_TIME *pCurrentTime);
112 
114  [out] STREAM_TIME *pDuration);
115 
116  HRESULT Seek(
117  [in] STREAM_TIME SeekTime);
118 
120  [out] HANDLE *phEOS);
121 }
122 
123 
124 [
125 object,
126 uuid(B502D1BD-9A57-11d0-8FDE-00C04FD9189D),
128 ]
129 interface IMediaStream : IUnknown {
130 
132  [out] IMultiMediaStream **ppMultiMediaStream);
133 
135  [out, optional] MSPID *pPurposeId,
136  [out, optional] STREAM_TYPE *pType);
137 
139  [in] IMediaStream *pStreamThatHasDesiredFormat,
140  [in] DWORD dwFlags);
141 
143  [in] DWORD dwFlags,
144  [out] IStreamSample **ppSample);
145 
147  [in] IStreamSample *pExistingSample,
148  [in] DWORD dwFlags,
149  [out] IStreamSample **ppNewSample);
150 
152 }
153 
154 
155 [
156 object,
157 local,
158 uuid(B502D1BE-9A57-11d0-8FDE-00C04FD9189D),
160 ]
161 interface IStreamSample : IUnknown {
162 
164  [in] IMediaStream **ppMediaStream);
165 
167  [out, optional] STREAM_TIME * pStartTime,
168  [out, optional] STREAM_TIME * pEndTime,
169  [out, optional] STREAM_TIME * pCurrentTime);
170 
172  [in, optional] const STREAM_TIME *pStartTime,
173  [in, optional] const STREAM_TIME *pEndTime);
174 
175  HRESULT Update(
176  [in] DWORD dwFlags,
178  [in, optional] PAPCFUNC pfnAPC,
179  [in, optional] DWORD dwAPCData);
180 
182  [in] DWORD dwFlags,
183  [in, optional] DWORD dwMilliseconds);
184 }
LONGLONG STREAM_TIME
Definition: mmstream.idl:45
HRESULT GetInformation([out, optional] MSPID *pPurposeId, [out, optional] STREAM_TYPE *pType)
GLint x0
Definition: linetemp.h:95
Definition: scsiwmi.h:51
HRESULT SetSameFormat([in] IMediaStream *pStreamThatHasDesiredFormat, [in] DWORD dwFlags)
STREAM_STATE
Definition: mmstream.idl:56
HRESULT EnumMediaStreams([in] long Index, [out] IMediaStream **ppMediaStream)
HRESULT CompletionStatus([in] DWORD dwFlags, [in, optional] DWORD dwMilliseconds)
HRESULT GetTime([out] STREAM_TIME *pCurrentTime)
HRESULT CreateSharedSample([in] IStreamSample *pExistingSample, [in] DWORD dwFlags, [out] IStreamSample **ppNewSample)
STREAM_TYPE
Definition: mmstream.idl:50
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
static HANDLE hEvent
Definition: comm.c:54
HRESULT GetSampleTimes([out, optional] STREAM_TIME *pStartTime, [out, optional] STREAM_TIME *pEndTime, [out, optional] STREAM_TIME *pCurrentTime)
HRESULT SetSampleTimes([in, optional] const STREAM_TIME *pStartTime, [in, optional] const STREAM_TIME *pEndTime)
Definition: msg.h:41
int64_t LONGLONG
Definition: typedefs.h:66
HRESULT SetState([in] STREAM_STATE NewState)
LONG HRESULT
Definition: typedefs.h:77
static const UCHAR Index[8]
Definition: usbohci.c:18
static FILE * out
Definition: regtests2xml.c:44
unsigned long DWORD
Definition: ntddk_ex.h:95
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1175
COMPLETION_STATUS_FLAGS
Definition: mmstream.idl:62
HRESULT Update([in] DWORD dwFlags, [in, optional] HANDLE hEvent, [in, optional] PAPCFUNC pfnAPC, [in, optional] DWORD dwAPCData)
HRESULT GetEndOfStreamEventHandle([out] HANDLE *phEOS)
#define local
Definition: zutil.h:30
HRESULT GetDuration([out] STREAM_TIME *pDuration)
HRESULT AllocateSample([in] DWORD dwFlags, [out] IStreamSample **ppSample)
GLuint in
Definition: glext.h:9616
static unsigned char pointer_default
Definition: parser.tab.c:114
HRESULT GetState([out] STREAM_STATE *pCurrentState)
MS_E_NOTRUNNING(x) DEFINE_GUID(MSPID_PrimaryVideo, 0xa35ff56a, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d)
HRESULT GetMediaStream([in] REFMSPID idPurpose, [out] IMediaStream **ppMediaStream)
void * PAPCFUNC
Definition: mmstream.idl:42
HRESULT GetInformation([out, optional] DWORD *pdwFlags, [out, optional] STREAM_TYPE *pStreamType)
HRESULT Seek([in] STREAM_TIME SeekTime)
HRESULT GetMediaStream([in] IMediaStream **ppMediaStream)
void * object
Definition: jmemsys.h:48
HRESULT GetMultiMediaStream([out] IMultiMediaStream **ppMultiMediaStream)
HRESULT SendEndOfStream(DWORD dwFlags)