diff --git a/.gitignore b/.gitignore index 2ac3a69972c..50aa0b3b4cc 100644 --- a/.gitignore +++ b/.gitignore @@ -194,6 +194,8 @@ include/urlhist.h include/urlmon.h include/vmr9.h include/wbemcli.h +include/wia_lh.h +include/wia_xp.h include/wincodec.h include/wine/itss.h include/wine/svcctl.h diff --git a/include/Makefile.in b/include/Makefile.in index eb2cabe3cf7..83e435838ee 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -81,6 +81,8 @@ PUBLIC_IDL_H_SRCS = \ urlmon.idl \ vmr9.idl \ wbemcli.idl \ + wia_lh.idl \ + wia_xp.idl \ wincodec.idl \ wine/itss.idl \ wine/svcctl.idl \ @@ -455,6 +457,7 @@ SRCDIR_INCLUDES = \ vfwmsgs.h \ vmrender.idl \ wfext.h \ + wia.h \ winbase.h \ wincon.h \ wincred.h \ diff --git a/include/wia.h b/include/wia.h new file mode 100644 index 00000000000..300f28ae57e --- /dev/null +++ b/include/wia.h @@ -0,0 +1,24 @@ +/* + * Copyright (C) 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 + */ + + +#if (_WIN32_WINNT >= 0x0600) +#include +#elif (_WIN32_WINNT >= 0x0501) +#include +#endif diff --git a/include/wia_lh.idl b/include/wia_lh.idl new file mode 100644 index 00000000000..5024787a6fc --- /dev/null +++ b/include/wia_lh.idl @@ -0,0 +1,127 @@ +/* + * 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 "wtypes.idl"; +import "objidl.idl"; + +interface IEnumWIA_DEV_INFO; +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 +{ + /* 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); +} diff --git a/include/wia_xp.idl b/include/wia_xp.idl new file mode 100644 index 00000000000..5024787a6fc --- /dev/null +++ b/include/wia_xp.idl @@ -0,0 +1,127 @@ +/* + * 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 "wtypes.idl"; +import "objidl.idl"; + +interface IEnumWIA_DEV_INFO; +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 +{ + /* 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); +}