/* * Copyright 2009 Damjan Jovanovic * * 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 "unknwn.idl"; import "oaidl.idl"; import "propidl.idl"; cpp_quote("#include <wiadef.h>") interface IEnumWIA_DEV_INFO; interface IWiaPropertyStorage; interface IWiaItem; interface IWiaEventCallback; cpp_quote("DEFINE_GUID(CLSID_WiaDevMgr, 0xa1f4e726,0x8cf1,0x11d1,0xbf,0x92,0x00,0x60,0x08,0x1e,0xd8,0x11);") [ object, uuid(5eb2502a-8cf1-11d1-bf92-0060081ed811) ] interface IWiaDevMgr : IUnknown { HRESULT EnumDeviceInfo( [in] LONG lFlag, [retval, out] IEnumWIA_DEV_INFO **ppIEnum); HRESULT CreateDevice( [in] BSTR bstrDeviceID, [out] IWiaItem **ppWiaItemRoot); HRESULT SelectDeviceDlg( [in] HWND hwndParent, [in] LONG lDeviceType, [in] LONG lFlags, [in, out, unique] BSTR *pbstrDeviceID, [retval, out] IWiaItem **ppItemRoot); HRESULT SelectDeviceDlgID( [in] HWND hwndParent, [in] LONG lDeviceType, [in] LONG lFlags, [retval, out] BSTR *pbstrDeviceID); HRESULT GetImageDlg( [in] HWND hwndParent, [in] LONG lDeviceType, [in] LONG lFlags, [in] LONG lIntent, [in] IWiaItem *pItemRoot, [in] BSTR bstrFilename, [in, out] GUID *pguidFormat); HRESULT RegisterEventCallbackProgram( [in] LONG lFlags, [in] BSTR bstrDeviceID, [in] const GUID *pEventGUID, [in] BSTR bstrCommandline, [in] BSTR bstrName, [in] BSTR bstrDescription, [in] BSTR bstrIcon); HRESULT RegisterEventCallbackInterface( [in] LONG lFlags, [in] BSTR bstrDeviceID, [in] const GUID *pEventGUID, [unique, in] IWiaEventCallback *pIWiaEventCallback, [out] IUnknown **pEventObject); HRESULT RegisterEventCallbackCLSID( [in] LONG lFlags, [in] BSTR bstrDeviceID, [in] const GUID *pEventGUID, [unique, in] const GUID *pClsID, [in] BSTR bstrName, [in] BSTR bstrDescription, [in] BSTR bstrIcon); HRESULT AddDeviceDlg( [in] HWND hwndParent, [in] LONG lFlags); } [ object, uuid(5e38b83c-8cf1-11d1-bf92-0060081ed811) ] interface IEnumWIA_DEV_INFO : IUnknown { HRESULT Next( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] IWiaPropertyStorage **rgelt, [out] ULONG *pceltFetched ); HRESULT Skip( [in] ULONG celt ); HRESULT Reset(); HRESULT Clone( [out] IEnumWIA_DEV_INFO **ppIEnum ); HRESULT GetCount( [out] ULONG *celt ); } [ object, uuid(98B5E8A0-29CC-491a-AAC0-E6DB4FDCCEB6) ] interface IWiaPropertyStorage : IUnknown { /* FIXME: fill in */ } [ object, uuid(4db1ad10-3391-11d2-9a33-00c04fa36145) ] interface IWiaItem : IUnknown { /* FIXME: fill in */ } [ object, uuid(ae6287b0-0084-11d2-973b-00a0c9068f2e) ] interface IWiaEventCallback : IUnknown { HRESULT ImageEventCallback( [in] const GUID *pEventGUID, [in] BSTR bstrEventDescription, [in] BSTR bstrDeviceID, [in] BSTR bstrDeviceDescription, [in] DWORD dwDeviceType, [in] BSTR bstrFullItemName, [in,out] ULONG *pulEventType, [in] ULONG ulReserved); }