You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.6 KiB
52 lines
1.6 KiB
// VIDEOCAP.IDL
|
|
// Multi media stream based video capture IDL
|
|
|
|
import "mmstream.idl";
|
|
|
|
#define MAX_PATH 260
|
|
|
|
#define MAX_CAPDEV_NAME MAX_PATH
|
|
#define MAX_CAPDEV_DESCRIPTION MAX_PATH
|
|
#define MAX_CAPDEV_VERSION 80
|
|
|
|
cpp_quote("#ifndef _DCAP_H")
|
|
cpp_quote("#ifndef _FINDCAPTUREDEVICE_struct")
|
|
cpp_quote("#define _FINDCAPTUREDEVICE_struct")
|
|
typedef struct _FINDCAPTUREDEVICE
|
|
{
|
|
DWORD dwSize;
|
|
int nDeviceIndex;
|
|
char szDeviceName[MAX_CAPDEV_NAME];
|
|
char szDeviceDescription[MAX_CAPDEV_DESCRIPTION];
|
|
char szDeviceVersion[MAX_CAPDEV_VERSION];
|
|
} FINDCAPTUREDEVICE;
|
|
cpp_quote("#endif //#ifndef _FINDCAPTUREDEVICE_struct")
|
|
cpp_quote("#endif //#ifndef _DCAP_H")
|
|
|
|
[
|
|
object,
|
|
local,
|
|
uuid(09D9467A-1366-11D1-BC3A-00AA00A13C86),
|
|
pointer_default(unique)
|
|
]
|
|
interface IVideoCapture : IMediaStream
|
|
{
|
|
[propget, helpstring("property FrameRate (frames/100 seconds)")] HRESULT FrameRate([out, retval] long *pVal);
|
|
[propput, helpstring("property FrameRate (frames/100 seconds)")] HRESULT FrameRate([in] long newVal);
|
|
};
|
|
|
|
[
|
|
object,
|
|
local,
|
|
uuid(244C959E-1370-11d1-BC3A-00AA00A13C86),
|
|
pointer_default(unique)
|
|
]
|
|
interface IVideoCaptureEnum : IUnknown
|
|
{
|
|
HRESULT GetNumCaptureDevices([out] int *pDevices);
|
|
HRESULT FindFirstCaptureDevice([in, out] FINDCAPTUREDEVICE* lpfcd, LPCSTR szDeviceDescription);
|
|
HRESULT FindFirstCaptureDeviceByIndex([in, out] FINDCAPTUREDEVICE* lpfcd, int nDeviceIndex);
|
|
HRESULT FindNextCaptureDevice([in, out] FINDCAPTUREDEVICE* lpfcd);
|
|
HRESULT OpenCaptureDevice([in] int nDeviceNumber, [out] IVideoCapture** ppCapture);
|
|
};
|
|
|