Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenamstream.idl
Go to the documentation of this file.
00001 /* 00002 * Copyright 2004 Christian Costa 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Lesser General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2.1 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public 00015 * License along with this library; if not, write to the Free Software 00016 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 00017 */ 00018 00019 import "unknwn.idl"; 00020 import "mmstream.idl"; 00021 import "strmif.idl"; 00022 00023 cpp_quote("#include <ddraw.h>") 00024 cpp_quote("#include <mmsystem.h>") 00025 cpp_quote("#include <mmstream.h>") 00026 cpp_quote("#include <ddstream.h>") 00027 cpp_quote("#include <austream.h>") 00028 00029 cpp_quote("#if 0") 00030 interface IDirectDraw; 00031 interface IDirectDrawSurface; 00032 cpp_quote("#endif") 00033 00034 interface IAMMultiMediaStream; 00035 interface IAMMediaStream; 00036 interface IMediaStreamFilter; 00037 interface IAMMediaTypeStream; 00038 interface IAMMediaTypeSample; 00039 00040 enum { 00041 AMMSF_NOGRAPHTHREAD = 0x00000001 00042 }; 00043 00044 enum { 00045 AMMSF_ADDDEFAULTRENDERER = 0x00000001, 00046 AMMSF_CREATEPEER = 0x00000002, 00047 AMMSF_STOPIFNOSAMPLES = 0x00000004, 00048 AMMSF_NOSTALL = 0x00000008 00049 }; 00050 00051 enum { 00052 AMMSF_RENDERTYPEMASK = 0x00000003, 00053 AMMSF_RENDERTOEXISTING = 0x00000000, 00054 AMMSF_RENDERALLSTREAMS = 0x00000001, 00055 AMMSF_NORENDER = 0x00000002, 00056 AMMSF_NOCLOCK = 0x00000004, 00057 AMMSF_RUN = 0x00000008 00058 }; 00059 00060 00061 typedef [v1_enum] enum { 00062 Disabled = 0, 00063 ReadData = 1, 00064 RenderData = 2 00065 } OUTPUT_STATE; 00066 00067 [ 00068 object, 00069 uuid(7DB01C96-C0C3-11d0-8FF1-00C04FD9189D), 00070 dual, 00071 helpstring("IDirectShowStream Interface"), 00072 pointer_default(unique) 00073 ] 00074 interface IDirectShowStream : IDispatch 00075 { 00076 [propget, id(1), helpstring("property FileName")] HRESULT FileName([out, retval] BSTR *pVal); 00077 [propput, id(1), helpstring("property FileName")] HRESULT FileName([in] BSTR newVal); 00078 [propget, id(2), helpstring("property Video")] HRESULT Video([out, retval] OUTPUT_STATE *pVal); 00079 [propput, id(2), helpstring("propetry Video")] HRESULT Video([in] OUTPUT_STATE newVal); 00080 [propget, id(3), helpstring("property Audio")] HRESULT Audio([out, retval] OUTPUT_STATE *pVal); 00081 [propput, id(3), helpstring("propetry Audio")] HRESULT Audio([in] OUTPUT_STATE newVal); 00082 }; 00083 00084 [ 00085 object, 00086 uuid(BEBE595C-9A6F-11d0-8FDE-00C04FD9189D), 00087 pointer_default(unique) 00088 ] 00089 interface IAMMultiMediaStream : IMultiMediaStream 00090 { 00091 HRESULT Initialize( 00092 [in] STREAM_TYPE StreamType, 00093 [in] DWORD dwFlags, 00094 [in] IGraphBuilder *pFilterGraph); 00095 00096 HRESULT GetFilterGraph( 00097 [out] IGraphBuilder **ppGraphBuilder); 00098 00099 HRESULT GetFilter( 00100 [out] IMediaStreamFilter **ppFilter); 00101 00102 HRESULT AddMediaStream( 00103 [in] IUnknown *pStreamObject, 00104 [in] const MSPID *PurposeId, 00105 [in] DWORD dwFlags, 00106 [out] IMediaStream **ppNewStream); 00107 00108 HRESULT OpenFile( 00109 [in] LPCWSTR pszFileName, 00110 [in] DWORD dwFlags); 00111 00112 HRESULT OpenMoniker( 00113 [in] IBindCtx *pCtx, 00114 [in] IMoniker *pMoniker, 00115 [in] DWORD dwFlags); 00116 00117 HRESULT Render( 00118 [in] DWORD dwFlags); 00119 } 00120 00121 00122 [ 00123 object, 00124 uuid(BEBE595D-9A6F-11d0-8FDE-00C04FD9189D), 00125 pointer_default(unique) 00126 ] 00127 interface IAMMediaStream : IMediaStream 00128 { 00129 HRESULT Initialize( 00130 [in] IUnknown *pSourceObject, 00131 [in] DWORD dwFlags, 00132 [in] REFMSPID PurposeId, 00133 [in] const STREAM_TYPE StreamType); 00134 00135 HRESULT SetState( 00136 [in] FILTER_STATE State); 00137 00138 HRESULT JoinAMMultiMediaStream( 00139 [in] IAMMultiMediaStream *pAMMultiMediaStream); 00140 00141 HRESULT JoinFilter( 00142 [in] IMediaStreamFilter *pMediaStreamFilter); 00143 00144 HRESULT JoinFilterGraph( 00145 [in] IFilterGraph *pFilterGraph); 00146 } 00147 00148 00149 [ 00150 object, 00151 local, 00152 uuid(BEBE595E-9A6F-11d0-8FDE-00C04FD9189D), 00153 pointer_default(unique) 00154 ] 00155 interface IMediaStreamFilter : IBaseFilter 00156 { 00157 HRESULT AddMediaStream( 00158 [in] IAMMediaStream *pAMMediaStream); 00159 00160 HRESULT GetMediaStream( 00161 [in] REFMSPID idPurpose, 00162 [out] IMediaStream **ppMediaStream); 00163 00164 HRESULT EnumMediaStreams( 00165 [in] long Index, 00166 [out] IMediaStream **ppMediaStream); 00167 00168 HRESULT SupportSeeking( 00169 [in] BOOL bRenderer); 00170 00171 HRESULT ReferenceTimeToStreamTime( 00172 [in] [out] REFERENCE_TIME *pTime); 00173 00174 HRESULT GetCurrentStreamTime( 00175 [out] REFERENCE_TIME *pCurrentStreamTime); 00176 00177 HRESULT WaitUntil( 00178 [in] REFERENCE_TIME WaitStreamTime); 00179 00180 HRESULT Flush( 00181 [in] BOOL bCancelEOS); 00182 00183 HRESULT EndOfStream(); 00184 } 00185 00186 00187 [ 00188 object, 00189 local, 00190 uuid(AB6B4AFC-F6E4-11d0-900D-00C04FD9189D), 00191 pointer_default(unique) 00192 ] 00193 interface IDirectDrawMediaSampleAllocator : IUnknown 00194 { 00195 HRESULT GetDirectDraw(IDirectDraw **ppDirectDraw); 00196 } 00197 00198 00199 [ 00200 object, 00201 local, 00202 uuid(AB6B4AFE-F6E4-11d0-900D-00C04FD9189D), 00203 pointer_default(unique) 00204 ] 00205 interface IDirectDrawMediaSample : IUnknown 00206 { 00207 HRESULT GetSurfaceAndReleaseLock( 00208 [out] IDirectDrawSurface **ppDirectDrawSurface, 00209 [out] RECT * pRect); 00210 00211 HRESULT LockMediaSamplePointer(void); 00212 } 00213 00214 00215 [ 00216 object, 00217 local, 00218 uuid(AB6B4AFA-F6E4-11d0-900D-00C04FD9189D), 00219 pointer_default(unique) 00220 ] 00221 00222 interface IAMMediaTypeStream : IMediaStream 00223 { 00224 HRESULT GetFormat( 00225 [out] AM_MEDIA_TYPE * pMediaType, 00226 [in] DWORD dwFlags); 00227 00228 HRESULT SetFormat( 00229 [in] AM_MEDIA_TYPE * pMediaType, 00230 [in] DWORD dwFlags); 00231 00232 HRESULT CreateSample( 00233 [in] long lSampleSize, 00234 [in] BYTE * pbBuffer, 00235 [in] DWORD dwFlags, 00236 [in] IUnknown *pUnkOuter, 00237 [out] IAMMediaTypeSample ** ppAMMediaTypeSample); 00238 00239 HRESULT GetStreamAllocatorRequirements( 00240 [out] ALLOCATOR_PROPERTIES *pProps); 00241 00242 HRESULT SetStreamAllocatorRequirements( 00243 [in] ALLOCATOR_PROPERTIES *pProps); 00244 } 00245 00246 00247 [ 00248 object, 00249 local, 00250 uuid(AB6B4AFB-F6E4-11d0-900D-00C04FD9189D), 00251 pointer_default(unique) 00252 ] 00253 interface IAMMediaTypeSample : IStreamSample 00254 { 00255 HRESULT SetPointer( 00256 [in] BYTE *pBuffer, 00257 [in] long lSize); 00258 00259 HRESULT GetPointer( 00260 [out] BYTE ** ppBuffer); 00261 00262 long GetSize(void); 00263 00264 HRESULT GetTime( 00265 [out] REFERENCE_TIME * pTimeStart, 00266 [out] REFERENCE_TIME * pTimeEnd); 00267 00268 HRESULT SetTime( 00269 [in] REFERENCE_TIME * pTimeStart, 00270 [in] REFERENCE_TIME * pTimeEnd); 00271 00272 HRESULT IsSyncPoint(void); 00273 00274 HRESULT SetSyncPoint( 00275 BOOL bIsSyncPoint); 00276 00277 HRESULT IsPreroll(void); 00278 00279 HRESULT SetPreroll( 00280 BOOL bIsPreroll); 00281 00282 long GetActualDataLength(void); 00283 00284 HRESULT SetActualDataLength(long Len); 00285 00286 HRESULT GetMediaType( 00287 AM_MEDIA_TYPE **ppMediaType); 00288 00289 HRESULT SetMediaType( 00290 AM_MEDIA_TYPE *pMediaType); 00291 00292 HRESULT IsDiscontinuity(void); 00293 00294 HRESULT SetDiscontinuity( 00295 BOOL bDiscontinuity); 00296 00297 HRESULT GetMediaTime( 00298 [out] LONGLONG * pTimeStart, 00299 [out] LONGLONG * pTimeEnd); 00300 00301 HRESULT SetMediaTime( 00302 [in] LONGLONG * pTimeStart, 00303 [in] LONGLONG * pTimeEnd); 00304 } 00305 00306 [ 00307 uuid(49C47CE5-9BA4-11d0-8212-00C04FC32C45) 00308 ] 00309 coclass AMMultiMediaStream 00310 { 00311 [default] dispinterface IDirectShowStream; 00312 } 00313 00314 cpp_quote("DEFINE_GUID(CLSID_AMDirectDrawStream, 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") 00315 cpp_quote("DEFINE_GUID(CLSID_AMAudioStream, 0x8496e040, 0xaf4c, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") 00316 cpp_quote("DEFINE_GUID(CLSID_AMAudioData, 0xf2468580, 0xaf8a, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") 00317 cpp_quote("DEFINE_GUID(CLSID_AMMediaTypeStream, 0xcf0f2f7c, 0xf7bf, 0x11d0, 0x90, 0x0d, 0x00, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);") 00318 cpp_quote("DEFINE_GUID(CLSID_MediaStreamFilter, 0x49c47ce0, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") Generated on Sat May 26 2012 04:29:13 for ReactOS by
1.7.6.1
|