1*c2c66affSColin Finck/* 2*c2c66affSColin Finck * Copyright 2009 Damjan Jovanovic 3*c2c66affSColin Finck * 4*c2c66affSColin Finck * This library is free software; you can redistribute it and/or 5*c2c66affSColin Finck * modify it under the terms of the GNU Lesser General Public 6*c2c66affSColin Finck * License as published by the Free Software Foundation; either 7*c2c66affSColin Finck * version 2.1 of the License, or (at your option) any later version. 8*c2c66affSColin Finck * 9*c2c66affSColin Finck * This library is distributed in the hope that it will be useful, 10*c2c66affSColin Finck * but WITHOUT ANY WARRANTY; without even the implied warranty of 11*c2c66affSColin Finck * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12*c2c66affSColin Finck * Lesser General Public License for more details. 13*c2c66affSColin Finck * 14*c2c66affSColin Finck * You should have received a copy of the GNU Lesser General Public 15*c2c66affSColin Finck * License along with this library; if not, write to the Free Software 16*c2c66affSColin Finck * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17*c2c66affSColin Finck */ 18*c2c66affSColin Finck 19*c2c66affSColin Finckimport "wtypes.idl"; 20*c2c66affSColin Finckimport "objidl.idl"; 21*c2c66affSColin Finck 22*c2c66affSColin Finckinterface IEnumWIA_DEV_INFO; 23*c2c66affSColin Finckinterface IWiaItem; 24*c2c66affSColin Finckinterface IWiaEventCallback; 25*c2c66affSColin Finck 26*c2c66affSColin Finckcpp_quote("DEFINE_GUID(CLSID_WiaDevMgr, 0xa1f4e726,0x8cf1,0x11d1,0xbf,0x92,0x00,0x60,0x08,0x1e,0xd8,0x11);") 27*c2c66affSColin Finck 28*c2c66affSColin Finck[ 29*c2c66affSColin Finck object, 30*c2c66affSColin Finck uuid(5eb2502a-8cf1-11d1-bf92-0060081ed811) 31*c2c66affSColin Finck] 32*c2c66affSColin Finckinterface IWiaDevMgr : IUnknown 33*c2c66affSColin Finck{ 34*c2c66affSColin Finck HRESULT EnumDeviceInfo( 35*c2c66affSColin Finck [in] LONG lFlag, 36*c2c66affSColin Finck [retval, out] IEnumWIA_DEV_INFO **ppIEnum); 37*c2c66affSColin Finck 38*c2c66affSColin Finck HRESULT CreateDevice( 39*c2c66affSColin Finck [in] BSTR bstrDeviceID, 40*c2c66affSColin Finck [out] IWiaItem **ppWiaItemRoot); 41*c2c66affSColin Finck 42*c2c66affSColin Finck HRESULT SelectDeviceDlg( 43*c2c66affSColin Finck [in] HWND hwndParent, 44*c2c66affSColin Finck [in] LONG lDeviceType, 45*c2c66affSColin Finck [in] LONG lFlags, 46*c2c66affSColin Finck [in, out] BSTR *pbstrDeviceID, 47*c2c66affSColin Finck [retval, out] IWiaItem **ppItemRoot); 48*c2c66affSColin Finck 49*c2c66affSColin Finck HRESULT SelectDeviceDlgID( 50*c2c66affSColin Finck [in] HWND hwndParent, 51*c2c66affSColin Finck [in] LONG lDeviceType, 52*c2c66affSColin Finck [in] LONG lFlags, 53*c2c66affSColin Finck [retval, out] BSTR *pbstrDeviceID); 54*c2c66affSColin Finck 55*c2c66affSColin Finck HRESULT GetImageDlg( 56*c2c66affSColin Finck [in] HWND hwndParent, 57*c2c66affSColin Finck [in] LONG lDeviceType, 58*c2c66affSColin Finck [in] LONG lFlags, 59*c2c66affSColin Finck [in] LONG lIntent, 60*c2c66affSColin Finck [in] IWiaItem *pItemRoot, 61*c2c66affSColin Finck [in] BSTR bstrFilename, 62*c2c66affSColin Finck [in, out] GUID *pguidFormat); 63*c2c66affSColin Finck 64*c2c66affSColin Finck HRESULT RegisterEventCallbackProgram( 65*c2c66affSColin Finck [in] LONG lFlags, 66*c2c66affSColin Finck [in] BSTR bstrDeviceID, 67*c2c66affSColin Finck [in] const GUID *pEventGUID, 68*c2c66affSColin Finck [in] BSTR bstrCommandline, 69*c2c66affSColin Finck [in] BSTR bstrName, 70*c2c66affSColin Finck [in] BSTR bstrDescription, 71*c2c66affSColin Finck [in] BSTR bstrIcon); 72*c2c66affSColin Finck 73*c2c66affSColin Finck HRESULT RegisterEventCallbackInterface( 74*c2c66affSColin Finck [in] LONG lFlags, 75*c2c66affSColin Finck [in] BSTR bstrDeviceID, 76*c2c66affSColin Finck [in] const GUID *pEventGUID, 77*c2c66affSColin Finck [unique, in] IWiaEventCallback *pIWiaEventCallback, 78*c2c66affSColin Finck [out] IUnknown **pEventObject); 79*c2c66affSColin Finck 80*c2c66affSColin Finck HRESULT RegisterEventCallbackCLSID( 81*c2c66affSColin Finck [in] LONG lFlags, 82*c2c66affSColin Finck [in] BSTR bstrDeviceID, 83*c2c66affSColin Finck [in] const GUID *pEventGUID, 84*c2c66affSColin Finck [unique, in] const GUID *pClsID, 85*c2c66affSColin Finck [in] BSTR bstrName, 86*c2c66affSColin Finck [in] BSTR bstrDescription, 87*c2c66affSColin Finck [in] BSTR bstrIcon); 88*c2c66affSColin Finck 89*c2c66affSColin Finck HRESULT AddDeviceDlg( 90*c2c66affSColin Finck [in] HWND hwndParent, 91*c2c66affSColin Finck [in] LONG lFlags); 92*c2c66affSColin Finck} 93*c2c66affSColin Finck 94*c2c66affSColin Finck[ 95*c2c66affSColin Finck object, 96*c2c66affSColin Finck uuid(5e38b83c-8cf1-11d1-bf92-0060081ed811) 97*c2c66affSColin Finck] 98*c2c66affSColin Finckinterface IEnumWIA_DEV_INFO : IUnknown 99*c2c66affSColin Finck{ 100*c2c66affSColin Finck /* fill in */ 101*c2c66affSColin Finck} 102*c2c66affSColin Finck 103*c2c66affSColin Finck[ 104*c2c66affSColin Finck object, 105*c2c66affSColin Finck uuid(4db1ad10-3391-11d2-9a33-00c04fa36145) 106*c2c66affSColin Finck] 107*c2c66affSColin Finckinterface IWiaItem : IUnknown 108*c2c66affSColin Finck{ 109*c2c66affSColin Finck /* FIXME: fill in */ 110*c2c66affSColin Finck} 111*c2c66affSColin Finck 112*c2c66affSColin Finck[ 113*c2c66affSColin Finck object, 114*c2c66affSColin Finck uuid(ae6287b0-0084-11d2-973b-00a0c9068f2e) 115*c2c66affSColin Finck] 116*c2c66affSColin Finckinterface IWiaEventCallback : IUnknown 117*c2c66affSColin Finck{ 118*c2c66affSColin Finck HRESULT ImageEventCallback( 119*c2c66affSColin Finck [in] const GUID *pEventGUID, 120*c2c66affSColin Finck [in] BSTR bstrEventDescription, 121*c2c66affSColin Finck [in] BSTR bstrDeviceID, 122*c2c66affSColin Finck [in] BSTR bstrDeviceDescription, 123*c2c66affSColin Finck [in] DWORD dwDeviceType, 124*c2c66affSColin Finck [in] BSTR bstrFullItemName, 125*c2c66affSColin Finck [in,out] ULONG *pulEventType, 126*c2c66affSColin Finck [in] ULONG ulReserved); 127*c2c66affSColin Finck} 128