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