// // Copyright (c) Microsoft Corporation. All rights reserved. // // // File generated by WinMDIDL version 8.00.0021 // import "inspectable.idl"; import "AsyncInfo.idl"; import "EventToken.idl"; import "windowscontracts.idl"; import "Windows.Foundation.idl"; import "Windows.Devices.idl"; // Forward Declare namespace Windows { namespace Devices { apicontract DevicesLowLevelContract; } } namespace Windows { namespace Foundation { typedef struct TimeSpan TimeSpan; } } namespace Windows { namespace Devices { namespace Gpio { namespace Provider { typedef enum ProviderGpioPinDriveMode ProviderGpioPinDriveMode; typedef enum ProviderGpioPinEdge ProviderGpioPinEdge; typedef enum ProviderGpioPinValue ProviderGpioPinValue; typedef enum ProviderGpioSharingMode ProviderGpioSharingMode; interface IGpioControllerProvider; interface IGpioPinProvider; interface IGpioPinProviderValueChangedEventArgs; interface IGpioPinProviderValueChangedEventArgsFactory; interface IGpioProvider; runtimeclass GpioPinProviderValueChangedEventArgs; } } } } // Generic instantiations namespace Windows { namespace Devices { namespace Gpio { namespace Provider { declare { interface Windows.Foundation.Collections.IIterable; interface Windows.Foundation.Collections.IIterator; interface Windows.Foundation.Collections.IVectorView; interface Windows.Foundation.TypedEventHandler; } } } } } // Type definition namespace Windows { namespace Devices { namespace Gpio { namespace Provider { [contract(Windows.Devices.DevicesLowLevelContract, 2.0)] enum ProviderGpioPinDriveMode { Input = 0, Output = 1, InputPullUp = 2, InputPullDown = 3, OutputOpenDrain = 4, OutputOpenDrainPullUp = 5, OutputOpenSource = 6, OutputOpenSourcePullDown = 7 }; [contract(Windows.Devices.DevicesLowLevelContract, 2.0)] enum ProviderGpioPinEdge { FallingEdge = 0, RisingEdge = 1 }; [contract(Windows.Devices.DevicesLowLevelContract, 2.0)] enum ProviderGpioPinValue { Low = 0, High = 1 }; [contract(Windows.Devices.DevicesLowLevelContract, 2.0)] enum ProviderGpioSharingMode { Exclusive = 0, SharedReadOnly = 1 }; [contract(Windows.Devices.DevicesLowLevelContract, 2.0)] [uuid(AD11CEC7-19EA-4B21-874F-B91AED4A25DB)] interface IGpioControllerProvider : IInspectable { [propget] HRESULT PinCount([out] [retval] INT32* value); HRESULT OpenPinProvider([in] INT32 pin, [in] Windows.Devices.Gpio.Provider.ProviderGpioSharingMode sharingMode, [out] [retval] Windows.Devices.Gpio.Provider.IGpioPinProvider** gpioPinProvider); } [contract(Windows.Devices.DevicesLowLevelContract, 2.0)] [uuid(42344CB7-6ABC-40FF-9CE7-73B85301B900)] interface IGpioPinProvider : IInspectable { [eventadd] HRESULT ValueChanged([in] Windows.Foundation.TypedEventHandler* handler, [out] [retval] EventRegistrationToken* token); [eventremove] HRESULT ValueChanged([in] EventRegistrationToken token); [propget] HRESULT DebounceTimeout([out] [retval] Windows.Foundation.TimeSpan* value); [propput] HRESULT DebounceTimeout([in] Windows.Foundation.TimeSpan value); [propget] HRESULT PinNumber([out] [retval] INT32* value); [propget] HRESULT SharingMode([out] [retval] Windows.Devices.Gpio.Provider.ProviderGpioSharingMode* value); HRESULT IsDriveModeSupported([in] Windows.Devices.Gpio.Provider.ProviderGpioPinDriveMode driveMode, [out] [retval] boolean* supported); HRESULT GetDriveMode([out] [retval] Windows.Devices.Gpio.Provider.ProviderGpioPinDriveMode* value); HRESULT SetDriveMode([in] Windows.Devices.Gpio.Provider.ProviderGpioPinDriveMode value); HRESULT Write([in] Windows.Devices.Gpio.Provider.ProviderGpioPinValue value); HRESULT Read([out] [retval] Windows.Devices.Gpio.Provider.ProviderGpioPinValue* value); } [contract(Windows.Devices.DevicesLowLevelContract, 2.0)] [exclusiveto(Windows.Devices.Gpio.Provider.GpioPinProviderValueChangedEventArgs)] [uuid(32A6D6F2-3D5B-44CD-8FBE-13A69F2EDB24)] interface IGpioPinProviderValueChangedEventArgs : IInspectable { [propget] HRESULT Edge([out] [retval] Windows.Devices.Gpio.Provider.ProviderGpioPinEdge* value); } [contract(Windows.Devices.DevicesLowLevelContract, 2.0)] [exclusiveto(Windows.Devices.Gpio.Provider.GpioPinProviderValueChangedEventArgs)] [uuid(3ECB0B59-568C-4392-B24A-8A59A902B1F1)] interface IGpioPinProviderValueChangedEventArgsFactory : IInspectable { HRESULT Create([in] Windows.Devices.Gpio.Provider.ProviderGpioPinEdge edge, [out] [retval] Windows.Devices.Gpio.Provider.GpioPinProviderValueChangedEventArgs** value); } [contract(Windows.Devices.DevicesLowLevelContract, 2.0)] [uuid(44E82707-08CA-434A-AFE0-D61580446F7E)] interface IGpioProvider : IInspectable { HRESULT GetControllers([out] [retval] Windows.Foundation.Collections.IVectorView** result); } [activatable(Windows.Devices.Gpio.Provider.IGpioPinProviderValueChangedEventArgsFactory, Windows.Devices.DevicesLowLevelContract, 2.0)] [contract(Windows.Devices.DevicesLowLevelContract, 2.0)] [marshaling_behavior(agile)] [threading(both)] runtimeclass GpioPinProviderValueChangedEventArgs { [default] interface Windows.Devices.Gpio.Provider.IGpioPinProviderValueChangedEventArgs; } } } } }