| /* | |
| * 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.Devices.Enumeration { | |
| typedef enum DeviceClass DeviceClass; | |
| typedef enum DeviceInformationKind DeviceInformationKind; | |
| typedef enum DeviceWatcherStatus DeviceWatcherStatus; | |
| typedef enum Panel Panel; | |
| typedef enum DeviceAccessStatus DeviceAccessStatus; | |
| interface IDeviceInformation; | |
| interface IDeviceInformationStatics; | |
| interface IDeviceInformationStatics2; | |
| interface IDeviceInformationUpdate; | |
| interface IEnclosureLocation; | |
| runtimeclass DeviceInformation; | |
| runtimeclass DeviceInformationCollection; | |
| runtimeclass DeviceInformationUpdate; | |
| runtimeclass DeviceThumbnail; | |
| runtimeclass DeviceWatcher; | |
| runtimeclass EnclosureLocation; | |
| runtimeclass DeviceAccessChangedEventArgs; | |
| runtimeclass DeviceAccessInformation; | |
| declare | |
| { | |
| interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Enumeration.DeviceInformation *>; | |
| interface Windows.Foundation.Collections.IIterable<Windows.Devices.Enumeration.DeviceInformation *>; | |
| interface Windows.Foundation.Collections.IIterator<Windows.Devices.Enumeration.DeviceInformation *>; | |
| interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Devices.Enumeration.DeviceInformation *>; | |
| interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Devices.Enumeration.DeviceInformationCollection *>; | |
| 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.DeviceInformationCollection *>; | |
| 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 *>; | |
| interface Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceAccessInformation *, Windows.Devices.Enumeration.DeviceAccessChangedEventArgs *>; | |
| } | |
| } | |
| namespace Windows.Devices.Enumeration { | |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] | |
| enum DeviceClass | |
| { | |
| All = 0, | |
| AudioCapture = 1, | |
| AudioRender = 2, | |
| PortableStorageDevice = 3, | |
| VideoCapture = 4, | |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] | |
| ImageScanner = 5, | |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] | |
| Location = 6, | |
| }; | |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] | |
| enum DeviceInformationKind | |
| { | |
| Unknown = 0, | |
| DeviceInterface = 1, | |
| DeviceContainer = 2, | |
| Device = 3, | |
| DeviceInterfaceClass = 4, | |
| AssociationEndpoint = 5, | |
| AssociationEndpointContainer = 6, | |
| AssociationEndpointService = 7, | |
| [contract(Windows.Foundation.UniversalApiContract, 7.0)] | |
| DevicePanel = 8, | |
| }; | |
| 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, | |
| }; | |
| [contract(Windows.Foundation.UniversalApiContract, 1.0)] | |
| enum DeviceAccessStatus | |
| { | |
| Unspecified = 0, | |
| Allowed = 1, | |
| DeniedByUser = 2, | |
| DeniedBySystem = 3, | |
| }; | |
| [ | |
| 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), | |
| exclusiveto(Windows.Devices.Enumeration.DeviceInformation), | |
| uuid(c17f100e-3a46-4a78-8013-769dc9b97390) | |
| ] | |
| interface IDeviceInformationStatics : IInspectable | |
| { | |
| [overload("CreateFromIdAsync")] | |
| HRESULT CreateFromIdAsync([in] HSTRING id, | |
| [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceInformation *> **op); | |
| [overload("CreateFromIdAsync")] | |
| HRESULT CreateFromIdAsyncAdditionalProperties([in] HSTRING id, | |
| [in] Windows.Foundation.Collections.IIterable<HSTRING> *additional_properties, | |
| [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceInformation *> **op); | |
| [overload("FindAllAsync")] | |
| HRESULT FindAllAsync([out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceInformationCollection *> **op); | |
| [overload("FindAllAsync"), default_overload] | |
| HRESULT FindAllAsyncDeviceClass([in] Windows.Devices.Enumeration.DeviceClass device_class, | |
| [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceInformationCollection *> **op); | |
| [overload("FindAllAsync")] | |
| HRESULT FindAllAsyncAqsFilter([in] HSTRING filter, | |
| [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceInformationCollection *> **op); | |
| [overload("FindAllAsync")] | |
| HRESULT FindAllAsyncAqsFilterAndAdditionalProperties([in] HSTRING filter, | |
| [in] Windows.Foundation.Collections.IIterable<HSTRING> *additional_properties, | |
| [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceInformationCollection *> **op); | |
| [overload("CreateWatcher")] | |
| HRESULT CreateWatcher([out, retval] Windows.Devices.Enumeration.DeviceWatcher **watcher); | |
| [overload("CreateWatcher"), default_overload] | |
| HRESULT CreateWatcherDeviceClass([in] Windows.Devices.Enumeration.DeviceClass device_class, | |
| [out, retval] Windows.Devices.Enumeration.DeviceWatcher **watcher); | |
| [overload("CreateWatcher")] | |
| HRESULT CreateWatcherAqsFilter([in] HSTRING filter, [out, retval] Windows.Devices.Enumeration.DeviceWatcher **watcher); | |
| [overload("CreateWatcher")] | |
| HRESULT CreateWatcherAqsFilterAndAdditionalProperties([in] HSTRING filter, | |
| [in] Windows.Foundation.Collections.IIterable<HSTRING> *additional_properties, [out, retval] Windows.Devices.Enumeration.DeviceWatcher **watcher); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| exclusiveto(Windows.Devices.Enumeration.DeviceInformation), | |
| uuid(493b4f34-a84f-45fd-9167-15d1cb1bd1f9) | |
| ] | |
| interface IDeviceInformationStatics2 : IInspectable | |
| { | |
| HRESULT GetAqsFilterFromDeviceClass([in] Windows.Devices.Enumeration.DeviceClass device_class, [out, retval] HSTRING *filter); | |
| [overload("CreateFromIdAsync")] | |
| HRESULT CreateFromIdAsyncWithKindAndAdditionalProperties([in] HSTRING device_id, | |
| [in] Windows.Foundation.Collections.IIterable<HSTRING> *additional_properties, | |
| [in] Windows.Devices.Enumeration.DeviceInformationKind kind, | |
| [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceInformation *> **async_operation); | |
| [overload("FindAllAsync")] | |
| HRESULT FindAllAsyncWithKindAqsFilterAndAdditionalProperties([in] HSTRING filter, | |
| [in] Windows.Foundation.Collections.IIterable<HSTRING> *additional_properties, | |
| [in] Windows.Devices.Enumeration.DeviceInformationKind kind, | |
| [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceInformationCollection *> **async_operation); | |
| [overload("CreateWatcher")] | |
| HRESULT CreateWatcherWithKindAqsFilterAndAdditionalProperties([in] HSTRING filter, | |
| [in] Windows.Foundation.Collections.IIterable<HSTRING> *additional_properties, | |
| [in] Windows.Devices.Enumeration.DeviceInformationKind kind, | |
| [out, retval] Windows.Devices.Enumeration.DeviceWatcher **watcher); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| exclusiveto(Windows.Devices.Enumeration.DeviceAccessChangedEventArgs), | |
| uuid(deda0bcc-4f9d-4f58-9dba-a9bc800408d5) | |
| ] | |
| interface IDeviceAccessChangedEventArgs : IInspectable | |
| { | |
| [propget] HRESULT Status([out, retval] Windows.Devices.Enumeration.DeviceAccessStatus *value); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 3.0), | |
| exclusiveto(Windows.Devices.Enumeration.DeviceAccessChangedEventArgs), | |
| uuid(82523262-934b-4b30-a178-adc39f2f2be3) | |
| ] | |
| interface IDeviceAccessChangedEventArgs2 : IInspectable | |
| requires Windows.Devices.Enumeration.IDeviceAccessChangedEventArgs | |
| { | |
| [propget] HRESULT Id([out, retval] HSTRING *value); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| exclusiveto(Windows.Devices.Enumeration.DeviceAccessInformation), | |
| uuid(0baa9a73-6de5-4915-8ddd-9a0554a6f545) | |
| ] | |
| interface IDeviceAccessInformation : IInspectable | |
| { | |
| [eventadd] HRESULT AccessChanged([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Enumeration.DeviceAccessInformation *, Windows.Devices.Enumeration.DeviceAccessChangedEventArgs *> *handler, [out, retval] EventRegistrationToken *cookie); | |
| [eventremove] HRESULT AccessChanged([in] EventRegistrationToken cookie); | |
| [propget] HRESULT CurrentStatus([out, retval] Windows.Devices.Enumeration.DeviceAccessStatus *status); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| exclusiveto(Windows.Devices.Enumeration.DeviceAccessInformation), | |
| uuid(574bd3d3-5f30-45cd-8a94-724fe5973084), | |
| ] | |
| interface IDeviceAccessInformationStatics : IInspectable | |
| { | |
| HRESULT CreateFromId([in] HSTRING device_id, [out, retval] Windows.Devices.Enumeration.DeviceAccessInformation **value); | |
| HRESULT CreateFromDeviceClassId([in] GUID device_class_id, [out, retval] Windows.Devices.Enumeration.DeviceAccessInformation **value); | |
| HRESULT CreateFromDeviceClass([in] Windows.Devices.Enumeration.DeviceClass device_class, [out, retval] Windows.Devices.Enumeration.DeviceAccessInformation **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; */ | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| marshaling_behavior(agile), | |
| ] | |
| runtimeclass DeviceInformationCollection | |
| { | |
| [default] interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Enumeration.DeviceInformation *>; | |
| interface Windows.Foundation.Collections.IIterable<Windows.Devices.Enumeration.DeviceInformation *>; | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| marshaling_behavior(agile), | |
| ] | |
| runtimeclass DeviceInformationUpdate | |
| { | |
| [default] interface Windows.Devices.Enumeration.IDeviceInformationUpdate; | |
| /* interface Windows.Devices.Enumeration.IDeviceInformationUpdate2; */ | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| 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; | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| marshaling_behavior(agile), | |
| ] | |
| runtimeclass DeviceWatcher | |
| { | |
| [default] interface Windows.Devices.Enumeration.IDeviceWatcher; | |
| /* interface Windows.Devices.Enumeration.IDeviceWatcher2; */ | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| marshaling_behavior(agile) | |
| ] | |
| runtimeclass EnclosureLocation | |
| { | |
| [default] interface Windows.Devices.Enumeration.IEnclosureLocation; | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| marshaling_behavior(agile) | |
| ] | |
| runtimeclass DeviceAccessChangedEventArgs | |
| { | |
| [default] interface Windows.Devices.Enumeration.IDeviceAccessChangedEventArgs; | |
| [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Devices.Enumeration.IDeviceAccessChangedEventArgs2; | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| marshaling_behavior(agile), | |
| static(Windows.Devices.Enumeration.IDeviceAccessInformationStatics, Windows.Foundation.UniversalApiContract, 1.0), | |
| threading(both) | |
| ] | |
| runtimeclass DeviceAccessInformation | |
| { | |
| [default] interface Windows.Devices.Enumeration.IDeviceAccessInformation; | |
| } | |
| } |