wineoss: Use mmdevapi's AudioClient3.
[wine.git] / include / windows.devices.enumeration.idl
bloba88cb69edacbd22c7ba17fc0c9056df99f5dc8b6
1 /*
2 * Copyright 2021 Gijs Vermeulen
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 #ifdef __WIDL__
20 #pragma winrt ns_prefix
21 #endif
23 import "inspectable.idl";
24 import "asyncinfo.idl";
25 import "eventtoken.idl";
26 import "windowscontracts.idl";
27 import "windows.storage.streams.idl";
28 import "windows.foundation.idl";
30 namespace Windows.Devices.Enumeration {
31 typedef enum DeviceClass DeviceClass;
32 typedef enum DeviceInformationKind DeviceInformationKind;
33 typedef enum DeviceWatcherStatus DeviceWatcherStatus;
34 typedef enum Panel Panel;
35 typedef enum DeviceAccessStatus DeviceAccessStatus;
37 interface IDeviceInformation;
38 interface IDeviceInformationStatics;
39 interface IDeviceInformationStatics2;
40 interface IDeviceInformationUpdate;
41 interface IEnclosureLocation;
43 runtimeclass DeviceInformation;
44 runtimeclass DeviceInformationCollection;
45 runtimeclass DeviceInformationUpdate;
46 runtimeclass DeviceThumbnail;
47 runtimeclass DeviceWatcher;
48 runtimeclass EnclosureLocation;
49 runtimeclass DeviceAccessChangedEventArgs;
50 runtimeclass DeviceAccessInformation;
52 declare
54 interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Enumeration.DeviceInformation *>;
55 interface Windows.Foundation.Collections.IIterable<Windows.Devices.Enumeration.DeviceInformation *>;
56 interface Windows.Foundation.Collections.IIterator<Windows.Devices.Enumeration.DeviceInformation *>;
57 interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Devices.Enumeration.DeviceInformation *>;
58 interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Devices.Enumeration.DeviceInformationCollection *>;
59 interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Devices.Enumeration.DeviceThumbnail *>;
60 interface Windows.Foundation.Collections.IMapView<HSTRING, IInspectable *>;
61 interface Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceInformation *>;
62 interface Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceInformationCollection *>;
63 interface Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceThumbnail *>;
64 interface Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher *, IInspectable *>;
65 interface Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher *, Windows.Devices.Enumeration.DeviceInformation *>;
66 interface Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher *, Windows.Devices.Enumeration.DeviceInformationUpdate *>;
67 interface Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceAccessInformation *, Windows.Devices.Enumeration.DeviceAccessChangedEventArgs *>;
71 namespace Windows.Devices.Enumeration {
72 [contract(Windows.Foundation.UniversalApiContract, 1.0)]
73 enum DeviceClass
75 All = 0,
76 AudioCapture = 1,
77 AudioRender = 2,
78 PortableStorageDevice = 3,
79 VideoCapture = 4,
80 [contract(Windows.Foundation.UniversalApiContract, 1.0)]
81 ImageScanner = 5,
82 [contract(Windows.Foundation.UniversalApiContract, 1.0)]
83 Location = 6,
86 [contract(Windows.Foundation.UniversalApiContract, 1.0)]
87 enum DeviceInformationKind
89 Unknown = 0,
90 DeviceInterface = 1,
91 DeviceContainer = 2,
92 Device = 3,
93 DeviceInterfaceClass = 4,
94 AssociationEndpoint = 5,
95 AssociationEndpointContainer = 6,
96 AssociationEndpointService = 7,
97 [contract(Windows.Foundation.UniversalApiContract, 7.0)]
98 DevicePanel = 8,
101 enum DeviceWatcherStatus
103 Created = 0,
104 Started = 1,
105 EnumerationCompleted = 2,
106 Stopping = 3,
107 Stopped = 4,
108 Aborted = 5,
111 enum Panel
113 Unknown = 0,
114 Front = 1,
115 Back = 2,
116 Top = 3,
117 Bottom = 4,
118 Left = 5,
119 Right = 6,
122 [contract(Windows.Foundation.UniversalApiContract, 1.0)]
123 enum DeviceAccessStatus
125 Unspecified = 0,
126 Allowed = 1,
127 DeniedByUser = 2,
128 DeniedBySystem = 3,
132 exclusiveto(Windows.Devices.Enumeration.DeviceInformation),
133 uuid(aba0fb95-4398-489d-8e44-e6130927011f)
135 interface IDeviceInformation : IInspectable
137 [propget] HRESULT Id([out, retval] HSTRING *value);
138 [propget] HRESULT Name([out, retval] HSTRING *value);
139 [propget] HRESULT IsEnabled([out, retval] boolean *value);
140 [propget] HRESULT IsDefault([out, retval] boolean *value);
141 [propget] HRESULT EnclosureLocation([out, retval] Windows.Devices.Enumeration.EnclosureLocation **value);
142 [propget] HRESULT Properties([out, retval] Windows.Foundation.Collections.IMapView<HSTRING, IInspectable *> **value);
143 HRESULT Update([in] Windows.Devices.Enumeration.DeviceInformationUpdate *info);
144 HRESULT GetThumbnailAsync([out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceThumbnail *> **operation);
145 HRESULT GetGlyphThumbnailAsync([out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceThumbnail *> **operation);
149 exclusiveto(Windows.Devices.Enumeration.DeviceInformationUpdate),
150 uuid(8f315305-d972-44b7-a37e-9e822c78213b)
152 interface IDeviceInformationUpdate : IInspectable
154 [propget] HRESULT Id([out, retval] HSTRING *value);
155 [propget] HRESULT Properties([out, retval] Windows.Foundation.Collections.IMapView<HSTRING, IInspectable *> **value);
159 exclusiveto(Windows.Devices.Enumeration.DeviceWatcher),
160 uuid(c9eab97d-8f6b-4f96-a9f4-abc814e22271),
162 interface IDeviceWatcher : IInspectable
164 [eventadd] HRESULT Added([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher *,
165 Windows.Devices.Enumeration.DeviceInformation *> *handler, [out, retval] EventRegistrationToken *token);
166 [eventremove] HRESULT Added([in] EventRegistrationToken token);
167 [eventadd] HRESULT Updated([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher *,
168 Windows.Devices.Enumeration.DeviceInformationUpdate *> *handler, [out, retval] EventRegistrationToken *token);
169 [eventremove] HRESULT Updated([in] EventRegistrationToken token);
170 [eventadd] HRESULT Removed([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher *,
171 Windows.Devices.Enumeration.DeviceInformationUpdate *> *handler, [out, retval] EventRegistrationToken *token);
172 [eventremove] HRESULT Removed([in] EventRegistrationToken token);
173 [eventadd] HRESULT EnumerationCompleted([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher *,
174 IInspectable *> *handler, [out, retval] EventRegistrationToken *token);
175 [eventremove] HRESULT EnumerationCompleted([in] EventRegistrationToken token);
176 [eventadd] HRESULT Stopped([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher *,
177 IInspectable *> *handler, [out, retval] EventRegistrationToken *token);
178 [eventremove] HRESULT Stopped([in] EventRegistrationToken token);
179 [propget] HRESULT Status([out, retval] Windows.Devices.Enumeration.DeviceWatcherStatus *status);
180 HRESULT Start();
181 HRESULT Stop();
185 exclusiveto(Windows.Devices.Enumeration.EnclosureLocation),
186 uuid(42340a27-5810-459c-aabb-c65e1f813ecf)
188 interface IEnclosureLocation : IInspectable
190 [propget] HRESULT InDock([out, retval] boolean *value);
191 [propget] HRESULT InLid([out, retval] boolean *value);
192 [propget] HRESULT Panel([out, retval] Windows.Devices.Enumeration.Panel *value);
196 contract(Windows.Foundation.UniversalApiContract, 1.0),
197 exclusiveto(Windows.Devices.Enumeration.DeviceInformation),
198 uuid(493b4f34-a84f-45fd-9167-15d1cb1bd1f9)
200 interface IDeviceInformationStatics2 : IInspectable
202 HRESULT GetAqsFilterFromDeviceClass([in] Windows.Devices.Enumeration.DeviceClass device_class, [out, retval] HSTRING *filter);
203 [overload("CreateFromIdAsync")]
204 HRESULT CreateFromIdAsyncWithKindAndAdditionalProperties([in] HSTRING device_id,
205 [in] Windows.Foundation.Collections.IIterable<HSTRING> *additional_properties,
206 [in] Windows.Devices.Enumeration.DeviceInformationKind kind,
207 [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceInformation *> **async_operation);
208 [overload("FindAllAsync")]
209 HRESULT FindAllAsyncWithKindAqsFilterAndAdditionalProperties([in] HSTRING filter,
210 [in] Windows.Foundation.Collections.IIterable<HSTRING> *additional_properties,
211 [in] Windows.Devices.Enumeration.DeviceInformationKind kind,
212 [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceInformationCollection *> **async_operation);
213 [overload("CreateWatcher")]
214 HRESULT CreateWatcherWithKindAqsFilterAndAdditionalProperties([in] HSTRING filter,
215 [in] Windows.Foundation.Collections.IIterable<HSTRING> *additional_properties,
216 [in] Windows.Devices.Enumeration.DeviceInformationKind kind,
217 [out, retval] Windows.Devices.Enumeration.DeviceWatcher **watcher);
221 contract(Windows.Foundation.UniversalApiContract, 1.0),
222 exclusiveto(Windows.Devices.Enumeration.DeviceAccessChangedEventArgs),
223 uuid(deda0bcc-4f9d-4f58-9dba-a9bc800408d5)
225 interface IDeviceAccessChangedEventArgs : IInspectable
227 [propget] HRESULT Status([out, retval] Windows.Devices.Enumeration.DeviceAccessStatus *value);
231 contract(Windows.Foundation.UniversalApiContract, 3.0),
232 exclusiveto(Windows.Devices.Enumeration.DeviceAccessChangedEventArgs),
233 uuid(82523262-934b-4b30-a178-adc39f2f2be3)
235 interface IDeviceAccessChangedEventArgs2 : IInspectable
236 requires Windows.Devices.Enumeration.IDeviceAccessChangedEventArgs
238 [propget] HRESULT Id([out, retval] HSTRING *value);
242 contract(Windows.Foundation.UniversalApiContract, 1.0),
243 exclusiveto(Windows.Devices.Enumeration.DeviceAccessInformation),
244 uuid(0baa9a73-6de5-4915-8ddd-9a0554a6f545)
246 interface IDeviceAccessInformation : IInspectable
248 [eventadd] HRESULT AccessChanged([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceAccessInformation *, Windows.Devices.Enumeration.DeviceAccessChangedEventArgs *> *handler, [out, retval] EventRegistrationToken *cookie);
249 [eventremove] HRESULT AccessChanged([in] EventRegistrationToken cookie);
250 [propget] HRESULT CurrentStatus([out, retval] Windows.Devices.Enumeration.DeviceAccessStatus *status);
254 contract(Windows.Foundation.UniversalApiContract, 1.0),
255 exclusiveto(Windows.Devices.Enumeration.DeviceAccessInformation),
256 uuid(574bd3d3-5f30-45cd-8a94-724fe5973084),
258 interface IDeviceAccessInformationStatics : IInspectable
260 HRESULT CreateFromId([in] HSTRING device_id, [out, retval] Windows.Devices.Enumeration.DeviceAccessInformation **value);
261 HRESULT CreateFromDeviceClassId([in] GUID device_class_id, [out, retval] Windows.Devices.Enumeration.DeviceAccessInformation **value);
262 HRESULT CreateFromDeviceClass([in] Windows.Devices.Enumeration.DeviceClass device_class, [out, retval] Windows.Devices.Enumeration.DeviceAccessInformation **value);
266 contract(Windows.Foundation.UniversalApiContract, 1.0),
267 marshaling_behavior(agile),
268 static(Windows.Devices.Enumeration.IDeviceInformationStatics, Windows.Foundation.UniversalApiContract, 1.0),
269 static(Windows.Devices.Enumeration.IDeviceInformationStatics2, Windows.Foundation.UniversalApiContract, 1.0),
270 threading(both)
272 runtimeclass DeviceInformation
274 [default] interface Windows.Devices.Enumeration.IDeviceInformation;
275 [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Devices.Enumeration.IDeviceInformation2;
279 contract(Windows.Foundation.UniversalApiContract, 1.0),
280 marshaling_behavior(agile),
282 runtimeclass DeviceInformationCollection
284 [default] interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Enumeration.DeviceInformation *>;
285 interface Windows.Foundation.Collections.IIterable<Windows.Devices.Enumeration.DeviceInformation *>;
289 marshaling_behavior(agile),
291 runtimeclass DeviceInformationUpdate
293 [default] interface Windows.Devices.Enumeration.IDeviceInformationUpdate;
294 interface Windows.Devices.Enumeration.IDeviceInformationUpdate2;
298 marshaling_behavior(agile),
300 runtimeclass DeviceThumbnail
302 [default] interface Windows.Storage.Streams.IRandomAccessStreamWithContentType;
303 interface Windows.Storage.Streams.IContentTypeProvider;
304 interface Windows.Storage.Streams.IRandomAccessStream;
305 interface Windows.Storage.Streams.IOutputStream;
306 interface Windows.Foundation.IClosable;
307 interface Windows.Storage.Streams.IInputStream;
311 marshaling_behavior(agile),
313 runtimeclass DeviceWatcher
315 [default] interface Windows.Devices.Enumeration.IDeviceWatcher;
316 interface Windows.Devices.Enumeration.IDeviceWatcher2;
320 marshaling_behavior(agile)
322 runtimeclass EnclosureLocation
324 [default] interface Windows.Devices.Enumeration.IEnclosureLocation;
328 contract(Windows.Foundation.UniversalApiContract, 1.0),
329 marshaling_behavior(agile)
331 runtimeclass DeviceAccessChangedEventArgs
333 [default] interface Windows.Devices.Enumeration.IDeviceAccessChangedEventArgs;
334 [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Devices.Enumeration.IDeviceAccessChangedEventArgs2;
338 contract(Windows.Foundation.UniversalApiContract, 1.0),
339 marshaling_behavior(agile),
340 static(Windows.Devices.Enumeration.IDeviceAccessInformationStatics, Windows.Foundation.UniversalApiContract, 1.0),
341 threading(both)
343 runtimeclass DeviceAccessInformation
345 [default] interface Windows.Devices.Enumeration.IDeviceAccessInformation;