Home | History | Annotate | Download | only in include
      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