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