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