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