// // 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 { interface IClosable; } } namespace Windows { namespace Devices { namespace I2c { namespace Provider { typedef enum ProviderI2cBusSpeed ProviderI2cBusSpeed; typedef enum ProviderI2cSharingMode ProviderI2cSharingMode; typedef enum ProviderI2cTransferStatus ProviderI2cTransferStatus; typedef struct ProviderI2cTransferResult ProviderI2cTransferResult; interface II2cControllerProvider; interface II2cDeviceProvider; interface II2cProvider; interface IProviderI2cConnectionSettings; runtimeclass ProviderI2cConnectionSettings; } } } } // Generic instantiations namespace Windows { namespace Devices { namespace I2c { namespace Provider { declare { interface Windows.Foundation.Collections.IIterable; interface Windows.Foundation.Collections.IIterator; interface Windows.Foundation.Collections.IVectorView; interface Windows.Foundation.IAsyncOperation*>; } } } } } // Type definition namespace Windows { namespace Devices { namespace I2c { namespace Provider { [contract(Windows.Devices.DevicesLowLevelContract, 2.0)] enum ProviderI2cBusSpeed { StandardMode = 0, FastMode = 1 }; [contract(Windows.Devices.DevicesLowLevelContract, 2.0)] enum ProviderI2cSharingMode { Exclusive = 0, Shared = 1 }; [contract(Windows.Devices.DevicesLowLevelContract, 2.0)] enum ProviderI2cTransferStatus { FullTransfer = 0, PartialTransfer = 1, SlaveAddressNotAcknowledged = 2 }; [contract(Windows.Devices.DevicesLowLevelContract, 2.0)] struct ProviderI2cTransferResult { Windows.Devices.I2c.Provider.ProviderI2cTransferStatus Status; UINT32 BytesTransferred; }; [contract(Windows.Devices.DevicesLowLevelContract, 2.0)] [uuid(61C2BB82-4510-4163-A87C-4E15A9558980)] interface II2cControllerProvider : IInspectable { HRESULT GetDeviceProvider([in] Windows.Devices.I2c.Provider.ProviderI2cConnectionSettings* settings, [out] [retval] Windows.Devices.I2c.Provider.II2cDeviceProvider** device); } [contract(Windows.Devices.DevicesLowLevelContract, 2.0)] [uuid(AD342654-57E8-453E-8329-D1E447D103A9)] interface II2cDeviceProvider : IInspectable requires Windows.Foundation.IClosable { [propget] HRESULT DeviceId([out] [retval] HSTRING* value); HRESULT Write([in] UINT32 __bufferSize, [in] [size_is(__bufferSize)] BYTE* buffer); HRESULT WritePartial([in] UINT32 __bufferSize, [in] [size_is(__bufferSize)] BYTE* buffer, [out] [retval] Windows.Devices.I2c.Provider.ProviderI2cTransferResult* result); HRESULT Read([range(0x00000000, 0x7FFFFFFF)] [in] UINT32 __bufferSize, [out] [size_is(__bufferSize)] BYTE* buffer); HRESULT ReadPartial([range(0x00000000, 0x7FFFFFFF)] [in] UINT32 __bufferSize, [out] [size_is(__bufferSize)] BYTE* buffer, [out] [retval] Windows.Devices.I2c.Provider.ProviderI2cTransferResult* result); HRESULT WriteRead([in] UINT32 __writeBufferSize, [in] [size_is(__writeBufferSize)] BYTE* writeBuffer, [range(0x00000000, 0x7FFFFFFF)] [in] UINT32 __readBufferSize, [out] [size_is(__readBufferSize)] BYTE* readBuffer); HRESULT WriteReadPartial([in] UINT32 __writeBufferSize, [in] [size_is(__writeBufferSize)] BYTE* writeBuffer, [range(0x00000000, 0x7FFFFFFF)] [in] UINT32 __readBufferSize, [out] [size_is(__readBufferSize)] BYTE* readBuffer, [out] [retval] Windows.Devices.I2c.Provider.ProviderI2cTransferResult* result); } [contract(Windows.Devices.DevicesLowLevelContract, 2.0)] [uuid(6F13083E-BF62-4FE2-A95A-F08999669818)] interface II2cProvider : IInspectable { HRESULT GetControllersAsync([out] [retval] Windows.Foundation.IAsyncOperation*>** operation); } [contract(Windows.Devices.DevicesLowLevelContract, 2.0)] [exclusiveto(Windows.Devices.I2c.Provider.ProviderI2cConnectionSettings)] [uuid(E9DB4E34-E510-44B7-809D-F2F85B555339)] interface IProviderI2cConnectionSettings : IInspectable { [propget] HRESULT SlaveAddress([out] [retval] INT32* value); [propput] HRESULT SlaveAddress([in] INT32 value); [propget] HRESULT BusSpeed([out] [retval] Windows.Devices.I2c.Provider.ProviderI2cBusSpeed* value); [propput] HRESULT BusSpeed([in] Windows.Devices.I2c.Provider.ProviderI2cBusSpeed value); [propget] HRESULT SharingMode([out] [retval] Windows.Devices.I2c.Provider.ProviderI2cSharingMode* value); [propput] HRESULT SharingMode([in] Windows.Devices.I2c.Provider.ProviderI2cSharingMode value); } [contract(Windows.Devices.DevicesLowLevelContract, 2.0)] [marshaling_behavior(agile)] runtimeclass ProviderI2cConnectionSettings { [default] interface Windows.Devices.I2c.Provider.IProviderI2cConnectionSettings; } } } } }