widl: Always check the runtimeclass interfaces presence.
[wine/zf.git] / include / wia_lh.idl
blob2e3ecf44945d0b3297999e57363b4fa3ee848430
1 /*
2 * Copyright 2009 Damjan Jovanovic
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 import "unknwn.idl";
20 import "oaidl.idl";
21 import "propidl.idl";
23 cpp_quote("#include <wiadef.h>")
25 interface IEnumWIA_DEV_INFO;
26 interface IWiaPropertyStorage;
27 interface IWiaItem;
28 interface IWiaEventCallback;
30 cpp_quote("DEFINE_GUID(CLSID_WiaDevMgr, 0xa1f4e726,0x8cf1,0x11d1,0xbf,0x92,0x00,0x60,0x08,0x1e,0xd8,0x11);")
33 object,
34 uuid(5eb2502a-8cf1-11d1-bf92-0060081ed811)
36 interface IWiaDevMgr : IUnknown
38 HRESULT EnumDeviceInfo(
39 [in] LONG lFlag,
40 [retval, out] IEnumWIA_DEV_INFO **ppIEnum);
42 HRESULT CreateDevice(
43 [in] BSTR bstrDeviceID,
44 [out] IWiaItem **ppWiaItemRoot);
46 HRESULT SelectDeviceDlg(
47 [in] HWND hwndParent,
48 [in] LONG lDeviceType,
49 [in] LONG lFlags,
50 [in, out, unique] BSTR *pbstrDeviceID,
51 [retval, out] IWiaItem **ppItemRoot);
53 HRESULT SelectDeviceDlgID(
54 [in] HWND hwndParent,
55 [in] LONG lDeviceType,
56 [in] LONG lFlags,
57 [retval, out] BSTR *pbstrDeviceID);
59 HRESULT GetImageDlg(
60 [in] HWND hwndParent,
61 [in] LONG lDeviceType,
62 [in] LONG lFlags,
63 [in] LONG lIntent,
64 [in] IWiaItem *pItemRoot,
65 [in] BSTR bstrFilename,
66 [in, out] GUID *pguidFormat);
68 HRESULT RegisterEventCallbackProgram(
69 [in] LONG lFlags,
70 [in] BSTR bstrDeviceID,
71 [in] const GUID *pEventGUID,
72 [in] BSTR bstrCommandline,
73 [in] BSTR bstrName,
74 [in] BSTR bstrDescription,
75 [in] BSTR bstrIcon);
77 HRESULT RegisterEventCallbackInterface(
78 [in] LONG lFlags,
79 [in] BSTR bstrDeviceID,
80 [in] const GUID *pEventGUID,
81 [unique, in] IWiaEventCallback *pIWiaEventCallback,
82 [out] IUnknown **pEventObject);
84 HRESULT RegisterEventCallbackCLSID(
85 [in] LONG lFlags,
86 [in] BSTR bstrDeviceID,
87 [in] const GUID *pEventGUID,
88 [unique, in] const GUID *pClsID,
89 [in] BSTR bstrName,
90 [in] BSTR bstrDescription,
91 [in] BSTR bstrIcon);
93 HRESULT AddDeviceDlg(
94 [in] HWND hwndParent,
95 [in] LONG lFlags);
99 object,
100 uuid(5e38b83c-8cf1-11d1-bf92-0060081ed811)
102 interface IEnumWIA_DEV_INFO : IUnknown
104 HRESULT Next(
105 [in] ULONG celt,
106 [out, size_is(celt), length_is(*pceltFetched)] IWiaPropertyStorage **rgelt,
107 [out] ULONG *pceltFetched
110 HRESULT Skip(
111 [in] ULONG celt
114 HRESULT Reset();
116 HRESULT Clone(
117 [out] IEnumWIA_DEV_INFO **ppIEnum
120 HRESULT GetCount(
121 [out] ULONG *celt
126 object,
127 uuid(98B5E8A0-29CC-491a-AAC0-E6DB4FDCCEB6)
129 interface IWiaPropertyStorage : IUnknown
131 /* FIXME: fill in */
135 object,
136 uuid(4db1ad10-3391-11d2-9a33-00c04fa36145)
138 interface IWiaItem : IUnknown
140 /* FIXME: fill in */
144 object,
145 uuid(ae6287b0-0084-11d2-973b-00a0c9068f2e)
147 interface IWiaEventCallback : IUnknown
149 HRESULT ImageEventCallback(
150 [in] const GUID *pEventGUID,
151 [in] BSTR bstrEventDescription,
152 [in] BSTR bstrDeviceID,
153 [in] BSTR bstrDeviceDescription,
154 [in] DWORD dwDeviceType,
155 [in] BSTR bstrFullItemName,
156 [in,out] ULONG *pulEventType,
157 [in] ULONG ulReserved);