123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- /**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
- import "oaidl.idl";
- import "ocidl.idl";
- import "propsys.idl";
- import "portabledevicetypes.idl";
- typedef enum {
- SENSOR_STATE_MIN = 0,
- SENSOR_STATE_READY = SENSOR_STATE_MIN,
- SENSOR_STATE_NOT_AVAILABLE = (SENSOR_STATE_READY+1) ,
- SENSOR_STATE_NO_DATA = (SENSOR_STATE_NOT_AVAILABLE+1),
- SENSOR_STATE_INITIALIZING = (SENSOR_STATE_NO_DATA+1),
- SENSOR_STATE_ACCESS_DENIED = (SENSOR_STATE_INITIALIZING+1),
- SENSOR_STATE_ERROR = (SENSOR_STATE_ACCESS_DENIED+1),
- SENSOR_STATE_MAX = SENSOR_STATE_ERROR
- } SensorState;
- typedef enum {
- SENSOR_CONNECTION_TYPE_PC_INTEGRATED = 0,
- SENSOR_CONNECTION_TYPE_PC_ATTACHED = (SENSOR_CONNECTION_TYPE_PC_INTEGRATED+1),
- SENSOR_CONNECTION_TYPE_PC_EXTERNAL = (SENSOR_CONNECTION_TYPE_PC_ATTACHED+1)
- } SensorConnectionType;
- typedef enum LOCATION_DESIRED_ACCURACY {
- LOCATION_DESIRED_ACCURACY_DEFAULT = 0,
- LOCATION_DESIRED_ACCURACY_HIGH = (LOCATION_DESIRED_ACCURACY_DEFAULT+1)
- } LOCATION_DESIRED_ACCURACY;
- typedef GUID SENSOR_CATEGORY_ID;
- typedef REFGUID REFSENSOR_CATEGORY_ID;
- typedef GUID SENSOR_TYPE_ID;
- typedef REFGUID REFSENSOR_TYPE_ID;
- typedef GUID SENSOR_ID;
- typedef REFGUID REFSENSOR_ID;
- interface ISensorCollection;
- interface ISensor;
- interface ISensorDataReport;
- interface ISensorManagerEvents;
- interface ISensorEvents;
- [
- uuid(bd77db67-45a8-42dc-8d00-6dcf15f8377a),
- object
- ]
- interface ISensorManager : IUnknown
- {
- HRESULT GetSensorsByCategory(
- [in] REFSENSOR_CATEGORY_ID sensorCategory,
- [out] ISensorCollection **ppSensorsFound);
- HRESULT GetSensorsByType(
- [in] REFSENSOR_TYPE_ID sensorType,
- [out] ISensorCollection **ppSensorsFound);
- HRESULT GetSensorByID(
- [in] REFSENSOR_ID sensorID,
- [out] ISensor **ppSensor);
- HRESULT SetEventSink([in] ISensorManagerEvents *pEvents);
- HRESULT RequestPermissions(
- [in] HWND hParent,
- [in] ISensorCollection *pSensors,
- [in] BOOL fModal);
- }
- [
- uuid(23571e11-e545-4dd8-a337-b89bf44b10df),
- object
- ]
- interface ISensorCollection : IUnknown
- {
- HRESULT GetAt(
- [in] ULONG ulIndex,
- [out] ISensor **ppSensor) = 0;
- HRESULT GetCount([out] ULONG *pCount);
- HRESULT Add([in] ISensor *pSensor);
- HRESULT Remove([in] ISensor *pSensor);
- HRESULT RemoveByID([in] REFSENSOR_ID sensorID);
- HRESULT Clear();
- }
- [
- uuid(5fa08f80-2657-458e-af75-46f73fa6ac5c),
- object
- ]
- interface ISensor : IUnknown
- {
- HRESULT GetID([out] SENSOR_ID *pID);
- HRESULT GetCategory([out] SENSOR_CATEGORY_ID *pSensorCategory);
- HRESULT GetType([out] SENSOR_TYPE_ID *pSensorType);
- HRESULT GetFriendlyName([out] BSTR *pFriendlyName);
- HRESULT GetProperty(
- [in] REFPROPERTYKEY key,
- [out] PROPVARIANT *pProperty);
- HRESULT GetProperties(
- [in] IPortableDeviceKeyCollection *pKeys,
- [out] IPortableDeviceValues **ppProperties);
- HRESULT GetSupportedDataFields([out] IPortableDeviceKeyCollection **ppDataFields);
- HRESULT SetProperties(
- [in] IPortableDeviceValues *pProperties,
- [out] IPortableDeviceValues **ppResults);
- HRESULT SupportsDataField(
- [in] REFPROPERTYKEY key,
- [out] VARIANT_BOOL *pIsSupported);
- HRESULT GetState([out] SensorState *pState);
- HRESULT GetData([out] ISensorDataReport **ppDataReport);
- HRESULT SupportsEvent(
- [in] REFGUID eventGuid,
- [out] VARIANT_BOOL *pIsSupported);
- HRESULT GetEventInterest(
- [size_is(*pCount), out] GUID **ppValues,
- [out] ULONG *pCount);
- HRESULT SetEventInterest(
- [size_is(count), in] GUID *pValues,
- [in] ULONG count);
- HRESULT SetEventSink([in] ISensorEvents *pEvents);
- }
- [
- uuid(0ab9df9b-c4b5-4796-8898-0470706a2e1d),
- object
- ]
- interface ISensorDataReport : IUnknown
- {
- HRESULT GetTimestamp([out] SYSTEMTIME *pTimeStamp);
- HRESULT GetSensorValue(
- [in] REFPROPERTYKEY pKey,
- [out] PROPVARIANT *pValue);
- HRESULT GetSensorValues(
- [in] IPortableDeviceKeyCollection *pKeys,
- [out] IPortableDeviceValues **ppValues);
- }
- [
- uuid(9b3b0b86-266a-4aad-b21f-fde5501001b7),
- local
- ]
- interface ISensorManagerEvents : IUnknown
- {
- HRESULT OnSensorEnter(
- [in] ISensor *pSensor,
- [in] SensorState state) ;
- }
- [
- uuid(5d8dcc91-4641-47e7-b7c3-b74f48a6c391),
- object
- ]
- interface ISensorEvents : IUnknown
- {
- HRESULT OnStateChanged(
- [in] ISensor *pSensor,
- [in] SensorState state);
- HRESULT OnDataUpdated(
- [in] ISensor *pSensor,
- [in] ISensorDataReport *pNewData);
- HRESULT OnEvent(
- [in] ISensor *pSensor,
- [in] REFGUID eventID,
- [in] IPortableDeviceValues *pEventData);
- HRESULT OnLeave([in] REFSENSOR_ID ID);
- }
- [
- uuid(15092592-5270-4c6c-aaa0-11764f189a8f)
- ]
- library SensorsApiLib
- {
- [
- uuid(77a1c827-fcd2-4689-8915-9d613cc5fa3e)
- ]
- coclass SensorManager {
- interface SensorManager;
- }
- }
|