| /* |
| * Copyright 2021 Gijs Vermeulen |
| * |
| * 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 |
| */ |
| |
| #ifdef __WIDL__ |
| #pragma winrt ns_prefix |
| #endif |
| |
| import "inspectable.idl"; |
| import "asyncinfo.idl"; |
| import "eventtoken.idl"; |
| import "windowscontracts.idl"; |
| import "windows.storage.streams.idl"; |
| import "windows.foundation.idl"; |
| |
| namespace Windows { |
| namespace Devices { |
| namespace Enumeration { |
| typedef enum DeviceWatcherStatus DeviceWatcherStatus; |
| typedef enum Panel Panel; |
| |
| interface IDeviceInformation; |
| interface IDeviceInformationStatics; |
| interface IDeviceInformationStatics2; |
| interface IDeviceInformationUpdate; |
| interface IEnclosureLocation; |
| |
| runtimeclass DeviceInformation; |
| runtimeclass DeviceInformationUpdate; |
| runtimeclass DeviceThumbnail; |
| runtimeclass DeviceWatcher; |
| runtimeclass EnclosureLocation; |
| } |
| } |
| } |
| |
| namespace Windows |
| { |
| namespace Devices |
| { |
| namespace Enumeration |
| { |
| declare |
| { |
| interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Devices.Enumeration.DeviceInformation *>; |
| interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Devices.Enumeration.DeviceThumbnail *>; |
| interface Windows.Foundation.Collections.IMapView<HSTRING, IInspectable *>; |
| interface Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceInformation *>; |
| interface Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceThumbnail *>; |
| interface Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher *, IInspectable *>; |
| interface Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher *, Windows.Devices.Enumeration.DeviceInformation *>; |
| interface Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher *, Windows.Devices.Enumeration.DeviceInformationUpdate *>; |
| } |
| } |
| } |
| } |
| |
| namespace Windows |
| { |
| namespace Storage |
| { |
| namespace Streams |
| { |
| interface IContentTypeProvider; |
| interface IInputStream; |
| interface IOutputStream; |
| interface IRandomAccessStream; |
| interface IRandomAccessStreamWithContentType; |
| } |
| } |
| } |
| |
| namespace Windows { |
| namespace Devices { |
| namespace Enumeration { |
| enum DeviceWatcherStatus |
| { |
| Created = 0, |
| Started = 1, |
| EnumerationCompleted = 2, |
| Stopping = 3, |
| Stopped = 4, |
| Aborted = 5 |
| }; |
| |
| enum Panel |
| { |
| Unknown = 0, |
| Front = 1, |
| Back = 2, |
| Top = 3, |
| Bottom = 4, |
| Left = 5, |
| Right = 6 |
| }; |
| |
| [ |
| exclusiveto(Windows.Devices.Enumeration.DeviceInformation), |
| uuid(aba0fb95-4398-489d-8e44-e6130927011f) |
| ] |
| interface IDeviceInformation : IInspectable |
| { |
| [propget] HRESULT Id([out, retval] HSTRING *value); |
| [propget] HRESULT Name([out, retval] HSTRING *value); |
| [propget] HRESULT IsEnabled([out, retval] boolean *value); |
| [propget] HRESULT IsDefault([out, retval] boolean *value); |
| [propget] HRESULT EnclosureLocation([out, retval] Windows.Devices.Enumeration.EnclosureLocation **value); |
| [propget] HRESULT Properties([out, retval] Windows.Foundation.Collections.IMapView<HSTRING, IInspectable *> **value); |
| HRESULT Update([in] Windows.Devices.Enumeration.DeviceInformationUpdate *info); |
| HRESULT GetThumbnailAsync([out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceThumbnail *> **operation); |
| HRESULT GetGlyphThumbnailAsync([out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceThumbnail *> **operation); |
| } |
| |
| [ |
| exclusiveto(Windows.Devices.Enumeration.DeviceInformationUpdate), |
| uuid(8f315305-d972-44b7-a37e-9e822c78213b) |
| ] |
| interface IDeviceInformationUpdate : IInspectable |
| { |
| [propget] HRESULT Id([out, retval] HSTRING *value); |
| [propget] HRESULT Properties([out, retval] Windows.Foundation.Collections.IMapView<HSTRING, IInspectable *> **value); |
| } |
| |
| [ |
| exclusiveto(Windows.Devices.Enumeration.DeviceWatcher), |
| uuid(c9eab97d-8f6b-4f96-a9f4-abc814e22271), |
| ] |
| interface IDeviceWatcher : IInspectable |
| { |
| [eventadd] HRESULT Added([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher*, |
| Windows.Devices.Enumeration.DeviceInformation *> *handler, [out, retval] EventRegistrationToken *token); |
| [eventremove] HRESULT Added([in] EventRegistrationToken token); |
| [eventadd] HRESULT Updated([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher *, |
| Windows.Devices.Enumeration.DeviceInformationUpdate *> *handler, [out, retval] EventRegistrationToken *token); |
| [eventremove] HRESULT Updated([in] EventRegistrationToken token); |
| [eventadd] HRESULT Removed([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher *, |
| Windows.Devices.Enumeration.DeviceInformationUpdate *> *handler, [out, retval] EventRegistrationToken *token); |
| [eventremove] HRESULT Removed([in] EventRegistrationToken token); |
| [eventadd] HRESULT EnumerationCompleted([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher *, |
| IInspectable *> *handler, [out, retval] EventRegistrationToken *token); |
| [eventremove] HRESULT EnumerationCompleted([in] EventRegistrationToken token); |
| [eventadd] HRESULT Stopped([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceWatcher *, |
| IInspectable *> *handler, [out, retval] EventRegistrationToken *token); |
| [eventremove] HRESULT Stopped([in] EventRegistrationToken token); |
| [propget] HRESULT Status([out, retval] Windows.Devices.Enumeration.DeviceWatcherStatus *status); |
| HRESULT Start(); |
| HRESULT Stop(); |
| } |
| |
| [ |
| exclusiveto(Windows.Devices.Enumeration.EnclosureLocation), |
| uuid(42340a27-5810-459c-aabb-c65e1f813ecf) |
| ] |
| interface IEnclosureLocation : IInspectable |
| { |
| [propget] HRESULT InDock([out, retval] boolean *value); |
| [propget] HRESULT InLid([out, retval] boolean *value); |
| [propget] HRESULT Panel([out, retval] Windows.Devices.Enumeration.Panel *value); |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 1.0), |
| marshaling_behavior(agile), |
| static(Windows.Devices.Enumeration.IDeviceInformationStatics, Windows.Foundation.UniversalApiContract, 1.0), |
| static(Windows.Devices.Enumeration.IDeviceInformationStatics2, Windows.Foundation.UniversalApiContract, 1.0), |
| threading(both) |
| ] |
| runtimeclass DeviceInformation |
| { |
| [default] interface Windows.Devices.Enumeration.IDeviceInformation; |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Devices.Enumeration.IDeviceInformation2; |
| } |
| |
| [ |
| marshaling_behavior(agile), |
| ] |
| runtimeclass DeviceInformationUpdate |
| { |
| [default] interface Windows.Devices.Enumeration.IDeviceInformationUpdate; |
| interface Windows.Devices.Enumeration.IDeviceInformationUpdate2; |
| } |
| |
| [ |
| marshaling_behavior(agile), |
| ] |
| runtimeclass DeviceThumbnail |
| { |
| [default] interface Windows.Storage.Streams.IRandomAccessStreamWithContentType; |
| interface Windows.Storage.Streams.IContentTypeProvider; |
| interface Windows.Storage.Streams.IRandomAccessStream; |
| interface Windows.Storage.Streams.IOutputStream; |
| interface Windows.Foundation.IClosable; |
| interface Windows.Storage.Streams.IInputStream; |
| } |
| |
| [ |
| marshaling_behavior(agile), |
| ] |
| runtimeclass DeviceWatcher |
| { |
| [default] interface Windows.Devices.Enumeration.IDeviceWatcher; |
| interface Windows.Devices.Enumeration.IDeviceWatcher2; |
| } |
| |
| [ |
| marshaling_behavior(agile) |
| ] |
| runtimeclass EnclosureLocation |
| { |
| [default] interface Windows.Devices.Enumeration.IEnclosureLocation; |
| } |
| } |
| } |
| } |