2008-02-13 21:59:43 +01:00
|
|
|
/*
|
|
|
|
* 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,
|
2009-03-12 01:42:24 +01:00
|
|
|
LONG BufferLen
|
2008-02-13 21:59:43 +01:00
|
|
|
);
|
|
|
|
}
|
2008-02-13 22:10:23 +01:00
|
|
|
|
|
|
|
[
|
|
|
|
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(
|
2009-03-12 01:42:24 +01:00
|
|
|
[in,out] LONG * pBufferSize,
|
|
|
|
[out] LONG * pBuffer
|
2008-02-13 22:10:23 +01:00
|
|
|
);
|
|
|
|
|
|
|
|
HRESULT GetCurrentSample(
|
|
|
|
[out] IMediaSample ** ppSample
|
|
|
|
);
|
|
|
|
|
|
|
|
HRESULT SetCallback(
|
|
|
|
ISampleGrabberCB * pCallback,
|
2009-03-12 01:42:24 +01:00
|
|
|
LONG WhichMethodToCallback
|
2008-02-13 22:10:23 +01:00
|
|
|
);
|
|
|
|
};
|
2008-02-13 09:49:37 +01:00
|
|
|
|
|
|
|
[
|
|
|
|
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(
|
2009-03-12 01:42:24 +01:00
|
|
|
[out] LONG *pVal
|
2008-02-13 09:49:37 +01:00
|
|
|
);
|
|
|
|
|
|
|
|
HRESULT get_CurrentStream(
|
2009-03-12 01:42:24 +01:00
|
|
|
[out] LONG *pVal
|
2008-02-13 09:49:37 +01:00
|
|
|
);
|
|
|
|
|
|
|
|
HRESULT put_CurrentStream(
|
2009-03-12 01:42:24 +01:00
|
|
|
LONG newVal
|
2008-02-13 09:49:37 +01:00
|
|
|
);
|
|
|
|
|
|
|
|
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,
|
2009-03-12 01:42:24 +01:00
|
|
|
LONG * pBufferSize,
|
2008-02-13 09:49:37 +01:00
|
|
|
char * pBuffer,
|
2009-03-12 01:42:24 +01:00
|
|
|
LONG Width,
|
|
|
|
LONG Height
|
2008-02-13 09:49:37 +01:00
|
|
|
);
|
|
|
|
|
|
|
|
HRESULT WriteBitmapBits(
|
|
|
|
double StreamTime,
|
2009-03-12 01:42:24 +01:00
|
|
|
LONG Width,
|
|
|
|
LONG Height,
|
2008-02-13 09:49:37 +01:00
|
|
|
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;
|
|
|
|
};
|