source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/sensorsapi.idl@ 1172

Last change on this file since 1172 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 5.3 KB
Line 
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6
7import "oaidl.idl";
8import "ocidl.idl";
9import "propsys.idl";
10import "portabledevicetypes.idl";
11
12typedef enum {
13 SENSOR_STATE_MIN = 0,
14 SENSOR_STATE_READY = SENSOR_STATE_MIN,
15 SENSOR_STATE_NOT_AVAILABLE = (SENSOR_STATE_READY+1) ,
16 SENSOR_STATE_NO_DATA = (SENSOR_STATE_NOT_AVAILABLE+1),
17 SENSOR_STATE_INITIALIZING = (SENSOR_STATE_NO_DATA+1),
18 SENSOR_STATE_ACCESS_DENIED = (SENSOR_STATE_INITIALIZING+1),
19 SENSOR_STATE_ERROR = (SENSOR_STATE_ACCESS_DENIED+1),
20 SENSOR_STATE_MAX = SENSOR_STATE_ERROR
21} SensorState;
22
23typedef enum {
24 SENSOR_CONNECTION_TYPE_PC_INTEGRATED = 0,
25 SENSOR_CONNECTION_TYPE_PC_ATTACHED = (SENSOR_CONNECTION_TYPE_PC_INTEGRATED+1),
26 SENSOR_CONNECTION_TYPE_PC_EXTERNAL = (SENSOR_CONNECTION_TYPE_PC_ATTACHED+1)
27} SensorConnectionType;
28
29typedef enum LOCATION_DESIRED_ACCURACY {
30 LOCATION_DESIRED_ACCURACY_DEFAULT = 0,
31 LOCATION_DESIRED_ACCURACY_HIGH = (LOCATION_DESIRED_ACCURACY_DEFAULT+1)
32} LOCATION_DESIRED_ACCURACY;
33
34typedef GUID SENSOR_CATEGORY_ID;
35typedef REFGUID REFSENSOR_CATEGORY_ID;
36
37typedef GUID SENSOR_TYPE_ID;
38typedef REFGUID REFSENSOR_TYPE_ID;
39
40typedef GUID SENSOR_ID;
41typedef REFGUID REFSENSOR_ID;
42
43interface ISensorCollection;
44interface ISensor;
45interface ISensorDataReport;
46interface ISensorManagerEvents;
47interface ISensorEvents;
48
49[
50 uuid(bd77db67-45a8-42dc-8d00-6dcf15f8377a),
51 object
52]
53interface ISensorManager : IUnknown
54{
55 HRESULT GetSensorsByCategory(
56 [in] REFSENSOR_CATEGORY_ID sensorCategory,
57 [out] ISensorCollection **ppSensorsFound);
58
59 HRESULT GetSensorsByType(
60 [in] REFSENSOR_TYPE_ID sensorType,
61 [out] ISensorCollection **ppSensorsFound);
62
63 HRESULT GetSensorByID(
64 [in] REFSENSOR_ID sensorID,
65 [out] ISensor **ppSensor);
66
67 HRESULT SetEventSink([in] ISensorManagerEvents *pEvents);
68
69 HRESULT RequestPermissions(
70 [in] HWND hParent,
71 [in] ISensorCollection *pSensors,
72 [in] BOOL fModal);
73}
74
75[
76 uuid(23571e11-e545-4dd8-a337-b89bf44b10df),
77 object
78]
79interface ISensorCollection : IUnknown
80{
81 HRESULT GetAt(
82 [in] ULONG ulIndex,
83 [out] ISensor **ppSensor) = 0;
84
85 HRESULT GetCount([out] ULONG *pCount);
86 HRESULT Add([in] ISensor *pSensor);
87 HRESULT Remove([in] ISensor *pSensor);
88 HRESULT RemoveByID([in] REFSENSOR_ID sensorID);
89 HRESULT Clear();
90}
91
92[
93 uuid(5fa08f80-2657-458e-af75-46f73fa6ac5c),
94 object
95]
96interface ISensor : IUnknown
97{
98 HRESULT GetID([out] SENSOR_ID *pID);
99 HRESULT GetCategory([out] SENSOR_CATEGORY_ID *pSensorCategory);
100 HRESULT GetType([out] SENSOR_TYPE_ID *pSensorType);
101 HRESULT GetFriendlyName([out] BSTR *pFriendlyName);
102
103 HRESULT GetProperty(
104 [in] REFPROPERTYKEY key,
105 [out] PROPVARIANT *pProperty);
106
107 HRESULT GetProperties(
108 [in] IPortableDeviceKeyCollection *pKeys,
109 [out] IPortableDeviceValues **ppProperties);
110
111 HRESULT GetSupportedDataFields([out] IPortableDeviceKeyCollection **ppDataFields);
112
113 HRESULT SetProperties(
114 [in] IPortableDeviceValues *pProperties,
115 [out] IPortableDeviceValues **ppResults);
116
117 HRESULT SupportsDataField(
118 [in] REFPROPERTYKEY key,
119 [out] VARIANT_BOOL *pIsSupported);
120
121 HRESULT GetState([out] SensorState *pState);
122 HRESULT GetData([out] ISensorDataReport **ppDataReport);
123
124 HRESULT SupportsEvent(
125 [in] REFGUID eventGuid,
126 [out] VARIANT_BOOL *pIsSupported);
127
128 HRESULT GetEventInterest(
129 [size_is(*pCount), out] GUID **ppValues,
130 [out] ULONG *pCount);
131
132 HRESULT SetEventInterest(
133 [size_is(count), in] GUID *pValues,
134 [in] ULONG count);
135
136 HRESULT SetEventSink([in] ISensorEvents *pEvents);
137}
138
139[
140 uuid(0ab9df9b-c4b5-4796-8898-0470706a2e1d),
141 object
142]
143interface ISensorDataReport : IUnknown
144{
145 HRESULT GetTimestamp([out] SYSTEMTIME *pTimeStamp);
146
147 HRESULT GetSensorValue(
148 [in] REFPROPERTYKEY pKey,
149 [out] PROPVARIANT *pValue);
150
151 HRESULT GetSensorValues(
152 [in] IPortableDeviceKeyCollection *pKeys,
153 [out] IPortableDeviceValues **ppValues);
154}
155
156[
157 uuid(9b3b0b86-266a-4aad-b21f-fde5501001b7),
158 local
159]
160interface ISensorManagerEvents : IUnknown
161{
162 HRESULT OnSensorEnter(
163 [in] ISensor *pSensor,
164 [in] SensorState state) ;
165}
166
167[
168 uuid(5d8dcc91-4641-47e7-b7c3-b74f48a6c391),
169 object
170]
171interface ISensorEvents : IUnknown
172{
173 HRESULT OnStateChanged(
174 [in] ISensor *pSensor,
175 [in] SensorState state);
176
177 HRESULT OnDataUpdated(
178 [in] ISensor *pSensor,
179 [in] ISensorDataReport *pNewData);
180
181 HRESULT OnEvent(
182 [in] ISensor *pSensor,
183 [in] REFGUID eventID,
184 [in] IPortableDeviceValues *pEventData);
185
186 HRESULT OnLeave([in] REFSENSOR_ID ID);
187}
188
189[
190 uuid(15092592-5270-4c6c-aaa0-11764f189a8f)
191]
192library SensorsApiLib
193{
194 [
195 uuid(77a1c827-fcd2-4689-8915-9d613cc5fa3e)
196 ]
197 coclass SensorManager {
198 interface SensorManager;
199 }
200}
Note: See TracBrowser for help on using the repository browser.