3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/*
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Copyright 2009 Damjan Jovanovic
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is free software; you can redistribute it and/or
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * modify it under the terms of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License as published by the Free Software Foundation; either
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * version 2.1 of the License, or (at your option) any later version.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is distributed in the hope that it will be useful,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Lesser General Public License for more details.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * You should have received a copy of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License along with this library; if not, write to the Free Software
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync/*
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * a choice of LGPL license versions is made available with the language indicating
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * of the LGPL is applied is otherwise unspecified.
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync */
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncimport "unknwn.idl";
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncimport "oaidl.idl";
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncimport "propidl.idl";
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IEnumWIA_DEV_INFO;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IWiaItem;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IWiaEventCallback;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynccpp_quote("DEFINE_GUID(CLSID_WiaDevMgr, 0xa1f4e726,0x8cf1,0x11d1,0xbf,0x92,0x00,0x60,0x08,0x1e,0xd8,0x11);")
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(5eb2502a-8cf1-11d1-bf92-0060081ed811)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IWiaDevMgr : IUnknown
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT EnumDeviceInfo(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] LONG lFlag,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [retval, out] IEnumWIA_DEV_INFO **ppIEnum);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT CreateDevice(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] BSTR bstrDeviceID,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IWiaItem **ppWiaItemRoot);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SelectDeviceDlg(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] HWND hwndParent,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] LONG lDeviceType,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] LONG lFlags,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in, out] BSTR *pbstrDeviceID,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [retval, out] IWiaItem **ppItemRoot);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT SelectDeviceDlgID(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] HWND hwndParent,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] LONG lDeviceType,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] LONG lFlags,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [retval, out] BSTR *pbstrDeviceID);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT GetImageDlg(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] HWND hwndParent,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] LONG lDeviceType,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] LONG lFlags,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] LONG lIntent,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] IWiaItem *pItemRoot,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] BSTR bstrFilename,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in, out] GUID *pguidFormat);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT RegisterEventCallbackProgram(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] LONG lFlags,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] BSTR bstrDeviceID,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] const GUID *pEventGUID,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] BSTR bstrCommandline,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] BSTR bstrName,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] BSTR bstrDescription,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] BSTR bstrIcon);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT RegisterEventCallbackInterface(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] LONG lFlags,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] BSTR bstrDeviceID,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] const GUID *pEventGUID,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [unique, in] IWiaEventCallback *pIWiaEventCallback,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [out] IUnknown **pEventObject);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT RegisterEventCallbackCLSID(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] LONG lFlags,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] BSTR bstrDeviceID,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] const GUID *pEventGUID,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [unique, in] const GUID *pClsID,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] BSTR bstrName,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] BSTR bstrDescription,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] BSTR bstrIcon);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT AddDeviceDlg(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] HWND hwndParent,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] LONG lFlags);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(5e38b83c-8cf1-11d1-bf92-0060081ed811)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IEnumWIA_DEV_INFO : IUnknown
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /* fill in */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(4db1ad10-3391-11d2-9a33-00c04fa36145)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IWiaItem : IUnknown
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /* FIXME: fill in */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync[
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync object,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync uuid(ae6287b0-0084-11d2-973b-00a0c9068f2e)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncinterface IWiaEventCallback : IUnknown
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync HRESULT ImageEventCallback(
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] const GUID *pEventGUID,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] BSTR bstrEventDescription,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] BSTR bstrDeviceID,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] BSTR bstrDeviceDescription,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] DWORD dwDeviceType,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] BSTR bstrFullItemName,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in,out] ULONG *pulEventType,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync [in] ULONG ulReserved);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}