diff --git a/include/windows.devices.enumeration.idl b/include/windows.devices.enumeration.idl index 9aa2aaba441..20e4df9d33d 100644 --- a/include/windows.devices.enumeration.idl +++ b/include/windows.devices.enumeration.idl @@ -24,13 +24,57 @@ 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 Panel Panel; + + interface IDeviceInformation; interface IDeviceInformationStatics; interface IDeviceInformationStatics2; + interface IDeviceInformationUpdate; + interface IEnclosureLocation; + + runtimeclass DeviceInformation; + runtimeclass DeviceInformationUpdate; + runtimeclass DeviceThumbnail; + runtimeclass EnclosureLocation; + } + } +} + +namespace Windows +{ + namespace Devices + { + namespace Enumeration + { + declare + { + interface Windows.Foundation.AsyncOperationCompletedHandler; + interface Windows.Foundation.AsyncOperationCompletedHandler; + interface Windows.Foundation.Collections.IMapView; + interface Windows.Foundation.IAsyncOperation; + interface Windows.Foundation.IAsyncOperation; + } + } + } +} + +namespace Windows +{ + namespace Storage + { + namespace Streams + { + interface IContentTypeProvider; + interface IInputStream; + interface IOutputStream; + interface IRandomAccessStream; + interface IRandomAccessStreamWithContentType; } } } @@ -38,6 +82,55 @@ namespace Windows { namespace Windows { namespace Devices { namespace Enumeration { + 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 **value); + HRESULT Update([in] Windows.Devices.Enumeration.DeviceInformationUpdate *info); + HRESULT GetThumbnailAsync([out, retval] Windows.Foundation.IAsyncOperation **operation); + HRESULT GetGlyphThumbnailAsync([out, retval] Windows.Foundation.IAsyncOperation **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 **value); + } + + [ + 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), @@ -50,6 +143,36 @@ namespace Windows { [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 EnclosureLocation + { + [default] interface Windows.Devices.Enumeration.IEnclosureLocation; + } } } }