Sync with trunk r47129
[reactos.git] / include / psdk / wia_lh.idl
1 /*
2 * Copyright 2009 Damjan Jovanovic
3 *
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.
8 *
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.
13 *
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
17 */
18
19 import "wtypes.idl";
20 import "objidl.idl";
21
22 interface IEnumWIA_DEV_INFO;
23 interface IWiaItem;
24 interface IWiaEventCallback;
25
26 cpp_quote("DEFINE_GUID(CLSID_WiaDevMgr, 0xa1f4e726,0x8cf1,0x11d1,0xbf,0x92,0x00,0x60,0x08,0x1e,0xd8,0x11);")
27
28 [
29 object,
30 uuid(5eb2502a-8cf1-11d1-bf92-0060081ed811)
31 ]
32 interface IWiaDevMgr : IUnknown
33 {
34 HRESULT EnumDeviceInfo(
35 [in] LONG lFlag,
36 [retval, out] IEnumWIA_DEV_INFO **ppIEnum);
37
38 HRESULT CreateDevice(
39 [in] BSTR bstrDeviceID,
40 [out] IWiaItem **ppWiaItemRoot);
41
42 HRESULT SelectDeviceDlg(
43 [in] HWND hwndParent,
44 [in] LONG lDeviceType,
45 [in] LONG lFlags,
46 [in, out] BSTR *pbstrDeviceID,
47 [retval, out] IWiaItem **ppItemRoot);
48
49 HRESULT SelectDeviceDlgID(
50 [in] HWND hwndParent,
51 [in] LONG lDeviceType,
52 [in] LONG lFlags,
53 [retval, out] BSTR *pbstrDeviceID);
54
55 HRESULT GetImageDlg(
56 [in] HWND hwndParent,
57 [in] LONG lDeviceType,
58 [in] LONG lFlags,
59 [in] LONG lIntent,
60 [in] IWiaItem *pItemRoot,
61 [in] BSTR bstrFilename,
62 [in, out] GUID *pguidFormat);
63
64 HRESULT RegisterEventCallbackProgram(
65 [in] LONG lFlags,
66 [in] BSTR bstrDeviceID,
67 [in] const GUID *pEventGUID,
68 [in] BSTR bstrCommandline,
69 [in] BSTR bstrName,
70 [in] BSTR bstrDescription,
71 [in] BSTR bstrIcon);
72
73 HRESULT RegisterEventCallbackInterface(
74 [in] LONG lFlags,
75 [in] BSTR bstrDeviceID,
76 [in] const GUID *pEventGUID,
77 [unique, in] IWiaEventCallback *pIWiaEventCallback,
78 [out] IUnknown **pEventObject);
79
80 HRESULT RegisterEventCallbackCLSID(
81 [in] LONG lFlags,
82 [in] BSTR bstrDeviceID,
83 [in] const GUID *pEventGUID,
84 [unique, in] const GUID *pClsID,
85 [in] BSTR bstrName,
86 [in] BSTR bstrDescription,
87 [in] BSTR bstrIcon);
88
89 HRESULT AddDeviceDlg(
90 [in] HWND hwndParent,
91 [in] LONG lFlags);
92 }
93
94 [
95 object,
96 uuid(5e38b83c-8cf1-11d1-bf92-0060081ed811)
97 ]
98 interface IEnumWIA_DEV_INFO : IUnknown
99 {
100 /* fill in */
101 }
102
103 [
104 object,
105 uuid(4db1ad10-3391-11d2-9a33-00c04fa36145)
106 ]
107 interface IWiaItem : IUnknown
108 {
109 /* FIXME: fill in */
110 }
111
112 [
113 object,
114 uuid(ae6287b0-0084-11d2-973b-00a0c9068f2e)
115 ]
116 interface IWiaEventCallback : IUnknown
117 {
118 HRESULT ImageEventCallback(
119 [in] const GUID *pEventGUID,
120 [in] BSTR bstrEventDescription,
121 [in] BSTR bstrDeviceID,
122 [in] BSTR bstrDeviceDescription,
123 [in] DWORD dwDeviceType,
124 [in] BSTR bstrFullItemName,
125 [in,out] ULONG *pulEventType,
126 [in] ULONG ulReserved);
127 }