25cpp_quote("#include <mmstream.h>")
26cpp_quote("#include <ddstream.h>")
27cpp_quote("#include <austream.h>")
31interface IDirectDrawSurface;
34interface IAMMultiMediaStream;
35interface IAMMediaStream;
36interface IMediaStreamFilter;
37interface IAMMediaTypeStream;
38interface IAMMediaTypeSample;
41 AMMSF_NOGRAPHTHREAD = 0x00000001
45 AMMSF_ADDDEFAULTRENDERER = 0x00000001,
46 AMMSF_CREATEPEER = 0x00000002,
47 AMMSF_STOPIFNOSAMPLES = 0x00000004,
48 AMMSF_NOSTALL = 0x00000008
52 AMMSF_RENDERTYPEMASK = 0x00000003,
53 AMMSF_RENDERTOEXISTING = 0x00000000,
54 AMMSF_RENDERALLSTREAMS = 0x00000001,
55 AMMSF_NORENDER = 0x00000002,
56 AMMSF_NOCLOCK = 0x00000004,
57 AMMSF_RUN = 0x00000008
61typedef [v1_enum] enum {
69uuid(7DB01C96-C0C3-11d0-8FF1-00C04FD9189D),
71helpstring("IDirectShowStream Interface"),
72pointer_default(unique)
74interface IDirectShowStream : IDispatch
76 [propget, id(1), helpstring("property FileName")] HRESULT FileName([out, retval] BSTR *pVal);
77 [propput, id(1), helpstring("property FileName")] HRESULT FileName([in] BSTR newVal);
78 [propget, id(2), helpstring("property Video")] HRESULT Video([out, retval] OUTPUT_STATE *pVal);
79 [propput, id(2), helpstring("propetry Video")] HRESULT Video([in] OUTPUT_STATE newVal);
80 [propget, id(3), helpstring("property Audio")] HRESULT Audio([out, retval] OUTPUT_STATE *pVal);
81 [propput, id(3), helpstring("propetry Audio")] HRESULT Audio([in] OUTPUT_STATE newVal);
86uuid(BEBE595C-9A6F-11d0-8FDE-00C04FD9189D),
87pointer_default(unique)
89interface IAMMultiMediaStream : IMultiMediaStream
92 [in] STREAM_TYPE StreamType,
94 [in] IGraphBuilder *pFilterGraph);
96 HRESULT GetFilterGraph(
97 [out] IGraphBuilder **ppGraphBuilder);
100 [out] IMediaStreamFilter **ppFilter);
102 HRESULT AddMediaStream(
103 [in] IUnknown *pStreamObject,
104 [in] const MSPID *PurposeId,
106 [out] IMediaStream **ppNewStream);
109 [in] LPCWSTR pszFileName,
114 [in] IMoniker *pMoniker,
124uuid(BEBE595D-9A6F-11d0-8FDE-00C04FD9189D),
125pointer_default(unique)
127interface IAMMediaStream : IMediaStream
130 [in] IUnknown *pSourceObject,
132 [in] REFMSPID PurposeId,
133 [in] const STREAM_TYPE StreamType);
136 [in] FILTER_STATE State);
138 HRESULT JoinAMMultiMediaStream(
139 [in] IAMMultiMediaStream *pAMMultiMediaStream);
142 [in] IMediaStreamFilter *pMediaStreamFilter);
144 HRESULT JoinFilterGraph(
145 [in] IFilterGraph *pFilterGraph);
152uuid(BEBE595E-9A6F-11d0-8FDE-00C04FD9189D),
153pointer_default(unique)
155interface IMediaStreamFilter : IBaseFilter
157 HRESULT AddMediaStream(
158 [in] IAMMediaStream *pAMMediaStream);
160 HRESULT GetMediaStream(
161 [in] REFMSPID idPurpose,
162 [out] IMediaStream **ppMediaStream);
164 HRESULT EnumMediaStreams(
166 [out] IMediaStream **ppMediaStream);
168 HRESULT SupportSeeking(
169 [in] BOOL bRenderer);
171 HRESULT ReferenceTimeToStreamTime(
172 [in] [out] REFERENCE_TIME *pTime);
174 HRESULT GetCurrentStreamTime(
175 [out] REFERENCE_TIME *pCurrentStreamTime);
178 [in] REFERENCE_TIME WaitStreamTime);
181 [in] BOOL bCancelEOS);
183 HRESULT EndOfStream();
190uuid(AB6B4AFC-F6E4-11d0-900D-00C04FD9189D),
191pointer_default(unique)
193interface IDirectDrawMediaSampleAllocator : IUnknown
195 HRESULT GetDirectDraw(IDirectDraw **ppDirectDraw);
202uuid(AB6B4AFE-F6E4-11d0-900D-00C04FD9189D),
203pointer_default(unique)
205interface IDirectDrawMediaSample : IUnknown
207 HRESULT GetSurfaceAndReleaseLock(
208 [out] IDirectDrawSurface **ppDirectDrawSurface,
211 HRESULT LockMediaSamplePointer(void);
218uuid(AB6B4AFA-F6E4-11d0-900D-00C04FD9189D),
219pointer_default(unique)
222interface IAMMediaTypeStream : IMediaStream
225 [out] AM_MEDIA_TYPE * pMediaType,
229 [in] AM_MEDIA_TYPE * pMediaType,
232 HRESULT CreateSample(
233 [in] long lSampleSize,
234 [in] BYTE * pbBuffer,
236 [in] IUnknown *pUnkOuter,
237 [out] IAMMediaTypeSample ** ppAMMediaTypeSample);
239 HRESULT GetStreamAllocatorRequirements(
240 [out] ALLOCATOR_PROPERTIES *pProps);
242 HRESULT SetStreamAllocatorRequirements(
243 [in] ALLOCATOR_PROPERTIES *pProps);
250uuid(AB6B4AFB-F6E4-11d0-900D-00C04FD9189D),
251pointer_default(unique)
253interface IAMMediaTypeSample : IStreamSample
260 [out] BYTE ** ppBuffer);
265 [out] REFERENCE_TIME * pTimeStart,
266 [out] REFERENCE_TIME * pTimeEnd);
269 [in] REFERENCE_TIME * pTimeStart,
270 [in] REFERENCE_TIME * pTimeEnd);
272 HRESULT IsSyncPoint(void);
274 HRESULT SetSyncPoint(
277 HRESULT IsPreroll(void);
282 long GetActualDataLength(void);
284 HRESULT SetActualDataLength(long Len);
286 HRESULT GetMediaType(
287 AM_MEDIA_TYPE **ppMediaType);
289 HRESULT SetMediaType(
290 AM_MEDIA_TYPE *pMediaType);
292 HRESULT IsDiscontinuity(void);
294 HRESULT SetDiscontinuity(
295 BOOL bDiscontinuity);
297 HRESULT GetMediaTime(
298 [out] LONGLONG * pTimeStart,
299 [out] LONGLONG * pTimeEnd);
301 HRESULT SetMediaTime(
302 [in] LONGLONG * pTimeStart,
303 [in] LONGLONG * pTimeEnd);
307 uuid(49C47CE5-9BA4-11d0-8212-00C04FC32C45)
309coclass AMMultiMediaStream
311 [default] dispinterface IDirectShowStream;
314cpp_quote("DEFINE_GUID(CLSID_AMDirectDrawStream, 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
315cpp_quote("DEFINE_GUID(CLSID_AMAudioStream, 0x8496e040, 0xaf4c, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
316cpp_quote("DEFINE_GUID(CLSID_AMAudioData, 0xf2468580, 0xaf8a, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
317cpp_quote("DEFINE_GUID(CLSID_AMMediaTypeStream, 0xcf0f2f7c, 0xf7bf, 0x11d0, 0x90, 0x0d, 0x00, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);")
318cpp_quote("DEFINE_GUID(CLSID_MediaStreamFilter, 0x49c47ce0, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
CD3D10_BUFFER_DESC D3D10_BUFFER_DESC cpp_quote(" ~CD3D10_BUFFER_DESC() {}") operator const D3D10_BUFFER_DESC &() const