| /* |
| * 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; |
| }; |
| |
| enum |
| { |
| E_NOTINTREE = 0x80040400, |
| E_RENDER_ENGINE_IS_BROKEN = 0x80040401, |
| E_MUST_INIT_RENDERER = 0x80040402, |
| E_NOTDETERMINED = 0x80040403, |
| E_NO_TIMELINE = 0x80040404, |
| S_WARN_OUTPUTRESET = 40404 |
| }; |