sensorsapi.h (35152B) - Raw
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__ 23 typedef interface ISensorManager ISensorManager; 24 #ifdef __cplusplus 25 interface ISensorManager; 26 #endif /* __cplusplus */ 27 #endif 28 29 #ifndef __ISensorCollection_FWD_DEFINED__ 30 #define __ISensorCollection_FWD_DEFINED__ 31 typedef interface ISensorCollection ISensorCollection; 32 #ifdef __cplusplus 33 interface ISensorCollection; 34 #endif /* __cplusplus */ 35 #endif 36 37 #ifndef __ISensor_FWD_DEFINED__ 38 #define __ISensor_FWD_DEFINED__ 39 typedef interface ISensor ISensor; 40 #ifdef __cplusplus 41 interface ISensor; 42 #endif /* __cplusplus */ 43 #endif 44 45 #ifndef __ISensorDataReport_FWD_DEFINED__ 46 #define __ISensorDataReport_FWD_DEFINED__ 47 typedef interface ISensorDataReport ISensorDataReport; 48 #ifdef __cplusplus 49 interface ISensorDataReport; 50 #endif /* __cplusplus */ 51 #endif 52 53 #ifndef __ISensorManagerEvents_FWD_DEFINED__ 54 #define __ISensorManagerEvents_FWD_DEFINED__ 55 typedef interface ISensorManagerEvents ISensorManagerEvents; 56 #ifdef __cplusplus 57 interface ISensorManagerEvents; 58 #endif /* __cplusplus */ 59 #endif 60 61 #ifndef __ISensorEvents_FWD_DEFINED__ 62 #define __ISensorEvents_FWD_DEFINED__ 63 typedef interface ISensorEvents ISensorEvents; 64 #ifdef __cplusplus 65 interface ISensorEvents; 66 #endif /* __cplusplus */ 67 #endif 68 69 #ifndef __SensorManager_FWD_DEFINED__ 70 #define __SensorManager_FWD_DEFINED__ 71 #ifdef __cplusplus 72 typedef class SensorManager SensorManager; 73 #else 74 typedef 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 86 extern "C" { 87 #endif 88 89 typedef 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; 99 typedef 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; 104 typedef enum LOCATION_DESIRED_ACCURACY { 105 LOCATION_DESIRED_ACCURACY_DEFAULT = 0, 106 LOCATION_DESIRED_ACCURACY_HIGH = LOCATION_DESIRED_ACCURACY_DEFAULT + 1 107 } LOCATION_DESIRED_ACCURACY; 108 typedef GUID SENSOR_CATEGORY_ID; 109 typedef REFGUID REFSENSOR_CATEGORY_ID; 110 typedef GUID SENSOR_TYPE_ID; 111 typedef REFGUID REFSENSOR_TYPE_ID; 112 typedef GUID SENSOR_ID; 113 typedef REFGUID REFSENSOR_ID; 114 #ifndef __ISensorCollection_FWD_DEFINED__ 115 #define __ISensorCollection_FWD_DEFINED__ 116 typedef interface ISensorCollection ISensorCollection; 117 #ifdef __cplusplus 118 interface ISensorCollection; 119 #endif /* __cplusplus */ 120 #endif 121 122 #ifndef __ISensor_FWD_DEFINED__ 123 #define __ISensor_FWD_DEFINED__ 124 typedef interface ISensor ISensor; 125 #ifdef __cplusplus 126 interface ISensor; 127 #endif /* __cplusplus */ 128 #endif 129 130 #ifndef __ISensorDataReport_FWD_DEFINED__ 131 #define __ISensorDataReport_FWD_DEFINED__ 132 typedef interface ISensorDataReport ISensorDataReport; 133 #ifdef __cplusplus 134 interface ISensorDataReport; 135 #endif /* __cplusplus */ 136 #endif 137 138 #ifndef __ISensorManagerEvents_FWD_DEFINED__ 139 #define __ISensorManagerEvents_FWD_DEFINED__ 140 typedef interface ISensorManagerEvents ISensorManagerEvents; 141 #ifdef __cplusplus 142 interface ISensorManagerEvents; 143 #endif /* __cplusplus */ 144 #endif 145 146 #ifndef __ISensorEvents_FWD_DEFINED__ 147 #define __ISensorEvents_FWD_DEFINED__ 148 typedef interface ISensorEvents ISensorEvents; 149 #ifdef __cplusplus 150 interface ISensorEvents; 151 #endif /* __cplusplus */ 152 #endif 153 154 /***************************************************************************** 155 * ISensorManager interface 156 */ 157 #ifndef __ISensorManager_INTERFACE_DEFINED__ 158 #define __ISensorManager_INTERFACE_DEFINED__ 159 160 DEFINE_GUID(IID_ISensorManager, 0xbd77db67, 0x45a8, 0x42dc, 0x8d,0x00, 0x6d,0xcf,0x15,0xf8,0x37,0x7a); 161 #if defined(__cplusplus) && !defined(CINTERFACE) 162 MIDL_INTERFACE("bd77db67-45a8-42dc-8d00-6dcf15f8377a") 163 ISensorManager : 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 190 typedef 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 234 interface 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 ***/ 252 static inline HRESULT ISensorManager_QueryInterface(ISensorManager* This,REFIID riid,void **ppvObject) { 253 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 254 } 255 static inline ULONG ISensorManager_AddRef(ISensorManager* This) { 256 return This->lpVtbl->AddRef(This); 257 } 258 static inline ULONG ISensorManager_Release(ISensorManager* This) { 259 return This->lpVtbl->Release(This); 260 } 261 /*** ISensorManager methods ***/ 262 static inline HRESULT ISensorManager_GetSensorsByCategory(ISensorManager* This,REFSENSOR_CATEGORY_ID sensorCategory,ISensorCollection **ppSensorsFound) { 263 return This->lpVtbl->GetSensorsByCategory(This,sensorCategory,ppSensorsFound); 264 } 265 static inline HRESULT ISensorManager_GetSensorsByType(ISensorManager* This,REFSENSOR_TYPE_ID sensorType,ISensorCollection **ppSensorsFound) { 266 return This->lpVtbl->GetSensorsByType(This,sensorType,ppSensorsFound); 267 } 268 static inline HRESULT ISensorManager_GetSensorByID(ISensorManager* This,REFSENSOR_ID sensorID,ISensor **ppSensor) { 269 return This->lpVtbl->GetSensorByID(This,sensorID,ppSensor); 270 } 271 static inline HRESULT ISensorManager_SetEventSink(ISensorManager* This,ISensorManagerEvents *pEvents) { 272 return This->lpVtbl->SetEventSink(This,pEvents); 273 } 274 static 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 291 DEFINE_GUID(IID_ISensorCollection, 0x23571e11, 0xe545, 0x4dd8, 0xa3,0x37, 0xb8,0x9b,0xf4,0x4b,0x10,0xdf); 292 #if defined(__cplusplus) && !defined(CINTERFACE) 293 MIDL_INTERFACE("23571e11-e545-4dd8-a337-b89bf44b10df") 294 ISensorCollection : 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 320 typedef 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 363 interface 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 ***/ 382 static inline HRESULT ISensorCollection_QueryInterface(ISensorCollection* This,REFIID riid,void **ppvObject) { 383 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 384 } 385 static inline ULONG ISensorCollection_AddRef(ISensorCollection* This) { 386 return This->lpVtbl->AddRef(This); 387 } 388 static inline ULONG ISensorCollection_Release(ISensorCollection* This) { 389 return This->lpVtbl->Release(This); 390 } 391 /*** ISensorCollection methods ***/ 392 static inline HRESULT ISensorCollection_GetAt(ISensorCollection* This,ULONG ulIndex,ISensor **ppSensor) { 393 return This->lpVtbl->GetAt(This,ulIndex,ppSensor); 394 } 395 static inline HRESULT ISensorCollection_GetCount(ISensorCollection* This,ULONG *pCount) { 396 return This->lpVtbl->GetCount(This,pCount); 397 } 398 static inline HRESULT ISensorCollection_Add(ISensorCollection* This,ISensor *pSensor) { 399 return This->lpVtbl->Add(This,pSensor); 400 } 401 static inline HRESULT ISensorCollection_Remove(ISensorCollection* This,ISensor *pSensor) { 402 return This->lpVtbl->Remove(This,pSensor); 403 } 404 static inline HRESULT ISensorCollection_RemoveByID(ISensorCollection* This,REFSENSOR_ID sensorID) { 405 return This->lpVtbl->RemoveByID(This,sensorID); 406 } 407 static 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 424 DEFINE_GUID(IID_ISensor, 0x5fa08f80, 0x2657, 0x458e, 0xaf,0x75, 0x46,0xf7,0x3f,0xa6,0xac,0x5c); 425 #if defined(__cplusplus) && !defined(CINTERFACE) 426 MIDL_INTERFACE("5fa08f80-2657-458e-af75-46f73fa6ac5c") 427 ISensor : 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 486 typedef 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 572 interface 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 ***/ 600 static inline HRESULT ISensor_QueryInterface(ISensor* This,REFIID riid,void **ppvObject) { 601 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 602 } 603 static inline ULONG ISensor_AddRef(ISensor* This) { 604 return This->lpVtbl->AddRef(This); 605 } 606 static inline ULONG ISensor_Release(ISensor* This) { 607 return This->lpVtbl->Release(This); 608 } 609 /*** ISensor methods ***/ 610 static inline HRESULT ISensor_GetID(ISensor* This,SENSOR_ID *pID) { 611 return This->lpVtbl->GetID(This,pID); 612 } 613 static inline HRESULT ISensor_GetCategory(ISensor* This,SENSOR_CATEGORY_ID *pSensorCategory) { 614 return This->lpVtbl->GetCategory(This,pSensorCategory); 615 } 616 static inline HRESULT ISensor_GetType(ISensor* This,SENSOR_TYPE_ID *pSensorType) { 617 return This->lpVtbl->GetType(This,pSensorType); 618 } 619 static inline HRESULT ISensor_GetFriendlyName(ISensor* This,BSTR *pFriendlyName) { 620 return This->lpVtbl->GetFriendlyName(This,pFriendlyName); 621 } 622 static inline HRESULT ISensor_GetProperty(ISensor* This,REFPROPERTYKEY key,PROPVARIANT *pProperty) { 623 return This->lpVtbl->GetProperty(This,key,pProperty); 624 } 625 static inline HRESULT ISensor_GetProperties(ISensor* This,IPortableDeviceKeyCollection *pKeys,IPortableDeviceValues **ppProperties) { 626 return This->lpVtbl->GetProperties(This,pKeys,ppProperties); 627 } 628 static inline HRESULT ISensor_GetSupportedDataFields(ISensor* This,IPortableDeviceKeyCollection **ppDataFields) { 629 return This->lpVtbl->GetSupportedDataFields(This,ppDataFields); 630 } 631 static inline HRESULT ISensor_SetProperties(ISensor* This,IPortableDeviceValues *pProperties,IPortableDeviceValues **ppResults) { 632 return This->lpVtbl->SetProperties(This,pProperties,ppResults); 633 } 634 static inline HRESULT ISensor_SupportsDataField(ISensor* This,REFPROPERTYKEY key,VARIANT_BOOL *pIsSupported) { 635 return This->lpVtbl->SupportsDataField(This,key,pIsSupported); 636 } 637 static inline HRESULT ISensor_GetState(ISensor* This,SensorState *pState) { 638 return This->lpVtbl->GetState(This,pState); 639 } 640 static inline HRESULT ISensor_GetData(ISensor* This,ISensorDataReport **ppDataReport) { 641 return This->lpVtbl->GetData(This,ppDataReport); 642 } 643 static inline HRESULT ISensor_SupportsEvent(ISensor* This,REFGUID eventGuid,VARIANT_BOOL *pIsSupported) { 644 return This->lpVtbl->SupportsEvent(This,eventGuid,pIsSupported); 645 } 646 static inline HRESULT ISensor_GetEventInterest(ISensor* This,GUID **ppValues,ULONG *pCount) { 647 return This->lpVtbl->GetEventInterest(This,ppValues,pCount); 648 } 649 static inline HRESULT ISensor_SetEventInterest(ISensor* This,GUID *pValues,ULONG count) { 650 return This->lpVtbl->SetEventInterest(This,pValues,count); 651 } 652 static 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 669 DEFINE_GUID(IID_ISensorDataReport, 0x0ab9df9b, 0xc4b5, 0x4796, 0x88,0x98, 0x04,0x70,0x70,0x6a,0x2e,0x1d); 670 #if defined(__cplusplus) && !defined(CINTERFACE) 671 MIDL_INTERFACE("0ab9df9b-c4b5-4796-8898-0470706a2e1d") 672 ISensorDataReport : 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 690 typedef 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 723 interface 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 ***/ 739 static inline HRESULT ISensorDataReport_QueryInterface(ISensorDataReport* This,REFIID riid,void **ppvObject) { 740 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 741 } 742 static inline ULONG ISensorDataReport_AddRef(ISensorDataReport* This) { 743 return This->lpVtbl->AddRef(This); 744 } 745 static inline ULONG ISensorDataReport_Release(ISensorDataReport* This) { 746 return This->lpVtbl->Release(This); 747 } 748 /*** ISensorDataReport methods ***/ 749 static inline HRESULT ISensorDataReport_GetTimestamp(ISensorDataReport* This,SYSTEMTIME *pTimeStamp) { 750 return This->lpVtbl->GetTimestamp(This,pTimeStamp); 751 } 752 static inline HRESULT ISensorDataReport_GetSensorValue(ISensorDataReport* This,REFPROPERTYKEY pKey,PROPVARIANT *pValue) { 753 return This->lpVtbl->GetSensorValue(This,pKey,pValue); 754 } 755 static 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 772 DEFINE_GUID(IID_ISensorManagerEvents, 0x9b3b0b86, 0x266a, 0x4aad, 0xb2,0x1f, 0xfd,0xe5,0x50,0x10,0x01,0xb7); 773 #if defined(__cplusplus) && !defined(CINTERFACE) 774 MIDL_INTERFACE("9b3b0b86-266a-4aad-b21f-fde5501001b7") 775 ISensorManagerEvents : 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 786 typedef 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 810 interface 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 ***/ 824 static inline HRESULT ISensorManagerEvents_QueryInterface(ISensorManagerEvents* This,REFIID riid,void **ppvObject) { 825 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 826 } 827 static inline ULONG ISensorManagerEvents_AddRef(ISensorManagerEvents* This) { 828 return This->lpVtbl->AddRef(This); 829 } 830 static inline ULONG ISensorManagerEvents_Release(ISensorManagerEvents* This) { 831 return This->lpVtbl->Release(This); 832 } 833 /*** ISensorManagerEvents methods ***/ 834 static 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 851 DEFINE_GUID(IID_ISensorEvents, 0x5d8dcc91, 0x4641, 0x47e7, 0xb7,0xc3, 0xb7,0x4f,0x48,0xa6,0xc3,0x91); 852 #if defined(__cplusplus) && !defined(CINTERFACE) 853 MIDL_INTERFACE("5d8dcc91-4641-47e7-b7c3-b74f48a6c391") 854 ISensorEvents : 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 877 typedef 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 916 interface 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 ***/ 933 static inline HRESULT ISensorEvents_QueryInterface(ISensorEvents* This,REFIID riid,void **ppvObject) { 934 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 935 } 936 static inline ULONG ISensorEvents_AddRef(ISensorEvents* This) { 937 return This->lpVtbl->AddRef(This); 938 } 939 static inline ULONG ISensorEvents_Release(ISensorEvents* This) { 940 return This->lpVtbl->Release(This); 941 } 942 /*** ISensorEvents methods ***/ 943 static inline HRESULT ISensorEvents_OnStateChanged(ISensorEvents* This,ISensor *pSensor,SensorState state) { 944 return This->lpVtbl->OnStateChanged(This,pSensor,state); 945 } 946 static inline HRESULT ISensorEvents_OnDataUpdated(ISensorEvents* This,ISensor *pSensor,ISensorDataReport *pNewData) { 947 return This->lpVtbl->OnDataUpdated(This,pSensor,pNewData); 948 } 949 static inline HRESULT ISensorEvents_OnEvent(ISensorEvents* This,ISensor *pSensor,REFGUID eventID,IPortableDeviceValues *pEventData) { 950 return This->lpVtbl->OnEvent(This,pSensor,eventID,pEventData); 951 } 952 static 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 966 DEFINE_GUID(LIBID_SensorsApiLib, 0x15092592, 0x5270, 0x4c6c, 0xaa,0xa0, 0x11,0x76,0x4f,0x18,0x9a,0x8f); 967 968 /***************************************************************************** 969 * SensorManager coclass 970 */ 971 972 DEFINE_GUID(CLSID_SensorManager, 0x77a1c827, 0xfcd2, 0x4689, 0x89,0x15, 0x9d,0x61,0x3c,0xc5,0xfa,0x3e); 973 974 #ifdef __cplusplus 975 class 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 984 ULONG __RPC_USER HWND_UserSize (ULONG *, ULONG, HWND *); 985 unsigned char * __RPC_USER HWND_UserMarshal (ULONG *, unsigned char *, HWND *); 986 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *); 987 void __RPC_USER HWND_UserFree (ULONG *, HWND *); 988 ULONG __RPC_USER BSTR_UserSize (ULONG *, ULONG, BSTR *); 989 unsigned char * __RPC_USER BSTR_UserMarshal (ULONG *, unsigned char *, BSTR *); 990 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *); 991 void __RPC_USER BSTR_UserFree (ULONG *, BSTR *); 992 ULONG __RPC_USER LPSAFEARRAY_UserSize (ULONG *, ULONG, LPSAFEARRAY *); 993 unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal (ULONG *, unsigned char *, LPSAFEARRAY *); 994 unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(ULONG *, unsigned char *, LPSAFEARRAY *); 995 void __RPC_USER LPSAFEARRAY_UserFree (ULONG *, LPSAFEARRAY *); 996 997 /* End additional prototypes */ 998 999 #ifdef __cplusplus 1000 } 1001 #endif 1002 1003 #endif /* __sensorsapi_h__ */