| /* | |
| * Copyright (C) 2008 Google (Lei Zhang) | |
| * | |
| * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | |
| * | |
| * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | |
| */ | |
| import "oaidl.idl"; | |
| import "ocidl.idl"; | |
| /* import "dxtrans.idl"; */ | |
| import "amstream.idl"; | |
| import "msxml.idl"; | |
| [ | |
| object, | |
| uuid(0579154A-2B53-4994-B0D0-E773148EFF85), | |
| local, | |
| pointer_default(unique) | |
| ] | |
| interface ISampleGrabberCB : IUnknown | |
| { | |
| HRESULT SampleCB( | |
| double SampleTime, | |
| IMediaSample * pSample | |
| ); | |
| HRESULT BufferCB( | |
| double SampleTime, | |
| BYTE * pBuffer, | |
| LONG BufferLen | |
| ); | |
| } | |
| [ | |
| object, | |
| uuid(6B652FFF-11FE-4fce-92AD-0266B5D7C78F), | |
| local, | |
| pointer_default(unique) | |
| ] | |
| interface ISampleGrabber: IUnknown | |
| { | |
| HRESULT SetOneShot( | |
| BOOL OneShot | |
| ); | |
| HRESULT SetMediaType( | |
| const AM_MEDIA_TYPE * pType | |
| ); | |
| HRESULT GetConnectedMediaType( | |
| AM_MEDIA_TYPE * pType | |
| ); | |
| HRESULT SetBufferSamples( | |
| BOOL BufferThem | |
| ); | |
| HRESULT GetCurrentBuffer( | |
| [in,out] LONG * pBufferSize, | |
| [out] LONG * pBuffer | |
| ); | |
| HRESULT GetCurrentSample( | |
| [out] IMediaSample ** ppSample | |
| ); | |
| HRESULT SetCallback( | |
| ISampleGrabberCB * pCallback, | |
| LONG WhichMethodToCallback | |
| ); | |
| }; | |
| [ | |
| object, | |
| uuid(65bd0710-24d2-4FF7-9324-ed2e5d3abafa), | |
| pointer_default(unique) | |
| ] | |
| interface IMediaDet : IUnknown | |
| { | |
| HRESULT get_Filter( | |
| [out] IUnknown* *pVal | |
| ); | |
| HRESULT put_Filter( | |
| IUnknown* newVal | |
| ); | |
| HRESULT get_OutputStreams( | |
| [out] LONG *pVal | |
| ); | |
| HRESULT get_CurrentStream( | |
| [out] LONG *pVal | |
| ); | |
| HRESULT put_CurrentStream( | |
| LONG newVal | |
| ); | |
| HRESULT get_StreamType( | |
| [out] GUID *pVal | |
| ); | |
| HRESULT get_StreamTypeB( | |
| [out] BSTR *pVal | |
| ); | |
| HRESULT get_StreamLength( | |
| [out] double *pVal | |
| ); | |
| HRESULT get_Filename( | |
| [out] BSTR *pVal | |
| ); | |
| HRESULT put_Filename( | |
| BSTR newVal | |
| ); | |
| HRESULT GetBitmapBits( | |
| double StreamTime, | |
| LONG * pBufferSize, | |
| char * pBuffer, | |
| LONG Width, | |
| LONG Height | |
| ); | |
| HRESULT WriteBitmapBits( | |
| double StreamTime, | |
| LONG Width, | |
| LONG Height, | |
| BSTR Filename | |
| ); | |
| HRESULT get_StreamMediaType( | |
| [out] AM_MEDIA_TYPE * pVal | |
| ); | |
| HRESULT GetSampleGrabber( | |
| [out] ISampleGrabber ** ppVal | |
| ); | |
| HRESULT get_FrameRate( | |
| [out] double *pVal | |
| ); | |
| HRESULT EnterBitmapGrabMode( | |
| double SeekTime | |
| ); | |
| }; | |
| [ | |
| uuid(65BD0711-24D2-4ff7-9324-ED2E5D3ABAFA), | |
| ] | |
| coclass MediaDet | |
| { | |
| [default] interface IMediaDet; | |
| }; |