ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/sensorsapi.idl
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
File size: 5392 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
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
7 import "oaidl.idl";
8 import "ocidl.idl";
9 import "propsys.idl";
10 import "portabledevicetypes.idl";
11
12 typedef 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
23 typedef 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
29 typedef 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
34 typedef GUID SENSOR_CATEGORY_ID;
35 typedef REFGUID REFSENSOR_CATEGORY_ID;
36
37 typedef GUID SENSOR_TYPE_ID;
38 typedef REFGUID REFSENSOR_TYPE_ID;
39
40 typedef GUID SENSOR_ID;
41 typedef REFGUID REFSENSOR_ID;
42
43 interface ISensorCollection;
44 interface ISensor;
45 interface ISensorDataReport;
46 interface ISensorManagerEvents;
47 interface ISensorEvents;
48
49 [
50 uuid(bd77db67-45a8-42dc-8d00-6dcf15f8377a),
51 object
52 ]
53 interface 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 ]
79 interface 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 ]
96 interface 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 ]
143 interface 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 ]
160 interface 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 ]
171 interface 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 ]
192 library SensorsApiLib
193 {
194 [
195 uuid(77a1c827-fcd2-4689-8915-9d613cc5fa3e)
196 ]
197 coclass SensorManager {
198 interface SensorManager;
199 }
200 }