|  | /* | 
|  | * 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; | 
|  | }; |