1 /*** Autogenerated by WIDL 1.6 from include/sensorsapi.idl - Do not edit ***/
2 
3 #ifndef __REQUIRED_RPCNDR_H_VERSION__
4 #define __REQUIRED_RPCNDR_H_VERSION__ 475
5 #endif
6 
7 #include <rpc.h>
8 #include <rpcndr.h>
9 
10 #ifndef COM_NO_WINDOWS_H
11 #include <windows.h>
12 #include <ole2.h>
13 #endif
14 
15 #ifndef __sensorsapi_h__
16 #define __sensorsapi_h__
17 
18 /* Forward declarations */
19 
20 #ifndef __ISensorManager_FWD_DEFINED__
21 #define __ISensorManager_FWD_DEFINED__
22 typedef interface ISensorManager ISensorManager;
23 #endif
24 
25 #ifndef __ISensorCollection_FWD_DEFINED__
26 #define __ISensorCollection_FWD_DEFINED__
27 typedef interface ISensorCollection ISensorCollection;
28 #endif
29 
30 #ifndef __ISensor_FWD_DEFINED__
31 #define __ISensor_FWD_DEFINED__
32 typedef interface ISensor ISensor;
33 #endif
34 
35 #ifndef __ISensorDataReport_FWD_DEFINED__
36 #define __ISensorDataReport_FWD_DEFINED__
37 typedef interface ISensorDataReport ISensorDataReport;
38 #endif
39 
40 #ifndef __ISensorManagerEvents_FWD_DEFINED__
41 #define __ISensorManagerEvents_FWD_DEFINED__
42 typedef interface ISensorManagerEvents ISensorManagerEvents;
43 #endif
44 
45 #ifndef __ISensorEvents_FWD_DEFINED__
46 #define __ISensorEvents_FWD_DEFINED__
47 typedef interface ISensorEvents ISensorEvents;
48 #endif
49 
50 #ifndef __SensorManager_FWD_DEFINED__
51 #define __SensorManager_FWD_DEFINED__
52 #ifdef __cplusplus
53 typedef class SensorManager SensorManager;
54 #else
55 typedef struct SensorManager SensorManager;
56 #endif /* defined __cplusplus */
57 #endif /* defined __SensorManager_FWD_DEFINED__ */
58 
59 /* Headers for imported files */
60 
61 #include <oaidl.h>
62 #include <ocidl.h>
63 #include <propsys.h>
64 #include <portabledevicetypes.h>
65 
66 #ifdef __cplusplus
67 extern "C" {
68 #endif
69 
70 typedef enum __WIDL_sensorsapi_generated_name_00000013 {
71     SENSOR_STATE_MIN = 0,
72     SENSOR_STATE_READY = SENSOR_STATE_MIN,
73     SENSOR_STATE_NOT_AVAILABLE = SENSOR_STATE_READY + 1,
74     SENSOR_STATE_NO_DATA = SENSOR_STATE_NOT_AVAILABLE + 1,
75     SENSOR_STATE_INITIALIZING = SENSOR_STATE_NO_DATA + 1,
76     SENSOR_STATE_ACCESS_DENIED = SENSOR_STATE_INITIALIZING + 1,
77     SENSOR_STATE_ERROR = SENSOR_STATE_ACCESS_DENIED + 1,
78     SENSOR_STATE_MAX = SENSOR_STATE_ERROR
79 } SensorState;
80 typedef enum __WIDL_sensorsapi_generated_name_00000014 {
81     SENSOR_CONNECTION_TYPE_PC_INTEGRATED = 0,
82     SENSOR_CONNECTION_TYPE_PC_ATTACHED = SENSOR_CONNECTION_TYPE_PC_INTEGRATED + 1,
83     SENSOR_CONNECTION_TYPE_PC_EXTERNAL = SENSOR_CONNECTION_TYPE_PC_ATTACHED + 1
84 } SensorConnectionType;
85 typedef enum LOCATION_DESIRED_ACCURACY {
86     LOCATION_DESIRED_ACCURACY_DEFAULT = 0,
87     LOCATION_DESIRED_ACCURACY_HIGH = LOCATION_DESIRED_ACCURACY_DEFAULT + 1
88 } LOCATION_DESIRED_ACCURACY;
89 typedef GUID SENSOR_CATEGORY_ID;
90 typedef REFGUID REFSENSOR_CATEGORY_ID;
91 typedef GUID SENSOR_TYPE_ID;
92 typedef REFGUID REFSENSOR_TYPE_ID;
93 typedef GUID SENSOR_ID;
94 typedef REFGUID REFSENSOR_ID;
95 #ifndef __ISensorCollection_FWD_DEFINED__
96 #define __ISensorCollection_FWD_DEFINED__
97 typedef interface ISensorCollection ISensorCollection;
98 #endif
99 
100 #ifndef __ISensor_FWD_DEFINED__
101 #define __ISensor_FWD_DEFINED__
102 typedef interface ISensor ISensor;
103 #endif
104 
105 #ifndef __ISensorDataReport_FWD_DEFINED__
106 #define __ISensorDataReport_FWD_DEFINED__
107 typedef interface ISensorDataReport ISensorDataReport;
108 #endif
109 
110 #ifndef __ISensorManagerEvents_FWD_DEFINED__
111 #define __ISensorManagerEvents_FWD_DEFINED__
112 typedef interface ISensorManagerEvents ISensorManagerEvents;
113 #endif
114 
115 #ifndef __ISensorEvents_FWD_DEFINED__
116 #define __ISensorEvents_FWD_DEFINED__
117 typedef interface ISensorEvents ISensorEvents;
118 #endif
119 
120 /*****************************************************************************
121  * ISensorManager interface
122  */
123 #ifndef __ISensorManager_INTERFACE_DEFINED__
124 #define __ISensorManager_INTERFACE_DEFINED__
125 
126 DEFINE_GUID(IID_ISensorManager, 0xbd77db67, 0x45a8, 0x42dc, 0x8d,0x00, 0x6d,0xcf,0x15,0xf8,0x37,0x7a);
127 #if defined(__cplusplus) && !defined(CINTERFACE)
128 MIDL_INTERFACE("bd77db67-45a8-42dc-8d00-6dcf15f8377a")
129 ISensorManager : public IUnknown
130 {
131     virtual HRESULT STDMETHODCALLTYPE GetSensorsByCategory(
132         REFSENSOR_CATEGORY_ID sensorCategory,
133         ISensorCollection **ppSensorsFound) = 0;
134 
135     virtual HRESULT STDMETHODCALLTYPE GetSensorsByType(
136         REFSENSOR_TYPE_ID sensorType,
137         ISensorCollection **ppSensorsFound) = 0;
138 
139     virtual HRESULT STDMETHODCALLTYPE GetSensorByID(
140         REFSENSOR_ID sensorID,
141         ISensor **ppSensor) = 0;
142 
143     virtual HRESULT STDMETHODCALLTYPE SetEventSink(
144         ISensorManagerEvents *pEvents) = 0;
145 
146     virtual HRESULT STDMETHODCALLTYPE RequestPermissions(
147         HWND hParent,
148         ISensorCollection *pSensors,
149         WINBOOL fModal) = 0;
150 
151 };
152 #ifdef __CRT_UUID_DECL
153 __CRT_UUID_DECL(ISensorManager, 0xbd77db67, 0x45a8, 0x42dc, 0x8d,0x00, 0x6d,0xcf,0x15,0xf8,0x37,0x7a)
154 #endif
155 #else
156 typedef struct ISensorManagerVtbl {
157     BEGIN_INTERFACE
158 
159     /*** IUnknown methods ***/
160     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
161         ISensorManager* This,
162         REFIID riid,
163         void **ppvObject);
164 
165     ULONG (STDMETHODCALLTYPE *AddRef)(
166         ISensorManager* This);
167 
168     ULONG (STDMETHODCALLTYPE *Release)(
169         ISensorManager* This);
170 
171     /*** ISensorManager methods ***/
172     HRESULT (STDMETHODCALLTYPE *GetSensorsByCategory)(
173         ISensorManager* This,
174         REFSENSOR_CATEGORY_ID sensorCategory,
175         ISensorCollection **ppSensorsFound);
176 
177     HRESULT (STDMETHODCALLTYPE *GetSensorsByType)(
178         ISensorManager* This,
179         REFSENSOR_TYPE_ID sensorType,
180         ISensorCollection **ppSensorsFound);
181 
182     HRESULT (STDMETHODCALLTYPE *GetSensorByID)(
183         ISensorManager* This,
184         REFSENSOR_ID sensorID,
185         ISensor **ppSensor);
186 
187     HRESULT (STDMETHODCALLTYPE *SetEventSink)(
188         ISensorManager* This,
189         ISensorManagerEvents *pEvents);
190 
191     HRESULT (STDMETHODCALLTYPE *RequestPermissions)(
192         ISensorManager* This,
193         HWND hParent,
194         ISensorCollection *pSensors,
195         WINBOOL fModal);
196 
197     END_INTERFACE
198 } ISensorManagerVtbl;
199 interface ISensorManager {
200     CONST_VTBL ISensorManagerVtbl* lpVtbl;
201 };
202 
203 #ifdef COBJMACROS
204 #ifndef WIDL_C_INLINE_WRAPPERS
205 /*** IUnknown methods ***/
206 #define ISensorManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
207 #define ISensorManager_AddRef(This) (This)->lpVtbl->AddRef(This)
208 #define ISensorManager_Release(This) (This)->lpVtbl->Release(This)
209 /*** ISensorManager methods ***/
210 #define ISensorManager_GetSensorsByCategory(This,sensorCategory,ppSensorsFound) (This)->lpVtbl->GetSensorsByCategory(This,sensorCategory,ppSensorsFound)
211 #define ISensorManager_GetSensorsByType(This,sensorType,ppSensorsFound) (This)->lpVtbl->GetSensorsByType(This,sensorType,ppSensorsFound)
212 #define ISensorManager_GetSensorByID(This,sensorID,ppSensor) (This)->lpVtbl->GetSensorByID(This,sensorID,ppSensor)
213 #define ISensorManager_SetEventSink(This,pEvents) (This)->lpVtbl->SetEventSink(This,pEvents)
214 #define ISensorManager_RequestPermissions(This,hParent,pSensors,fModal) (This)->lpVtbl->RequestPermissions(This,hParent,pSensors,fModal)
215 #else
216 /*** IUnknown methods ***/
217 static FORCEINLINE HRESULT ISensorManager_QueryInterface(ISensorManager* This,REFIID riid,void **ppvObject) {
218     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
219 }
220 static FORCEINLINE ULONG ISensorManager_AddRef(ISensorManager* This) {
221     return This->lpVtbl->AddRef(This);
222 }
223 static FORCEINLINE ULONG ISensorManager_Release(ISensorManager* This) {
224     return This->lpVtbl->Release(This);
225 }
226 /*** ISensorManager methods ***/
227 static FORCEINLINE HRESULT ISensorManager_GetSensorsByCategory(ISensorManager* This,REFSENSOR_CATEGORY_ID sensorCategory,ISensorCollection **ppSensorsFound) {
228     return This->lpVtbl->GetSensorsByCategory(This,sensorCategory,ppSensorsFound);
229 }
230 static FORCEINLINE HRESULT ISensorManager_GetSensorsByType(ISensorManager* This,REFSENSOR_TYPE_ID sensorType,ISensorCollection **ppSensorsFound) {
231     return This->lpVtbl->GetSensorsByType(This,sensorType,ppSensorsFound);
232 }
233 static FORCEINLINE HRESULT ISensorManager_GetSensorByID(ISensorManager* This,REFSENSOR_ID sensorID,ISensor **ppSensor) {
234     return This->lpVtbl->GetSensorByID(This,sensorID,ppSensor);
235 }
236 static FORCEINLINE HRESULT ISensorManager_SetEventSink(ISensorManager* This,ISensorManagerEvents *pEvents) {
237     return This->lpVtbl->SetEventSink(This,pEvents);
238 }
239 static FORCEINLINE HRESULT ISensorManager_RequestPermissions(ISensorManager* This,HWND hParent,ISensorCollection *pSensors,WINBOOL fModal) {
240     return This->lpVtbl->RequestPermissions(This,hParent,pSensors,fModal);
241 }
242 #endif
243 #endif
244 
245 #endif
246 
247 HRESULT STDMETHODCALLTYPE ISensorManager_GetSensorsByCategory_Proxy(
248     ISensorManager* This,
249     REFSENSOR_CATEGORY_ID sensorCategory,
250     ISensorCollection **ppSensorsFound);
251 void __RPC_STUB ISensorManager_GetSensorsByCategory_Stub(
252     IRpcStubBuffer* This,
253     IRpcChannelBuffer* pRpcChannelBuffer,
254     PRPC_MESSAGE pRpcMessage,
255     DWORD* pdwStubPhase);
256 HRESULT STDMETHODCALLTYPE ISensorManager_GetSensorsByType_Proxy(
257     ISensorManager* This,
258     REFSENSOR_TYPE_ID sensorType,
259     ISensorCollection **ppSensorsFound);
260 void __RPC_STUB ISensorManager_GetSensorsByType_Stub(
261     IRpcStubBuffer* This,
262     IRpcChannelBuffer* pRpcChannelBuffer,
263     PRPC_MESSAGE pRpcMessage,
264     DWORD* pdwStubPhase);
265 HRESULT STDMETHODCALLTYPE ISensorManager_GetSensorByID_Proxy(
266     ISensorManager* This,
267     REFSENSOR_ID sensorID,
268     ISensor **ppSensor);
269 void __RPC_STUB ISensorManager_GetSensorByID_Stub(
270     IRpcStubBuffer* This,
271     IRpcChannelBuffer* pRpcChannelBuffer,
272     PRPC_MESSAGE pRpcMessage,
273     DWORD* pdwStubPhase);
274 HRESULT STDMETHODCALLTYPE ISensorManager_SetEventSink_Proxy(
275     ISensorManager* This,
276     ISensorManagerEvents *pEvents);
277 void __RPC_STUB ISensorManager_SetEventSink_Stub(
278     IRpcStubBuffer* This,
279     IRpcChannelBuffer* pRpcChannelBuffer,
280     PRPC_MESSAGE pRpcMessage,
281     DWORD* pdwStubPhase);
282 HRESULT STDMETHODCALLTYPE ISensorManager_RequestPermissions_Proxy(
283     ISensorManager* This,
284     HWND hParent,
285     ISensorCollection *pSensors,
286     WINBOOL fModal);
287 void __RPC_STUB ISensorManager_RequestPermissions_Stub(
288     IRpcStubBuffer* This,
289     IRpcChannelBuffer* pRpcChannelBuffer,
290     PRPC_MESSAGE pRpcMessage,
291     DWORD* pdwStubPhase);
292 
293 #endif  /* __ISensorManager_INTERFACE_DEFINED__ */
294 
295 /*****************************************************************************
296  * ISensorCollection interface
297  */
298 #ifndef __ISensorCollection_INTERFACE_DEFINED__
299 #define __ISensorCollection_INTERFACE_DEFINED__
300 
301 DEFINE_GUID(IID_ISensorCollection, 0x23571e11, 0xe545, 0x4dd8, 0xa3,0x37, 0xb8,0x9b,0xf4,0x4b,0x10,0xdf);
302 #if defined(__cplusplus) && !defined(CINTERFACE)
303 MIDL_INTERFACE("23571e11-e545-4dd8-a337-b89bf44b10df")
304 ISensorCollection : public IUnknown
305 {
306     virtual HRESULT STDMETHODCALLTYPE GetAt(
307         ULONG ulIndex,
308         ISensor **ppSensor) = 0;
309 
310     virtual HRESULT STDMETHODCALLTYPE GetCount(
311         ULONG *pCount) = 0;
312 
313     virtual HRESULT STDMETHODCALLTYPE Add(
314         ISensor *pSensor) = 0;
315 
316     virtual HRESULT STDMETHODCALLTYPE Remove(
317         ISensor *pSensor) = 0;
318 
319     virtual HRESULT STDMETHODCALLTYPE RemoveByID(
320         REFSENSOR_ID sensorID) = 0;
321 
322     virtual HRESULT STDMETHODCALLTYPE Clear(
323         ) = 0;
324 
325 };
326 #ifdef __CRT_UUID_DECL
327 __CRT_UUID_DECL(ISensorCollection, 0x23571e11, 0xe545, 0x4dd8, 0xa3,0x37, 0xb8,0x9b,0xf4,0x4b,0x10,0xdf)
328 #endif
329 #else
330 typedef struct ISensorCollectionVtbl {
331     BEGIN_INTERFACE
332 
333     /*** IUnknown methods ***/
334     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
335         ISensorCollection* This,
336         REFIID riid,
337         void **ppvObject);
338 
339     ULONG (STDMETHODCALLTYPE *AddRef)(
340         ISensorCollection* This);
341 
342     ULONG (STDMETHODCALLTYPE *Release)(
343         ISensorCollection* This);
344 
345     /*** ISensorCollection methods ***/
346     HRESULT (STDMETHODCALLTYPE *GetAt)(
347         ISensorCollection* This,
348         ULONG ulIndex,
349         ISensor **ppSensor);
350 
351     HRESULT (STDMETHODCALLTYPE *GetCount)(
352         ISensorCollection* This,
353         ULONG *pCount);
354 
355     HRESULT (STDMETHODCALLTYPE *Add)(
356         ISensorCollection* This,
357         ISensor *pSensor);
358 
359     HRESULT (STDMETHODCALLTYPE *Remove)(
360         ISensorCollection* This,
361         ISensor *pSensor);
362 
363     HRESULT (STDMETHODCALLTYPE *RemoveByID)(
364         ISensorCollection* This,
365         REFSENSOR_ID sensorID);
366 
367     HRESULT (STDMETHODCALLTYPE *Clear)(
368         ISensorCollection* This);
369 
370     END_INTERFACE
371 } ISensorCollectionVtbl;
372 interface ISensorCollection {
373     CONST_VTBL ISensorCollectionVtbl* lpVtbl;
374 };
375 
376 #ifdef COBJMACROS
377 #ifndef WIDL_C_INLINE_WRAPPERS
378 /*** IUnknown methods ***/
379 #define ISensorCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
380 #define ISensorCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
381 #define ISensorCollection_Release(This) (This)->lpVtbl->Release(This)
382 /*** ISensorCollection methods ***/
383 #define ISensorCollection_GetAt(This,ulIndex,ppSensor) (This)->lpVtbl->GetAt(This,ulIndex,ppSensor)
384 #define ISensorCollection_GetCount(This,pCount) (This)->lpVtbl->GetCount(This,pCount)
385 #define ISensorCollection_Add(This,pSensor) (This)->lpVtbl->Add(This,pSensor)
386 #define ISensorCollection_Remove(This,pSensor) (This)->lpVtbl->Remove(This,pSensor)
387 #define ISensorCollection_RemoveByID(This,sensorID) (This)->lpVtbl->RemoveByID(This,sensorID)
388 #define ISensorCollection_Clear(This) (This)->lpVtbl->Clear(This)
389 #else
390 /*** IUnknown methods ***/
391 static FORCEINLINE HRESULT ISensorCollection_QueryInterface(ISensorCollection* This,REFIID riid,void **ppvObject) {
392     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
393 }
394 static FORCEINLINE ULONG ISensorCollection_AddRef(ISensorCollection* This) {
395     return This->lpVtbl->AddRef(This);
396 }
397 static FORCEINLINE ULONG ISensorCollection_Release(ISensorCollection* This) {
398     return This->lpVtbl->Release(This);
399 }
400 /*** ISensorCollection methods ***/
401 static FORCEINLINE HRESULT ISensorCollection_GetAt(ISensorCollection* This,ULONG ulIndex,ISensor **ppSensor) {
402     return This->lpVtbl->GetAt(This,ulIndex,ppSensor);
403 }
404 static FORCEINLINE HRESULT ISensorCollection_GetCount(ISensorCollection* This,ULONG *pCount) {
405     return This->lpVtbl->GetCount(This,pCount);
406 }
407 static FORCEINLINE HRESULT ISensorCollection_Add(ISensorCollection* This,ISensor *pSensor) {
408     return This->lpVtbl->Add(This,pSensor);
409 }
410 static FORCEINLINE HRESULT ISensorCollection_Remove(ISensorCollection* This,ISensor *pSensor) {
411     return This->lpVtbl->Remove(This,pSensor);
412 }
413 static FORCEINLINE HRESULT ISensorCollection_RemoveByID(ISensorCollection* This,REFSENSOR_ID sensorID) {
414     return This->lpVtbl->RemoveByID(This,sensorID);
415 }
416 static FORCEINLINE HRESULT ISensorCollection_Clear(ISensorCollection* This) {
417     return This->lpVtbl->Clear(This);
418 }
419 #endif
420 #endif
421 
422 #endif
423 
424 HRESULT STDMETHODCALLTYPE ISensorCollection_GetAt_Proxy(
425     ISensorCollection* This,
426     ULONG ulIndex,
427     ISensor **ppSensor);
428 void __RPC_STUB ISensorCollection_GetAt_Stub(
429     IRpcStubBuffer* This,
430     IRpcChannelBuffer* pRpcChannelBuffer,
431     PRPC_MESSAGE pRpcMessage,
432     DWORD* pdwStubPhase);
433 HRESULT STDMETHODCALLTYPE ISensorCollection_GetCount_Proxy(
434     ISensorCollection* This,
435     ULONG *pCount);
436 void __RPC_STUB ISensorCollection_GetCount_Stub(
437     IRpcStubBuffer* This,
438     IRpcChannelBuffer* pRpcChannelBuffer,
439     PRPC_MESSAGE pRpcMessage,
440     DWORD* pdwStubPhase);
441 HRESULT STDMETHODCALLTYPE ISensorCollection_Add_Proxy(
442     ISensorCollection* This,
443     ISensor *pSensor);
444 void __RPC_STUB ISensorCollection_Add_Stub(
445     IRpcStubBuffer* This,
446     IRpcChannelBuffer* pRpcChannelBuffer,
447     PRPC_MESSAGE pRpcMessage,
448     DWORD* pdwStubPhase);
449 HRESULT STDMETHODCALLTYPE ISensorCollection_Remove_Proxy(
450     ISensorCollection* This,
451     ISensor *pSensor);
452 void __RPC_STUB ISensorCollection_Remove_Stub(
453     IRpcStubBuffer* This,
454     IRpcChannelBuffer* pRpcChannelBuffer,
455     PRPC_MESSAGE pRpcMessage,
456     DWORD* pdwStubPhase);
457 HRESULT STDMETHODCALLTYPE ISensorCollection_RemoveByID_Proxy(
458     ISensorCollection* This,
459     REFSENSOR_ID sensorID);
460 void __RPC_STUB ISensorCollection_RemoveByID_Stub(
461     IRpcStubBuffer* This,
462     IRpcChannelBuffer* pRpcChannelBuffer,
463     PRPC_MESSAGE pRpcMessage,
464     DWORD* pdwStubPhase);
465 HRESULT STDMETHODCALLTYPE ISensorCollection_Clear_Proxy(
466     ISensorCollection* This);
467 void __RPC_STUB ISensorCollection_Clear_Stub(
468     IRpcStubBuffer* This,
469     IRpcChannelBuffer* pRpcChannelBuffer,
470     PRPC_MESSAGE pRpcMessage,
471     DWORD* pdwStubPhase);
472 
473 #endif  /* __ISensorCollection_INTERFACE_DEFINED__ */
474 
475 /*****************************************************************************
476  * ISensor interface
477  */
478 #ifndef __ISensor_INTERFACE_DEFINED__
479 #define __ISensor_INTERFACE_DEFINED__
480 
481 DEFINE_GUID(IID_ISensor, 0x5fa08f80, 0x2657, 0x458e, 0xaf,0x75, 0x46,0xf7,0x3f,0xa6,0xac,0x5c);
482 #if defined(__cplusplus) && !defined(CINTERFACE)
483 MIDL_INTERFACE("5fa08f80-2657-458e-af75-46f73fa6ac5c")
484 ISensor : public IUnknown
485 {
486     virtual HRESULT STDMETHODCALLTYPE GetID(
487         SENSOR_ID *pID) = 0;
488 
489     virtual HRESULT STDMETHODCALLTYPE GetCategory(
490         SENSOR_CATEGORY_ID *pSensorCategory) = 0;
491 
492     virtual HRESULT STDMETHODCALLTYPE GetType(
493         SENSOR_TYPE_ID *pSensorType) = 0;
494 
495     virtual HRESULT STDMETHODCALLTYPE GetFriendlyName(
496         BSTR *pFriendlyName) = 0;
497 
498     virtual HRESULT STDMETHODCALLTYPE GetProperty(
499         REFPROPERTYKEY key,
500         PROPVARIANT *pProperty) = 0;
501 
502     virtual HRESULT STDMETHODCALLTYPE GetProperties(
503         IPortableDeviceKeyCollection *pKeys,
504         IPortableDeviceValues **ppProperties) = 0;
505 
506     virtual HRESULT STDMETHODCALLTYPE GetSupportedDataFields(
507         IPortableDeviceKeyCollection **ppDataFields) = 0;
508 
509     virtual HRESULT STDMETHODCALLTYPE SetProperties(
510         IPortableDeviceValues *pProperties,
511         IPortableDeviceValues **ppResults) = 0;
512 
513     virtual HRESULT STDMETHODCALLTYPE SupportsDataField(
514         REFPROPERTYKEY key,
515         VARIANT_BOOL *pIsSupported) = 0;
516 
517     virtual HRESULT STDMETHODCALLTYPE GetState(
518         SensorState *pState) = 0;
519 
520     virtual HRESULT STDMETHODCALLTYPE GetData(
521         ISensorDataReport **ppDataReport) = 0;
522 
523     virtual HRESULT STDMETHODCALLTYPE SupportsEvent(
524         REFGUID eventGuid,
525         VARIANT_BOOL *pIsSupported) = 0;
526 
527     virtual HRESULT STDMETHODCALLTYPE GetEventInterest(
528         GUID **ppValues,
529         ULONG *pCount) = 0;
530 
531     virtual HRESULT STDMETHODCALLTYPE SetEventInterest(
532         GUID *pValues,
533         ULONG count) = 0;
534 
535     virtual HRESULT STDMETHODCALLTYPE SetEventSink(
536         ISensorEvents *pEvents) = 0;
537 
538 };
539 #ifdef __CRT_UUID_DECL
540 __CRT_UUID_DECL(ISensor, 0x5fa08f80, 0x2657, 0x458e, 0xaf,0x75, 0x46,0xf7,0x3f,0xa6,0xac,0x5c)
541 #endif
542 #else
543 typedef struct ISensorVtbl {
544     BEGIN_INTERFACE
545 
546     /*** IUnknown methods ***/
547     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
548         ISensor* This,
549         REFIID riid,
550         void **ppvObject);
551 
552     ULONG (STDMETHODCALLTYPE *AddRef)(
553         ISensor* This);
554 
555     ULONG (STDMETHODCALLTYPE *Release)(
556         ISensor* This);
557 
558     /*** ISensor methods ***/
559     HRESULT (STDMETHODCALLTYPE *GetID)(
560         ISensor* This,
561         SENSOR_ID *pID);
562 
563     HRESULT (STDMETHODCALLTYPE *GetCategory)(
564         ISensor* This,
565         SENSOR_CATEGORY_ID *pSensorCategory);
566 
567     HRESULT (STDMETHODCALLTYPE *GetType)(
568         ISensor* This,
569         SENSOR_TYPE_ID *pSensorType);
570 
571     HRESULT (STDMETHODCALLTYPE *GetFriendlyName)(
572         ISensor* This,
573         BSTR *pFriendlyName);
574 
575     HRESULT (STDMETHODCALLTYPE *GetProperty)(
576         ISensor* This,
577         REFPROPERTYKEY key,
578         PROPVARIANT *pProperty);
579 
580     HRESULT (STDMETHODCALLTYPE *GetProperties)(
581         ISensor* This,
582         IPortableDeviceKeyCollection *pKeys,
583         IPortableDeviceValues **ppProperties);
584 
585     HRESULT (STDMETHODCALLTYPE *GetSupportedDataFields)(
586         ISensor* This,
587         IPortableDeviceKeyCollection **ppDataFields);
588 
589     HRESULT (STDMETHODCALLTYPE *SetProperties)(
590         ISensor* This,
591         IPortableDeviceValues *pProperties,
592         IPortableDeviceValues **ppResults);
593 
594     HRESULT (STDMETHODCALLTYPE *SupportsDataField)(
595         ISensor* This,
596         REFPROPERTYKEY key,
597         VARIANT_BOOL *pIsSupported);
598 
599     HRESULT (STDMETHODCALLTYPE *GetState)(
600         ISensor* This,
601         SensorState *pState);
602 
603     HRESULT (STDMETHODCALLTYPE *GetData)(
604         ISensor* This,
605         ISensorDataReport **ppDataReport);
606 
607     HRESULT (STDMETHODCALLTYPE *SupportsEvent)(
608         ISensor* This,
609         REFGUID eventGuid,
610         VARIANT_BOOL *pIsSupported);
611 
612     HRESULT (STDMETHODCALLTYPE *GetEventInterest)(
613         ISensor* This,
614         GUID **ppValues,
615         ULONG *pCount);
616 
617     HRESULT (STDMETHODCALLTYPE *SetEventInterest)(
618         ISensor* This,
619         GUID *pValues,
620         ULONG count);
621 
622     HRESULT (STDMETHODCALLTYPE *SetEventSink)(
623         ISensor* This,
624         ISensorEvents *pEvents);
625 
626     END_INTERFACE
627 } ISensorVtbl;
628 interface ISensor {
629     CONST_VTBL ISensorVtbl* lpVtbl;
630 };
631 
632 #ifdef COBJMACROS
633 #ifndef WIDL_C_INLINE_WRAPPERS
634 /*** IUnknown methods ***/
635 #define ISensor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
636 #define ISensor_AddRef(This) (This)->lpVtbl->AddRef(This)
637 #define ISensor_Release(This) (This)->lpVtbl->Release(This)
638 /*** ISensor methods ***/
639 #define ISensor_GetID(This,pID) (This)->lpVtbl->GetID(This,pID)
640 #define ISensor_GetCategory(This,pSensorCategory) (This)->lpVtbl->GetCategory(This,pSensorCategory)
641 #define ISensor_GetType(This,pSensorType) (This)->lpVtbl->GetType(This,pSensorType)
642 #define ISensor_GetFriendlyName(This,pFriendlyName) (This)->lpVtbl->GetFriendlyName(This,pFriendlyName)
643 #define ISensor_GetProperty(This,key,pProperty) (This)->lpVtbl->GetProperty(This,key,pProperty)
644 #define ISensor_GetProperties(This,pKeys,ppProperties) (This)->lpVtbl->GetProperties(This,pKeys,ppProperties)
645 #define ISensor_GetSupportedDataFields(This,ppDataFields) (This)->lpVtbl->GetSupportedDataFields(This,ppDataFields)
646 #define ISensor_SetProperties(This,pProperties,ppResults) (This)->lpVtbl->SetProperties(This,pProperties,ppResults)
647 #define ISensor_SupportsDataField(This,key,pIsSupported) (This)->lpVtbl->SupportsDataField(This,key,pIsSupported)
648 #define ISensor_GetState(This,pState) (This)->lpVtbl->GetState(This,pState)
649 #define ISensor_GetData(This,ppDataReport) (This)->lpVtbl->GetData(This,ppDataReport)
650 #define ISensor_SupportsEvent(This,eventGuid,pIsSupported) (This)->lpVtbl->SupportsEvent(This,eventGuid,pIsSupported)
651 #define ISensor_GetEventInterest(This,ppValues,pCount) (This)->lpVtbl->GetEventInterest(This,ppValues,pCount)
652 #define ISensor_SetEventInterest(This,pValues,count) (This)->lpVtbl->SetEventInterest(This,pValues,count)
653 #define ISensor_SetEventSink(This,pEvents) (This)->lpVtbl->SetEventSink(This,pEvents)
654 #else
655 /*** IUnknown methods ***/
656 static FORCEINLINE HRESULT ISensor_QueryInterface(ISensor* This,REFIID riid,void **ppvObject) {
657     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
658 }
659 static FORCEINLINE ULONG ISensor_AddRef(ISensor* This) {
660     return This->lpVtbl->AddRef(This);
661 }
662 static FORCEINLINE ULONG ISensor_Release(ISensor* This) {
663     return This->lpVtbl->Release(This);
664 }
665 /*** ISensor methods ***/
666 static FORCEINLINE HRESULT ISensor_GetID(ISensor* This,SENSOR_ID *pID) {
667     return This->lpVtbl->GetID(This,pID);
668 }
669 static FORCEINLINE HRESULT ISensor_GetCategory(ISensor* This,SENSOR_CATEGORY_ID *pSensorCategory) {
670     return This->lpVtbl->GetCategory(This,pSensorCategory);
671 }
672 static FORCEINLINE HRESULT ISensor_GetType(ISensor* This,SENSOR_TYPE_ID *pSensorType) {
673     return This->lpVtbl->GetType(This,pSensorType);
674 }
675 static FORCEINLINE HRESULT ISensor_GetFriendlyName(ISensor* This,BSTR *pFriendlyName) {
676     return This->lpVtbl->GetFriendlyName(This,pFriendlyName);
677 }
678 static FORCEINLINE HRESULT ISensor_GetProperty(ISensor* This,REFPROPERTYKEY key,PROPVARIANT *pProperty) {
679     return This->lpVtbl->GetProperty(This,key,pProperty);
680 }
681 static FORCEINLINE HRESULT ISensor_GetProperties(ISensor* This,IPortableDeviceKeyCollection *pKeys,IPortableDeviceValues **ppProperties) {
682     return This->lpVtbl->GetProperties(This,pKeys,ppProperties);
683 }
684 static FORCEINLINE HRESULT ISensor_GetSupportedDataFields(ISensor* This,IPortableDeviceKeyCollection **ppDataFields) {
685     return This->lpVtbl->GetSupportedDataFields(This,ppDataFields);
686 }
687 static FORCEINLINE HRESULT ISensor_SetProperties(ISensor* This,IPortableDeviceValues *pProperties,IPortableDeviceValues **ppResults) {
688     return This->lpVtbl->SetProperties(This,pProperties,ppResults);
689 }
690 static FORCEINLINE HRESULT ISensor_SupportsDataField(ISensor* This,REFPROPERTYKEY key,VARIANT_BOOL *pIsSupported) {
691     return This->lpVtbl->SupportsDataField(This,key,pIsSupported);
692 }
693 static FORCEINLINE HRESULT ISensor_GetState(ISensor* This,SensorState *pState) {
694     return This->lpVtbl->GetState(This,pState);
695 }
696 static FORCEINLINE HRESULT ISensor_GetData(ISensor* This,ISensorDataReport **ppDataReport) {
697     return This->lpVtbl->GetData(This,ppDataReport);
698 }
699 static FORCEINLINE HRESULT ISensor_SupportsEvent(ISensor* This,REFGUID eventGuid,VARIANT_BOOL *pIsSupported) {
700     return This->lpVtbl->SupportsEvent(This,eventGuid,pIsSupported);
701 }
702 static FORCEINLINE HRESULT ISensor_GetEventInterest(ISensor* This,GUID **ppValues,ULONG *pCount) {
703     return This->lpVtbl->GetEventInterest(This,ppValues,pCount);
704 }
705 static FORCEINLINE HRESULT ISensor_SetEventInterest(ISensor* This,GUID *pValues,ULONG count) {
706     return This->lpVtbl->SetEventInterest(This,pValues,count);
707 }
708 static FORCEINLINE HRESULT ISensor_SetEventSink(ISensor* This,ISensorEvents *pEvents) {
709     return This->lpVtbl->SetEventSink(This,pEvents);
710 }
711 #endif
712 #endif
713 
714 #endif
715 
716 HRESULT STDMETHODCALLTYPE ISensor_GetID_Proxy(
717     ISensor* This,
718     SENSOR_ID *pID);
719 void __RPC_STUB ISensor_GetID_Stub(
720     IRpcStubBuffer* This,
721     IRpcChannelBuffer* pRpcChannelBuffer,
722     PRPC_MESSAGE pRpcMessage,
723     DWORD* pdwStubPhase);
724 HRESULT STDMETHODCALLTYPE ISensor_GetCategory_Proxy(
725     ISensor* This,
726     SENSOR_CATEGORY_ID *pSensorCategory);
727 void __RPC_STUB ISensor_GetCategory_Stub(
728     IRpcStubBuffer* This,
729     IRpcChannelBuffer* pRpcChannelBuffer,
730     PRPC_MESSAGE pRpcMessage,
731     DWORD* pdwStubPhase);
732 HRESULT STDMETHODCALLTYPE ISensor_GetType_Proxy(
733     ISensor* This,
734     SENSOR_TYPE_ID *pSensorType);
735 void __RPC_STUB ISensor_GetType_Stub(
736     IRpcStubBuffer* This,
737     IRpcChannelBuffer* pRpcChannelBuffer,
738     PRPC_MESSAGE pRpcMessage,
739     DWORD* pdwStubPhase);
740 HRESULT STDMETHODCALLTYPE ISensor_GetFriendlyName_Proxy(
741     ISensor* This,
742     BSTR *pFriendlyName);
743 void __RPC_STUB ISensor_GetFriendlyName_Stub(
744     IRpcStubBuffer* This,
745     IRpcChannelBuffer* pRpcChannelBuffer,
746     PRPC_MESSAGE pRpcMessage,
747     DWORD* pdwStubPhase);
748 HRESULT STDMETHODCALLTYPE ISensor_GetProperty_Proxy(
749     ISensor* This,
750     REFPROPERTYKEY key,
751     PROPVARIANT *pProperty);
752 void __RPC_STUB ISensor_GetProperty_Stub(
753     IRpcStubBuffer* This,
754     IRpcChannelBuffer* pRpcChannelBuffer,
755     PRPC_MESSAGE pRpcMessage,
756     DWORD* pdwStubPhase);
757 HRESULT STDMETHODCALLTYPE ISensor_GetProperties_Proxy(
758     ISensor* This,
759     IPortableDeviceKeyCollection *pKeys,
760     IPortableDeviceValues **ppProperties);
761 void __RPC_STUB ISensor_GetProperties_Stub(
762     IRpcStubBuffer* This,
763     IRpcChannelBuffer* pRpcChannelBuffer,
764     PRPC_MESSAGE pRpcMessage,
765     DWORD* pdwStubPhase);
766 HRESULT STDMETHODCALLTYPE ISensor_GetSupportedDataFields_Proxy(
767     ISensor* This,
768     IPortableDeviceKeyCollection **ppDataFields);
769 void __RPC_STUB ISensor_GetSupportedDataFields_Stub(
770     IRpcStubBuffer* This,
771     IRpcChannelBuffer* pRpcChannelBuffer,
772     PRPC_MESSAGE pRpcMessage,
773     DWORD* pdwStubPhase);
774 HRESULT STDMETHODCALLTYPE ISensor_SetProperties_Proxy(
775     ISensor* This,
776     IPortableDeviceValues *pProperties,
777     IPortableDeviceValues **ppResults);
778 void __RPC_STUB ISensor_SetProperties_Stub(
779     IRpcStubBuffer* This,
780     IRpcChannelBuffer* pRpcChannelBuffer,
781     PRPC_MESSAGE pRpcMessage,
782     DWORD* pdwStubPhase);
783 HRESULT STDMETHODCALLTYPE ISensor_SupportsDataField_Proxy(
784     ISensor* This,
785     REFPROPERTYKEY key,
786     VARIANT_BOOL *pIsSupported);
787 void __RPC_STUB ISensor_SupportsDataField_Stub(
788     IRpcStubBuffer* This,
789     IRpcChannelBuffer* pRpcChannelBuffer,
790     PRPC_MESSAGE pRpcMessage,
791     DWORD* pdwStubPhase);
792 HRESULT STDMETHODCALLTYPE ISensor_GetState_Proxy(
793     ISensor* This,
794     SensorState *pState);
795 void __RPC_STUB ISensor_GetState_Stub(
796     IRpcStubBuffer* This,
797     IRpcChannelBuffer* pRpcChannelBuffer,
798     PRPC_MESSAGE pRpcMessage,
799     DWORD* pdwStubPhase);
800 HRESULT STDMETHODCALLTYPE ISensor_GetData_Proxy(
801     ISensor* This,
802     ISensorDataReport **ppDataReport);
803 void __RPC_STUB ISensor_GetData_Stub(
804     IRpcStubBuffer* This,
805     IRpcChannelBuffer* pRpcChannelBuffer,
806     PRPC_MESSAGE pRpcMessage,
807     DWORD* pdwStubPhase);
808 HRESULT STDMETHODCALLTYPE ISensor_SupportsEvent_Proxy(
809     ISensor* This,
810     REFGUID eventGuid,
811     VARIANT_BOOL *pIsSupported);
812 void __RPC_STUB ISensor_SupportsEvent_Stub(
813     IRpcStubBuffer* This,
814     IRpcChannelBuffer* pRpcChannelBuffer,
815     PRPC_MESSAGE pRpcMessage,
816     DWORD* pdwStubPhase);
817 HRESULT STDMETHODCALLTYPE ISensor_GetEventInterest_Proxy(
818     ISensor* This,
819     GUID **ppValues,
820     ULONG *pCount);
821 void __RPC_STUB ISensor_GetEventInterest_Stub(
822     IRpcStubBuffer* This,
823     IRpcChannelBuffer* pRpcChannelBuffer,
824     PRPC_MESSAGE pRpcMessage,
825     DWORD* pdwStubPhase);
826 HRESULT STDMETHODCALLTYPE ISensor_SetEventInterest_Proxy(
827     ISensor* This,
828     GUID *pValues,
829     ULONG count);
830 void __RPC_STUB ISensor_SetEventInterest_Stub(
831     IRpcStubBuffer* This,
832     IRpcChannelBuffer* pRpcChannelBuffer,
833     PRPC_MESSAGE pRpcMessage,
834     DWORD* pdwStubPhase);
835 HRESULT STDMETHODCALLTYPE ISensor_SetEventSink_Proxy(
836     ISensor* This,
837     ISensorEvents *pEvents);
838 void __RPC_STUB ISensor_SetEventSink_Stub(
839     IRpcStubBuffer* This,
840     IRpcChannelBuffer* pRpcChannelBuffer,
841     PRPC_MESSAGE pRpcMessage,
842     DWORD* pdwStubPhase);
843 
844 #endif  /* __ISensor_INTERFACE_DEFINED__ */
845 
846 /*****************************************************************************
847  * ISensorDataReport interface
848  */
849 #ifndef __ISensorDataReport_INTERFACE_DEFINED__
850 #define __ISensorDataReport_INTERFACE_DEFINED__
851 
852 DEFINE_GUID(IID_ISensorDataReport, 0x0ab9df9b, 0xc4b5, 0x4796, 0x88,0x98, 0x04,0x70,0x70,0x6a,0x2e,0x1d);
853 #if defined(__cplusplus) && !defined(CINTERFACE)
854 MIDL_INTERFACE("0ab9df9b-c4b5-4796-8898-0470706a2e1d")
855 ISensorDataReport : public IUnknown
856 {
857     virtual HRESULT STDMETHODCALLTYPE GetTimestamp(
858         SYSTEMTIME *pTimeStamp) = 0;
859 
860     virtual HRESULT STDMETHODCALLTYPE GetSensorValue(
861         REFPROPERTYKEY pKey,
862         PROPVARIANT *pValue) = 0;
863 
864     virtual HRESULT STDMETHODCALLTYPE GetSensorValues(
865         IPortableDeviceKeyCollection *pKeys,
866         IPortableDeviceValues **ppValues) = 0;
867 
868 };
869 #ifdef __CRT_UUID_DECL
870 __CRT_UUID_DECL(ISensorDataReport, 0x0ab9df9b, 0xc4b5, 0x4796, 0x88,0x98, 0x04,0x70,0x70,0x6a,0x2e,0x1d)
871 #endif
872 #else
873 typedef struct ISensorDataReportVtbl {
874     BEGIN_INTERFACE
875 
876     /*** IUnknown methods ***/
877     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
878         ISensorDataReport* This,
879         REFIID riid,
880         void **ppvObject);
881 
882     ULONG (STDMETHODCALLTYPE *AddRef)(
883         ISensorDataReport* This);
884 
885     ULONG (STDMETHODCALLTYPE *Release)(
886         ISensorDataReport* This);
887 
888     /*** ISensorDataReport methods ***/
889     HRESULT (STDMETHODCALLTYPE *GetTimestamp)(
890         ISensorDataReport* This,
891         SYSTEMTIME *pTimeStamp);
892 
893     HRESULT (STDMETHODCALLTYPE *GetSensorValue)(
894         ISensorDataReport* This,
895         REFPROPERTYKEY pKey,
896         PROPVARIANT *pValue);
897 
898     HRESULT (STDMETHODCALLTYPE *GetSensorValues)(
899         ISensorDataReport* This,
900         IPortableDeviceKeyCollection *pKeys,
901         IPortableDeviceValues **ppValues);
902 
903     END_INTERFACE
904 } ISensorDataReportVtbl;
905 interface ISensorDataReport {
906     CONST_VTBL ISensorDataReportVtbl* lpVtbl;
907 };
908 
909 #ifdef COBJMACROS
910 #ifndef WIDL_C_INLINE_WRAPPERS
911 /*** IUnknown methods ***/
912 #define ISensorDataReport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
913 #define ISensorDataReport_AddRef(This) (This)->lpVtbl->AddRef(This)
914 #define ISensorDataReport_Release(This) (This)->lpVtbl->Release(This)
915 /*** ISensorDataReport methods ***/
916 #define ISensorDataReport_GetTimestamp(This,pTimeStamp) (This)->lpVtbl->GetTimestamp(This,pTimeStamp)
917 #define ISensorDataReport_GetSensorValue(This,pKey,pValue) (This)->lpVtbl->GetSensorValue(This,pKey,pValue)
918 #define ISensorDataReport_GetSensorValues(This,pKeys,ppValues) (This)->lpVtbl->GetSensorValues(This,pKeys,ppValues)
919 #else
920 /*** IUnknown methods ***/
921 static FORCEINLINE HRESULT ISensorDataReport_QueryInterface(ISensorDataReport* This,REFIID riid,void **ppvObject) {
922     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
923 }
924 static FORCEINLINE ULONG ISensorDataReport_AddRef(ISensorDataReport* This) {
925     return This->lpVtbl->AddRef(This);
926 }
927 static FORCEINLINE ULONG ISensorDataReport_Release(ISensorDataReport* This) {
928     return This->lpVtbl->Release(This);
929 }
930 /*** ISensorDataReport methods ***/
931 static FORCEINLINE HRESULT ISensorDataReport_GetTimestamp(ISensorDataReport* This,SYSTEMTIME *pTimeStamp) {
932     return This->lpVtbl->GetTimestamp(This,pTimeStamp);
933 }
934 static FORCEINLINE HRESULT ISensorDataReport_GetSensorValue(ISensorDataReport* This,REFPROPERTYKEY pKey,PROPVARIANT *pValue) {
935     return This->lpVtbl->GetSensorValue(This,pKey,pValue);
936 }
937 static FORCEINLINE HRESULT ISensorDataReport_GetSensorValues(ISensorDataReport* This,IPortableDeviceKeyCollection *pKeys,IPortableDeviceValues **ppValues) {
938     return This->lpVtbl->GetSensorValues(This,pKeys,ppValues);
939 }
940 #endif
941 #endif
942 
943 #endif
944 
945 HRESULT STDMETHODCALLTYPE ISensorDataReport_GetTimestamp_Proxy(
946     ISensorDataReport* This,
947     SYSTEMTIME *pTimeStamp);
948 void __RPC_STUB ISensorDataReport_GetTimestamp_Stub(
949     IRpcStubBuffer* This,
950     IRpcChannelBuffer* pRpcChannelBuffer,
951     PRPC_MESSAGE pRpcMessage,
952     DWORD* pdwStubPhase);
953 HRESULT STDMETHODCALLTYPE ISensorDataReport_GetSensorValue_Proxy(
954     ISensorDataReport* This,
955     REFPROPERTYKEY pKey,
956     PROPVARIANT *pValue);
957 void __RPC_STUB ISensorDataReport_GetSensorValue_Stub(
958     IRpcStubBuffer* This,
959     IRpcChannelBuffer* pRpcChannelBuffer,
960     PRPC_MESSAGE pRpcMessage,
961     DWORD* pdwStubPhase);
962 HRESULT STDMETHODCALLTYPE ISensorDataReport_GetSensorValues_Proxy(
963     ISensorDataReport* This,
964     IPortableDeviceKeyCollection *pKeys,
965     IPortableDeviceValues **ppValues);
966 void __RPC_STUB ISensorDataReport_GetSensorValues_Stub(
967     IRpcStubBuffer* This,
968     IRpcChannelBuffer* pRpcChannelBuffer,
969     PRPC_MESSAGE pRpcMessage,
970     DWORD* pdwStubPhase);
971 
972 #endif  /* __ISensorDataReport_INTERFACE_DEFINED__ */
973 
974 /*****************************************************************************
975  * ISensorManagerEvents interface
976  */
977 #ifndef __ISensorManagerEvents_INTERFACE_DEFINED__
978 #define __ISensorManagerEvents_INTERFACE_DEFINED__
979 
980 DEFINE_GUID(IID_ISensorManagerEvents, 0x9b3b0b86, 0x266a, 0x4aad, 0xb2,0x1f, 0xfd,0xe5,0x50,0x10,0x01,0xb7);
981 #if defined(__cplusplus) && !defined(CINTERFACE)
982 MIDL_INTERFACE("9b3b0b86-266a-4aad-b21f-fde5501001b7")
983 ISensorManagerEvents : public IUnknown
984 {
985     virtual HRESULT STDMETHODCALLTYPE OnSensorEnter(
986         ISensor *pSensor,
987         SensorState state) = 0;
988 
989 };
990 #ifdef __CRT_UUID_DECL
991 __CRT_UUID_DECL(ISensorManagerEvents, 0x9b3b0b86, 0x266a, 0x4aad, 0xb2,0x1f, 0xfd,0xe5,0x50,0x10,0x01,0xb7)
992 #endif
993 #else
994 typedef struct ISensorManagerEventsVtbl {
995     BEGIN_INTERFACE
996 
997     /*** IUnknown methods ***/
998     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
999         ISensorManagerEvents* This,
1000         REFIID riid,
1001         void **ppvObject);
1002 
1003     ULONG (STDMETHODCALLTYPE *AddRef)(
1004         ISensorManagerEvents* This);
1005 
1006     ULONG (STDMETHODCALLTYPE *Release)(
1007         ISensorManagerEvents* This);
1008 
1009     /*** ISensorManagerEvents methods ***/
1010     HRESULT (STDMETHODCALLTYPE *OnSensorEnter)(
1011         ISensorManagerEvents* This,
1012         ISensor *pSensor,
1013         SensorState state);
1014 
1015     END_INTERFACE
1016 } ISensorManagerEventsVtbl;
1017 interface ISensorManagerEvents {
1018     CONST_VTBL ISensorManagerEventsVtbl* lpVtbl;
1019 };
1020 
1021 #ifdef COBJMACROS
1022 #ifndef WIDL_C_INLINE_WRAPPERS
1023 /*** IUnknown methods ***/
1024 #define ISensorManagerEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1025 #define ISensorManagerEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
1026 #define ISensorManagerEvents_Release(This) (This)->lpVtbl->Release(This)
1027 /*** ISensorManagerEvents methods ***/
1028 #define ISensorManagerEvents_OnSensorEnter(This,pSensor,state) (This)->lpVtbl->OnSensorEnter(This,pSensor,state)
1029 #else
1030 /*** IUnknown methods ***/
1031 static FORCEINLINE HRESULT ISensorManagerEvents_QueryInterface(ISensorManagerEvents* This,REFIID riid,void **ppvObject) {
1032     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1033 }
1034 static FORCEINLINE ULONG ISensorManagerEvents_AddRef(ISensorManagerEvents* This) {
1035     return This->lpVtbl->AddRef(This);
1036 }
1037 static FORCEINLINE ULONG ISensorManagerEvents_Release(ISensorManagerEvents* This) {
1038     return This->lpVtbl->Release(This);
1039 }
1040 /*** ISensorManagerEvents methods ***/
1041 static FORCEINLINE HRESULT ISensorManagerEvents_OnSensorEnter(ISensorManagerEvents* This,ISensor *pSensor,SensorState state) {
1042     return This->lpVtbl->OnSensorEnter(This,pSensor,state);
1043 }
1044 #endif
1045 #endif
1046 
1047 #endif
1048 
1049 HRESULT STDMETHODCALLTYPE ISensorManagerEvents_OnSensorEnter_Proxy(
1050     ISensorManagerEvents* This,
1051     ISensor *pSensor,
1052     SensorState state);
1053 void __RPC_STUB ISensorManagerEvents_OnSensorEnter_Stub(
1054     IRpcStubBuffer* This,
1055     IRpcChannelBuffer* pRpcChannelBuffer,
1056     PRPC_MESSAGE pRpcMessage,
1057     DWORD* pdwStubPhase);
1058 
1059 #endif  /* __ISensorManagerEvents_INTERFACE_DEFINED__ */
1060 
1061 /*****************************************************************************
1062  * ISensorEvents interface
1063  */
1064 #ifndef __ISensorEvents_INTERFACE_DEFINED__
1065 #define __ISensorEvents_INTERFACE_DEFINED__
1066 
1067 DEFINE_GUID(IID_ISensorEvents, 0x5d8dcc91, 0x4641, 0x47e7, 0xb7,0xc3, 0xb7,0x4f,0x48,0xa6,0xc3,0x91);
1068 #if defined(__cplusplus) && !defined(CINTERFACE)
1069 MIDL_INTERFACE("5d8dcc91-4641-47e7-b7c3-b74f48a6c391")
1070 ISensorEvents : public IUnknown
1071 {
1072     virtual HRESULT STDMETHODCALLTYPE OnStateChanged(
1073         ISensor *pSensor,
1074         SensorState state) = 0;
1075 
1076     virtual HRESULT STDMETHODCALLTYPE OnDataUpdated(
1077         ISensor *pSensor,
1078         ISensorDataReport *pNewData) = 0;
1079 
1080     virtual HRESULT STDMETHODCALLTYPE OnEvent(
1081         ISensor *pSensor,
1082         REFGUID eventID,
1083         IPortableDeviceValues *pEventData) = 0;
1084 
1085     virtual HRESULT STDMETHODCALLTYPE OnLeave(
1086         REFSENSOR_ID ID) = 0;
1087 
1088 };
1089 #ifdef __CRT_UUID_DECL
1090 __CRT_UUID_DECL(ISensorEvents, 0x5d8dcc91, 0x4641, 0x47e7, 0xb7,0xc3, 0xb7,0x4f,0x48,0xa6,0xc3,0x91)
1091 #endif
1092 #else
1093 typedef struct ISensorEventsVtbl {
1094     BEGIN_INTERFACE
1095 
1096     /*** IUnknown methods ***/
1097     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1098         ISensorEvents* This,
1099         REFIID riid,
1100         void **ppvObject);
1101 
1102     ULONG (STDMETHODCALLTYPE *AddRef)(
1103         ISensorEvents* This);
1104 
1105     ULONG (STDMETHODCALLTYPE *Release)(
1106         ISensorEvents* This);
1107 
1108     /*** ISensorEvents methods ***/
1109     HRESULT (STDMETHODCALLTYPE *OnStateChanged)(
1110         ISensorEvents* This,
1111         ISensor *pSensor,
1112         SensorState state);
1113 
1114     HRESULT (STDMETHODCALLTYPE *OnDataUpdated)(
1115         ISensorEvents* This,
1116         ISensor *pSensor,
1117         ISensorDataReport *pNewData);
1118 
1119     HRESULT (STDMETHODCALLTYPE *OnEvent)(
1120         ISensorEvents* This,
1121         ISensor *pSensor,
1122         REFGUID eventID,
1123         IPortableDeviceValues *pEventData);
1124 
1125     HRESULT (STDMETHODCALLTYPE *OnLeave)(
1126         ISensorEvents* This,
1127         REFSENSOR_ID ID);
1128 
1129     END_INTERFACE
1130 } ISensorEventsVtbl;
1131 interface ISensorEvents {
1132     CONST_VTBL ISensorEventsVtbl* lpVtbl;
1133 };
1134 
1135 #ifdef COBJMACROS
1136 #ifndef WIDL_C_INLINE_WRAPPERS
1137 /*** IUnknown methods ***/
1138 #define ISensorEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1139 #define ISensorEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
1140 #define ISensorEvents_Release(This) (This)->lpVtbl->Release(This)
1141 /*** ISensorEvents methods ***/
1142 #define ISensorEvents_OnStateChanged(This,pSensor,state) (This)->lpVtbl->OnStateChanged(This,pSensor,state)
1143 #define ISensorEvents_OnDataUpdated(This,pSensor,pNewData) (This)->lpVtbl->OnDataUpdated(This,pSensor,pNewData)
1144 #define ISensorEvents_OnEvent(This,pSensor,eventID,pEventData) (This)->lpVtbl->OnEvent(This,pSensor,eventID,pEventData)
1145 #define ISensorEvents_OnLeave(This,ID) (This)->lpVtbl->OnLeave(This,ID)
1146 #else
1147 /*** IUnknown methods ***/
1148 static FORCEINLINE HRESULT ISensorEvents_QueryInterface(ISensorEvents* This,REFIID riid,void **ppvObject) {
1149     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1150 }
1151 static FORCEINLINE ULONG ISensorEvents_AddRef(ISensorEvents* This) {
1152     return This->lpVtbl->AddRef(This);
1153 }
1154 static FORCEINLINE ULONG ISensorEvents_Release(ISensorEvents* This) {
1155     return This->lpVtbl->Release(This);
1156 }
1157 /*** ISensorEvents methods ***/
1158 static FORCEINLINE HRESULT ISensorEvents_OnStateChanged(ISensorEvents* This,ISensor *pSensor,SensorState state) {
1159     return This->lpVtbl->OnStateChanged(This,pSensor,state);
1160 }
1161 static FORCEINLINE HRESULT ISensorEvents_OnDataUpdated(ISensorEvents* This,ISensor *pSensor,ISensorDataReport *pNewData) {
1162     return This->lpVtbl->OnDataUpdated(This,pSensor,pNewData);
1163 }
1164 static FORCEINLINE HRESULT ISensorEvents_OnEvent(ISensorEvents* This,ISensor *pSensor,REFGUID eventID,IPortableDeviceValues *pEventData) {
1165     return This->lpVtbl->OnEvent(This,pSensor,eventID,pEventData);
1166 }
1167 static FORCEINLINE HRESULT ISensorEvents_OnLeave(ISensorEvents* This,REFSENSOR_ID ID) {
1168     return This->lpVtbl->OnLeave(This,ID);
1169 }
1170 #endif
1171 #endif
1172 
1173 #endif
1174 
1175 HRESULT STDMETHODCALLTYPE ISensorEvents_OnStateChanged_Proxy(
1176     ISensorEvents* This,
1177     ISensor *pSensor,
1178     SensorState state);
1179 void __RPC_STUB ISensorEvents_OnStateChanged_Stub(
1180     IRpcStubBuffer* This,
1181     IRpcChannelBuffer* pRpcChannelBuffer,
1182     PRPC_MESSAGE pRpcMessage,
1183     DWORD* pdwStubPhase);
1184 HRESULT STDMETHODCALLTYPE ISensorEvents_OnDataUpdated_Proxy(
1185     ISensorEvents* This,
1186     ISensor *pSensor,
1187     ISensorDataReport *pNewData);
1188 void __RPC_STUB ISensorEvents_OnDataUpdated_Stub(
1189     IRpcStubBuffer* This,
1190     IRpcChannelBuffer* pRpcChannelBuffer,
1191     PRPC_MESSAGE pRpcMessage,
1192     DWORD* pdwStubPhase);
1193 HRESULT STDMETHODCALLTYPE ISensorEvents_OnEvent_Proxy(
1194     ISensorEvents* This,
1195     ISensor *pSensor,
1196     REFGUID eventID,
1197     IPortableDeviceValues *pEventData);
1198 void __RPC_STUB ISensorEvents_OnEvent_Stub(
1199     IRpcStubBuffer* This,
1200     IRpcChannelBuffer* pRpcChannelBuffer,
1201     PRPC_MESSAGE pRpcMessage,
1202     DWORD* pdwStubPhase);
1203 HRESULT STDMETHODCALLTYPE ISensorEvents_OnLeave_Proxy(
1204     ISensorEvents* This,
1205     REFSENSOR_ID ID);
1206 void __RPC_STUB ISensorEvents_OnLeave_Stub(
1207     IRpcStubBuffer* This,
1208     IRpcChannelBuffer* pRpcChannelBuffer,
1209     PRPC_MESSAGE pRpcMessage,
1210     DWORD* pdwStubPhase);
1211 
1212 #endif  /* __ISensorEvents_INTERFACE_DEFINED__ */
1213 
1214 
1215 DEFINE_GUID(LIBID_SensorsApiLib, 0x15092592, 0x5270, 0x4c6c, 0xaa,0xa0, 0x11,0x76,0x4f,0x18,0x9a,0x8f);
1216 
1217 /*****************************************************************************
1218  * SensorManager coclass
1219  */
1220 
1221 DEFINE_GUID(CLSID_SensorManager, 0x77a1c827, 0xfcd2, 0x4689, 0x89,0x15, 0x9d,0x61,0x3c,0xc5,0xfa,0x3e);
1222 
1223 #ifdef __cplusplus
1224 class DECLSPEC_UUID("77a1c827-fcd2-4689-8915-9d613cc5fa3e") SensorManager;
1225 #ifdef __CRT_UUID_DECL
1226 __CRT_UUID_DECL(SensorManager, 0x77a1c827, 0xfcd2, 0x4689, 0x89,0x15, 0x9d,0x61,0x3c,0xc5,0xfa,0x3e)
1227 #endif
1228 #endif
1229 
1230 /* Begin additional prototypes for all interfaces */
1231 
1232 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
1233 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
1234 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
1235 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
1236 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
1237 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
1238 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
1239 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
1240 ULONG           __RPC_USER LPSAFEARRAY_UserSize     (ULONG *, ULONG, LPSAFEARRAY *);
1241 unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal  (ULONG *, unsigned char *, LPSAFEARRAY *);
1242 unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(ULONG *, unsigned char *, LPSAFEARRAY *);
1243 void            __RPC_USER LPSAFEARRAY_UserFree     (ULONG *, LPSAFEARRAY *);
1244 
1245 /* End additional prototypes */
1246 
1247 #ifdef __cplusplus
1248 }
1249 #endif
1250 
1251 #endif /* __sensorsapi_h__ */
1252