Home | History | Annotate | Download | only in include
      1 /*** Autogenerated by WIDL 1.6 from include/locationapi.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 __locationapi_h__
     16 #define __locationapi_h__
     17 
     18 /* Forward declarations */
     19 
     20 #ifndef __ILocationReport_FWD_DEFINED__
     21 #define __ILocationReport_FWD_DEFINED__
     22 typedef interface ILocationReport ILocationReport;
     23 #endif
     24 
     25 #ifndef __ICivicAddressReport_FWD_DEFINED__
     26 #define __ICivicAddressReport_FWD_DEFINED__
     27 typedef interface ICivicAddressReport ICivicAddressReport;
     28 #endif
     29 
     30 #ifndef __ILatLongReport_FWD_DEFINED__
     31 #define __ILatLongReport_FWD_DEFINED__
     32 typedef interface ILatLongReport ILatLongReport;
     33 #endif
     34 
     35 #ifndef __IDefaultLocation_FWD_DEFINED__
     36 #define __IDefaultLocation_FWD_DEFINED__
     37 typedef interface IDefaultLocation IDefaultLocation;
     38 #endif
     39 
     40 #ifndef __ILocationEvents_FWD_DEFINED__
     41 #define __ILocationEvents_FWD_DEFINED__
     42 typedef interface ILocationEvents ILocationEvents;
     43 #endif
     44 
     45 #ifndef __ILocation_FWD_DEFINED__
     46 #define __ILocation_FWD_DEFINED__
     47 typedef interface ILocation ILocation;
     48 #endif
     49 
     50 #ifndef __Location_FWD_DEFINED__
     51 #define __Location_FWD_DEFINED__
     52 #ifdef __cplusplus
     53 typedef class Location Location;
     54 #else
     55 typedef struct Location Location;
     56 #endif /* defined __cplusplus */
     57 #endif /* defined __Location_FWD_DEFINED__ */
     58 
     59 /* Headers for imported files */
     60 
     61 #include <oaidl.h>
     62 #include <ocidl.h>
     63 #include <sensorsapi.h>
     64 
     65 #ifdef __cplusplus
     66 extern "C" {
     67 #endif
     68 
     69 #include <propkeydef.h>
     70 typedef enum LOCATION_REPORT_STATUS {
     71     REPORT_NOT_SUPPORTED = 0,
     72     REPORT_ERROR = 1,
     73     REPORT_ACCESS_DENIED = 2,
     74     REPORT_INITIALIZING = 3,
     75     REPORT_RUNNING = 4
     76 } LOCATION_REPORT_STATUS;
     77 /*****************************************************************************
     78  * ILocationReport interface
     79  */
     80 #ifndef __ILocationReport_INTERFACE_DEFINED__
     81 #define __ILocationReport_INTERFACE_DEFINED__
     82 
     83 DEFINE_GUID(IID_ILocationReport, 0xc8b7f7ee, 0x75d0, 0x4db9, 0xb6,0x2d, 0x7a,0x0f,0x36,0x9c,0xa4,0x56);
     84 #if defined(__cplusplus) && !defined(CINTERFACE)
     85 MIDL_INTERFACE("c8b7f7ee-75d0-4db9-b62d-7a0f369ca456")
     86 ILocationReport : public IUnknown
     87 {
     88     virtual HRESULT STDMETHODCALLTYPE GetSensorID(
     89         SENSOR_ID *pSensorID) = 0;
     90 
     91     virtual HRESULT STDMETHODCALLTYPE GetTimestamp(
     92         SYSTEMTIME *pCreationTime) = 0;
     93 
     94     virtual HRESULT STDMETHODCALLTYPE GetValue(
     95         REFPROPERTYKEY pKey,
     96         PROPVARIANT *pValue) = 0;
     97 
     98 };
     99 #ifdef __CRT_UUID_DECL
    100 __CRT_UUID_DECL(ILocationReport, 0xc8b7f7ee, 0x75d0, 0x4db9, 0xb6,0x2d, 0x7a,0x0f,0x36,0x9c,0xa4,0x56)
    101 #endif
    102 #else
    103 typedef struct ILocationReportVtbl {
    104     BEGIN_INTERFACE
    105 
    106     /*** IUnknown methods ***/
    107     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    108         ILocationReport* This,
    109         REFIID riid,
    110         void **ppvObject);
    111 
    112     ULONG (STDMETHODCALLTYPE *AddRef)(
    113         ILocationReport* This);
    114 
    115     ULONG (STDMETHODCALLTYPE *Release)(
    116         ILocationReport* This);
    117 
    118     /*** ILocationReport methods ***/
    119     HRESULT (STDMETHODCALLTYPE *GetSensorID)(
    120         ILocationReport* This,
    121         SENSOR_ID *pSensorID);
    122 
    123     HRESULT (STDMETHODCALLTYPE *GetTimestamp)(
    124         ILocationReport* This,
    125         SYSTEMTIME *pCreationTime);
    126 
    127     HRESULT (STDMETHODCALLTYPE *GetValue)(
    128         ILocationReport* This,
    129         REFPROPERTYKEY pKey,
    130         PROPVARIANT *pValue);
    131 
    132     END_INTERFACE
    133 } ILocationReportVtbl;
    134 interface ILocationReport {
    135     CONST_VTBL ILocationReportVtbl* lpVtbl;
    136 };
    137 
    138 #ifdef COBJMACROS
    139 #ifndef WIDL_C_INLINE_WRAPPERS
    140 /*** IUnknown methods ***/
    141 #define ILocationReport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    142 #define ILocationReport_AddRef(This) (This)->lpVtbl->AddRef(This)
    143 #define ILocationReport_Release(This) (This)->lpVtbl->Release(This)
    144 /*** ILocationReport methods ***/
    145 #define ILocationReport_GetSensorID(This,pSensorID) (This)->lpVtbl->GetSensorID(This,pSensorID)
    146 #define ILocationReport_GetTimestamp(This,pCreationTime) (This)->lpVtbl->GetTimestamp(This,pCreationTime)
    147 #define ILocationReport_GetValue(This,pKey,pValue) (This)->lpVtbl->GetValue(This,pKey,pValue)
    148 #else
    149 /*** IUnknown methods ***/
    150 static FORCEINLINE HRESULT ILocationReport_QueryInterface(ILocationReport* This,REFIID riid,void **ppvObject) {
    151     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    152 }
    153 static FORCEINLINE ULONG ILocationReport_AddRef(ILocationReport* This) {
    154     return This->lpVtbl->AddRef(This);
    155 }
    156 static FORCEINLINE ULONG ILocationReport_Release(ILocationReport* This) {
    157     return This->lpVtbl->Release(This);
    158 }
    159 /*** ILocationReport methods ***/
    160 static FORCEINLINE HRESULT ILocationReport_GetSensorID(ILocationReport* This,SENSOR_ID *pSensorID) {
    161     return This->lpVtbl->GetSensorID(This,pSensorID);
    162 }
    163 static FORCEINLINE HRESULT ILocationReport_GetTimestamp(ILocationReport* This,SYSTEMTIME *pCreationTime) {
    164     return This->lpVtbl->GetTimestamp(This,pCreationTime);
    165 }
    166 static FORCEINLINE HRESULT ILocationReport_GetValue(ILocationReport* This,REFPROPERTYKEY pKey,PROPVARIANT *pValue) {
    167     return This->lpVtbl->GetValue(This,pKey,pValue);
    168 }
    169 #endif
    170 #endif
    171 
    172 #endif
    173 
    174 HRESULT STDMETHODCALLTYPE ILocationReport_GetSensorID_Proxy(
    175     ILocationReport* This,
    176     SENSOR_ID *pSensorID);
    177 void __RPC_STUB ILocationReport_GetSensorID_Stub(
    178     IRpcStubBuffer* This,
    179     IRpcChannelBuffer* pRpcChannelBuffer,
    180     PRPC_MESSAGE pRpcMessage,
    181     DWORD* pdwStubPhase);
    182 HRESULT STDMETHODCALLTYPE ILocationReport_GetTimestamp_Proxy(
    183     ILocationReport* This,
    184     SYSTEMTIME *pCreationTime);
    185 void __RPC_STUB ILocationReport_GetTimestamp_Stub(
    186     IRpcStubBuffer* This,
    187     IRpcChannelBuffer* pRpcChannelBuffer,
    188     PRPC_MESSAGE pRpcMessage,
    189     DWORD* pdwStubPhase);
    190 HRESULT STDMETHODCALLTYPE ILocationReport_GetValue_Proxy(
    191     ILocationReport* This,
    192     REFPROPERTYKEY pKey,
    193     PROPVARIANT *pValue);
    194 void __RPC_STUB ILocationReport_GetValue_Stub(
    195     IRpcStubBuffer* This,
    196     IRpcChannelBuffer* pRpcChannelBuffer,
    197     PRPC_MESSAGE pRpcMessage,
    198     DWORD* pdwStubPhase);
    199 
    200 #endif  /* __ILocationReport_INTERFACE_DEFINED__ */
    201 
    202 /*****************************************************************************
    203  * ICivicAddressReport interface
    204  */
    205 #ifndef __ICivicAddressReport_INTERFACE_DEFINED__
    206 #define __ICivicAddressReport_INTERFACE_DEFINED__
    207 
    208 DEFINE_GUID(IID_ICivicAddressReport, 0xc0b19f70, 0x4adf, 0x445d, 0x87,0xf2, 0xca,0xd8,0xfd,0x71,0x17,0x92);
    209 #if defined(__cplusplus) && !defined(CINTERFACE)
    210 MIDL_INTERFACE("c0b19f70-4adf-445d-87f2-cad8fd711792")
    211 ICivicAddressReport : public ILocationReport
    212 {
    213     virtual HRESULT STDMETHODCALLTYPE GetAddressLine1(
    214         BSTR *pbstrAddress1) = 0;
    215 
    216     virtual HRESULT STDMETHODCALLTYPE GetAddressLine2(
    217         BSTR *pbstrAddress2) = 0;
    218 
    219     virtual HRESULT STDMETHODCALLTYPE GetCity(
    220         BSTR *pbstrCity) = 0;
    221 
    222     virtual HRESULT STDMETHODCALLTYPE GetStateProvince(
    223         BSTR *pbstrStateProvince) = 0;
    224 
    225     virtual HRESULT STDMETHODCALLTYPE GetPostalCode(
    226         BSTR *pbstrPostalCode) = 0;
    227 
    228     virtual HRESULT STDMETHODCALLTYPE GetCountryRegion(
    229         BSTR *pbstrCountryRegion) = 0;
    230 
    231     virtual HRESULT STDMETHODCALLTYPE GetDetailLevel(
    232         DWORD *pDetailLevel) = 0;
    233 
    234 };
    235 #ifdef __CRT_UUID_DECL
    236 __CRT_UUID_DECL(ICivicAddressReport, 0xc0b19f70, 0x4adf, 0x445d, 0x87,0xf2, 0xca,0xd8,0xfd,0x71,0x17,0x92)
    237 #endif
    238 #else
    239 typedef struct ICivicAddressReportVtbl {
    240     BEGIN_INTERFACE
    241 
    242     /*** IUnknown methods ***/
    243     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    244         ICivicAddressReport* This,
    245         REFIID riid,
    246         void **ppvObject);
    247 
    248     ULONG (STDMETHODCALLTYPE *AddRef)(
    249         ICivicAddressReport* This);
    250 
    251     ULONG (STDMETHODCALLTYPE *Release)(
    252         ICivicAddressReport* This);
    253 
    254     /*** ILocationReport methods ***/
    255     HRESULT (STDMETHODCALLTYPE *GetSensorID)(
    256         ICivicAddressReport* This,
    257         SENSOR_ID *pSensorID);
    258 
    259     HRESULT (STDMETHODCALLTYPE *GetTimestamp)(
    260         ICivicAddressReport* This,
    261         SYSTEMTIME *pCreationTime);
    262 
    263     HRESULT (STDMETHODCALLTYPE *GetValue)(
    264         ICivicAddressReport* This,
    265         REFPROPERTYKEY pKey,
    266         PROPVARIANT *pValue);
    267 
    268     /*** ICivicAddressReport methods ***/
    269     HRESULT (STDMETHODCALLTYPE *GetAddressLine1)(
    270         ICivicAddressReport* This,
    271         BSTR *pbstrAddress1);
    272 
    273     HRESULT (STDMETHODCALLTYPE *GetAddressLine2)(
    274         ICivicAddressReport* This,
    275         BSTR *pbstrAddress2);
    276 
    277     HRESULT (STDMETHODCALLTYPE *GetCity)(
    278         ICivicAddressReport* This,
    279         BSTR *pbstrCity);
    280 
    281     HRESULT (STDMETHODCALLTYPE *GetStateProvince)(
    282         ICivicAddressReport* This,
    283         BSTR *pbstrStateProvince);
    284 
    285     HRESULT (STDMETHODCALLTYPE *GetPostalCode)(
    286         ICivicAddressReport* This,
    287         BSTR *pbstrPostalCode);
    288 
    289     HRESULT (STDMETHODCALLTYPE *GetCountryRegion)(
    290         ICivicAddressReport* This,
    291         BSTR *pbstrCountryRegion);
    292 
    293     HRESULT (STDMETHODCALLTYPE *GetDetailLevel)(
    294         ICivicAddressReport* This,
    295         DWORD *pDetailLevel);
    296 
    297     END_INTERFACE
    298 } ICivicAddressReportVtbl;
    299 interface ICivicAddressReport {
    300     CONST_VTBL ICivicAddressReportVtbl* lpVtbl;
    301 };
    302 
    303 #ifdef COBJMACROS
    304 #ifndef WIDL_C_INLINE_WRAPPERS
    305 /*** IUnknown methods ***/
    306 #define ICivicAddressReport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    307 #define ICivicAddressReport_AddRef(This) (This)->lpVtbl->AddRef(This)
    308 #define ICivicAddressReport_Release(This) (This)->lpVtbl->Release(This)
    309 /*** ILocationReport methods ***/
    310 #define ICivicAddressReport_GetSensorID(This,pSensorID) (This)->lpVtbl->GetSensorID(This,pSensorID)
    311 #define ICivicAddressReport_GetTimestamp(This,pCreationTime) (This)->lpVtbl->GetTimestamp(This,pCreationTime)
    312 #define ICivicAddressReport_GetValue(This,pKey,pValue) (This)->lpVtbl->GetValue(This,pKey,pValue)
    313 /*** ICivicAddressReport methods ***/
    314 #define ICivicAddressReport_GetAddressLine1(This,pbstrAddress1) (This)->lpVtbl->GetAddressLine1(This,pbstrAddress1)
    315 #define ICivicAddressReport_GetAddressLine2(This,pbstrAddress2) (This)->lpVtbl->GetAddressLine2(This,pbstrAddress2)
    316 #define ICivicAddressReport_GetCity(This,pbstrCity) (This)->lpVtbl->GetCity(This,pbstrCity)
    317 #define ICivicAddressReport_GetStateProvince(This,pbstrStateProvince) (This)->lpVtbl->GetStateProvince(This,pbstrStateProvince)
    318 #define ICivicAddressReport_GetPostalCode(This,pbstrPostalCode) (This)->lpVtbl->GetPostalCode(This,pbstrPostalCode)
    319 #define ICivicAddressReport_GetCountryRegion(This,pbstrCountryRegion) (This)->lpVtbl->GetCountryRegion(This,pbstrCountryRegion)
    320 #define ICivicAddressReport_GetDetailLevel(This,pDetailLevel) (This)->lpVtbl->GetDetailLevel(This,pDetailLevel)
    321 #else
    322 /*** IUnknown methods ***/
    323 static FORCEINLINE HRESULT ICivicAddressReport_QueryInterface(ICivicAddressReport* This,REFIID riid,void **ppvObject) {
    324     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    325 }
    326 static FORCEINLINE ULONG ICivicAddressReport_AddRef(ICivicAddressReport* This) {
    327     return This->lpVtbl->AddRef(This);
    328 }
    329 static FORCEINLINE ULONG ICivicAddressReport_Release(ICivicAddressReport* This) {
    330     return This->lpVtbl->Release(This);
    331 }
    332 /*** ILocationReport methods ***/
    333 static FORCEINLINE HRESULT ICivicAddressReport_GetSensorID(ICivicAddressReport* This,SENSOR_ID *pSensorID) {
    334     return This->lpVtbl->GetSensorID(This,pSensorID);
    335 }
    336 static FORCEINLINE HRESULT ICivicAddressReport_GetTimestamp(ICivicAddressReport* This,SYSTEMTIME *pCreationTime) {
    337     return This->lpVtbl->GetTimestamp(This,pCreationTime);
    338 }
    339 static FORCEINLINE HRESULT ICivicAddressReport_GetValue(ICivicAddressReport* This,REFPROPERTYKEY pKey,PROPVARIANT *pValue) {
    340     return This->lpVtbl->GetValue(This,pKey,pValue);
    341 }
    342 /*** ICivicAddressReport methods ***/
    343 static FORCEINLINE HRESULT ICivicAddressReport_GetAddressLine1(ICivicAddressReport* This,BSTR *pbstrAddress1) {
    344     return This->lpVtbl->GetAddressLine1(This,pbstrAddress1);
    345 }
    346 static FORCEINLINE HRESULT ICivicAddressReport_GetAddressLine2(ICivicAddressReport* This,BSTR *pbstrAddress2) {
    347     return This->lpVtbl->GetAddressLine2(This,pbstrAddress2);
    348 }
    349 static FORCEINLINE HRESULT ICivicAddressReport_GetCity(ICivicAddressReport* This,BSTR *pbstrCity) {
    350     return This->lpVtbl->GetCity(This,pbstrCity);
    351 }
    352 static FORCEINLINE HRESULT ICivicAddressReport_GetStateProvince(ICivicAddressReport* This,BSTR *pbstrStateProvince) {
    353     return This->lpVtbl->GetStateProvince(This,pbstrStateProvince);
    354 }
    355 static FORCEINLINE HRESULT ICivicAddressReport_GetPostalCode(ICivicAddressReport* This,BSTR *pbstrPostalCode) {
    356     return This->lpVtbl->GetPostalCode(This,pbstrPostalCode);
    357 }
    358 static FORCEINLINE HRESULT ICivicAddressReport_GetCountryRegion(ICivicAddressReport* This,BSTR *pbstrCountryRegion) {
    359     return This->lpVtbl->GetCountryRegion(This,pbstrCountryRegion);
    360 }
    361 static FORCEINLINE HRESULT ICivicAddressReport_GetDetailLevel(ICivicAddressReport* This,DWORD *pDetailLevel) {
    362     return This->lpVtbl->GetDetailLevel(This,pDetailLevel);
    363 }
    364 #endif
    365 #endif
    366 
    367 #endif
    368 
    369 HRESULT STDMETHODCALLTYPE ICivicAddressReport_GetAddressLine1_Proxy(
    370     ICivicAddressReport* This,
    371     BSTR *pbstrAddress1);
    372 void __RPC_STUB ICivicAddressReport_GetAddressLine1_Stub(
    373     IRpcStubBuffer* This,
    374     IRpcChannelBuffer* pRpcChannelBuffer,
    375     PRPC_MESSAGE pRpcMessage,
    376     DWORD* pdwStubPhase);
    377 HRESULT STDMETHODCALLTYPE ICivicAddressReport_GetAddressLine2_Proxy(
    378     ICivicAddressReport* This,
    379     BSTR *pbstrAddress2);
    380 void __RPC_STUB ICivicAddressReport_GetAddressLine2_Stub(
    381     IRpcStubBuffer* This,
    382     IRpcChannelBuffer* pRpcChannelBuffer,
    383     PRPC_MESSAGE pRpcMessage,
    384     DWORD* pdwStubPhase);
    385 HRESULT STDMETHODCALLTYPE ICivicAddressReport_GetCity_Proxy(
    386     ICivicAddressReport* This,
    387     BSTR *pbstrCity);
    388 void __RPC_STUB ICivicAddressReport_GetCity_Stub(
    389     IRpcStubBuffer* This,
    390     IRpcChannelBuffer* pRpcChannelBuffer,
    391     PRPC_MESSAGE pRpcMessage,
    392     DWORD* pdwStubPhase);
    393 HRESULT STDMETHODCALLTYPE ICivicAddressReport_GetStateProvince_Proxy(
    394     ICivicAddressReport* This,
    395     BSTR *pbstrStateProvince);
    396 void __RPC_STUB ICivicAddressReport_GetStateProvince_Stub(
    397     IRpcStubBuffer* This,
    398     IRpcChannelBuffer* pRpcChannelBuffer,
    399     PRPC_MESSAGE pRpcMessage,
    400     DWORD* pdwStubPhase);
    401 HRESULT STDMETHODCALLTYPE ICivicAddressReport_GetPostalCode_Proxy(
    402     ICivicAddressReport* This,
    403     BSTR *pbstrPostalCode);
    404 void __RPC_STUB ICivicAddressReport_GetPostalCode_Stub(
    405     IRpcStubBuffer* This,
    406     IRpcChannelBuffer* pRpcChannelBuffer,
    407     PRPC_MESSAGE pRpcMessage,
    408     DWORD* pdwStubPhase);
    409 HRESULT STDMETHODCALLTYPE ICivicAddressReport_GetCountryRegion_Proxy(
    410     ICivicAddressReport* This,
    411     BSTR *pbstrCountryRegion);
    412 void __RPC_STUB ICivicAddressReport_GetCountryRegion_Stub(
    413     IRpcStubBuffer* This,
    414     IRpcChannelBuffer* pRpcChannelBuffer,
    415     PRPC_MESSAGE pRpcMessage,
    416     DWORD* pdwStubPhase);
    417 HRESULT STDMETHODCALLTYPE ICivicAddressReport_GetDetailLevel_Proxy(
    418     ICivicAddressReport* This,
    419     DWORD *pDetailLevel);
    420 void __RPC_STUB ICivicAddressReport_GetDetailLevel_Stub(
    421     IRpcStubBuffer* This,
    422     IRpcChannelBuffer* pRpcChannelBuffer,
    423     PRPC_MESSAGE pRpcMessage,
    424     DWORD* pdwStubPhase);
    425 
    426 #endif  /* __ICivicAddressReport_INTERFACE_DEFINED__ */
    427 
    428 /*****************************************************************************
    429  * ILatLongReport interface
    430  */
    431 #ifndef __ILatLongReport_INTERFACE_DEFINED__
    432 #define __ILatLongReport_INTERFACE_DEFINED__
    433 
    434 DEFINE_GUID(IID_ILatLongReport, 0x7fed806d, 0x0ef8, 0x4f07, 0x80,0xac, 0x36,0xa0,0xbe,0xae,0x31,0x34);
    435 #if defined(__cplusplus) && !defined(CINTERFACE)
    436 MIDL_INTERFACE("7fed806d-0ef8-4f07-80ac-36a0beae3134")
    437 ILatLongReport : public ILocationReport
    438 {
    439     virtual HRESULT STDMETHODCALLTYPE GetLatitude(
    440         DOUBLE *pLatitude) = 0;
    441 
    442     virtual HRESULT STDMETHODCALLTYPE GetLongitude(
    443         DOUBLE *pLongitude) = 0;
    444 
    445     virtual HRESULT STDMETHODCALLTYPE GetErrorRadius(
    446         DOUBLE *pErrorRadius) = 0;
    447 
    448     virtual HRESULT STDMETHODCALLTYPE GetAltitude(
    449         DOUBLE *pAltitude) = 0;
    450 
    451     virtual HRESULT STDMETHODCALLTYPE GetAltitudeError(
    452         DOUBLE *pAltitudeError) = 0;
    453 
    454 };
    455 #ifdef __CRT_UUID_DECL
    456 __CRT_UUID_DECL(ILatLongReport, 0x7fed806d, 0x0ef8, 0x4f07, 0x80,0xac, 0x36,0xa0,0xbe,0xae,0x31,0x34)
    457 #endif
    458 #else
    459 typedef struct ILatLongReportVtbl {
    460     BEGIN_INTERFACE
    461 
    462     /*** IUnknown methods ***/
    463     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    464         ILatLongReport* This,
    465         REFIID riid,
    466         void **ppvObject);
    467 
    468     ULONG (STDMETHODCALLTYPE *AddRef)(
    469         ILatLongReport* This);
    470 
    471     ULONG (STDMETHODCALLTYPE *Release)(
    472         ILatLongReport* This);
    473 
    474     /*** ILocationReport methods ***/
    475     HRESULT (STDMETHODCALLTYPE *GetSensorID)(
    476         ILatLongReport* This,
    477         SENSOR_ID *pSensorID);
    478 
    479     HRESULT (STDMETHODCALLTYPE *GetTimestamp)(
    480         ILatLongReport* This,
    481         SYSTEMTIME *pCreationTime);
    482 
    483     HRESULT (STDMETHODCALLTYPE *GetValue)(
    484         ILatLongReport* This,
    485         REFPROPERTYKEY pKey,
    486         PROPVARIANT *pValue);
    487 
    488     /*** ILatLongReport methods ***/
    489     HRESULT (STDMETHODCALLTYPE *GetLatitude)(
    490         ILatLongReport* This,
    491         DOUBLE *pLatitude);
    492 
    493     HRESULT (STDMETHODCALLTYPE *GetLongitude)(
    494         ILatLongReport* This,
    495         DOUBLE *pLongitude);
    496 
    497     HRESULT (STDMETHODCALLTYPE *GetErrorRadius)(
    498         ILatLongReport* This,
    499         DOUBLE *pErrorRadius);
    500 
    501     HRESULT (STDMETHODCALLTYPE *GetAltitude)(
    502         ILatLongReport* This,
    503         DOUBLE *pAltitude);
    504 
    505     HRESULT (STDMETHODCALLTYPE *GetAltitudeError)(
    506         ILatLongReport* This,
    507         DOUBLE *pAltitudeError);
    508 
    509     END_INTERFACE
    510 } ILatLongReportVtbl;
    511 interface ILatLongReport {
    512     CONST_VTBL ILatLongReportVtbl* lpVtbl;
    513 };
    514 
    515 #ifdef COBJMACROS
    516 #ifndef WIDL_C_INLINE_WRAPPERS
    517 /*** IUnknown methods ***/
    518 #define ILatLongReport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    519 #define ILatLongReport_AddRef(This) (This)->lpVtbl->AddRef(This)
    520 #define ILatLongReport_Release(This) (This)->lpVtbl->Release(This)
    521 /*** ILocationReport methods ***/
    522 #define ILatLongReport_GetSensorID(This,pSensorID) (This)->lpVtbl->GetSensorID(This,pSensorID)
    523 #define ILatLongReport_GetTimestamp(This,pCreationTime) (This)->lpVtbl->GetTimestamp(This,pCreationTime)
    524 #define ILatLongReport_GetValue(This,pKey,pValue) (This)->lpVtbl->GetValue(This,pKey,pValue)
    525 /*** ILatLongReport methods ***/
    526 #define ILatLongReport_GetLatitude(This,pLatitude) (This)->lpVtbl->GetLatitude(This,pLatitude)
    527 #define ILatLongReport_GetLongitude(This,pLongitude) (This)->lpVtbl->GetLongitude(This,pLongitude)
    528 #define ILatLongReport_GetErrorRadius(This,pErrorRadius) (This)->lpVtbl->GetErrorRadius(This,pErrorRadius)
    529 #define ILatLongReport_GetAltitude(This,pAltitude) (This)->lpVtbl->GetAltitude(This,pAltitude)
    530 #define ILatLongReport_GetAltitudeError(This,pAltitudeError) (This)->lpVtbl->GetAltitudeError(This,pAltitudeError)
    531 #else
    532 /*** IUnknown methods ***/
    533 static FORCEINLINE HRESULT ILatLongReport_QueryInterface(ILatLongReport* This,REFIID riid,void **ppvObject) {
    534     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    535 }
    536 static FORCEINLINE ULONG ILatLongReport_AddRef(ILatLongReport* This) {
    537     return This->lpVtbl->AddRef(This);
    538 }
    539 static FORCEINLINE ULONG ILatLongReport_Release(ILatLongReport* This) {
    540     return This->lpVtbl->Release(This);
    541 }
    542 /*** ILocationReport methods ***/
    543 static FORCEINLINE HRESULT ILatLongReport_GetSensorID(ILatLongReport* This,SENSOR_ID *pSensorID) {
    544     return This->lpVtbl->GetSensorID(This,pSensorID);
    545 }
    546 static FORCEINLINE HRESULT ILatLongReport_GetTimestamp(ILatLongReport* This,SYSTEMTIME *pCreationTime) {
    547     return This->lpVtbl->GetTimestamp(This,pCreationTime);
    548 }
    549 static FORCEINLINE HRESULT ILatLongReport_GetValue(ILatLongReport* This,REFPROPERTYKEY pKey,PROPVARIANT *pValue) {
    550     return This->lpVtbl->GetValue(This,pKey,pValue);
    551 }
    552 /*** ILatLongReport methods ***/
    553 static FORCEINLINE HRESULT ILatLongReport_GetLatitude(ILatLongReport* This,DOUBLE *pLatitude) {
    554     return This->lpVtbl->GetLatitude(This,pLatitude);
    555 }
    556 static FORCEINLINE HRESULT ILatLongReport_GetLongitude(ILatLongReport* This,DOUBLE *pLongitude) {
    557     return This->lpVtbl->GetLongitude(This,pLongitude);
    558 }
    559 static FORCEINLINE HRESULT ILatLongReport_GetErrorRadius(ILatLongReport* This,DOUBLE *pErrorRadius) {
    560     return This->lpVtbl->GetErrorRadius(This,pErrorRadius);
    561 }
    562 static FORCEINLINE HRESULT ILatLongReport_GetAltitude(ILatLongReport* This,DOUBLE *pAltitude) {
    563     return This->lpVtbl->GetAltitude(This,pAltitude);
    564 }
    565 static FORCEINLINE HRESULT ILatLongReport_GetAltitudeError(ILatLongReport* This,DOUBLE *pAltitudeError) {
    566     return This->lpVtbl->GetAltitudeError(This,pAltitudeError);
    567 }
    568 #endif
    569 #endif
    570 
    571 #endif
    572 
    573 HRESULT STDMETHODCALLTYPE ILatLongReport_GetLatitude_Proxy(
    574     ILatLongReport* This,
    575     DOUBLE *pLatitude);
    576 void __RPC_STUB ILatLongReport_GetLatitude_Stub(
    577     IRpcStubBuffer* This,
    578     IRpcChannelBuffer* pRpcChannelBuffer,
    579     PRPC_MESSAGE pRpcMessage,
    580     DWORD* pdwStubPhase);
    581 HRESULT STDMETHODCALLTYPE ILatLongReport_GetLongitude_Proxy(
    582     ILatLongReport* This,
    583     DOUBLE *pLongitude);
    584 void __RPC_STUB ILatLongReport_GetLongitude_Stub(
    585     IRpcStubBuffer* This,
    586     IRpcChannelBuffer* pRpcChannelBuffer,
    587     PRPC_MESSAGE pRpcMessage,
    588     DWORD* pdwStubPhase);
    589 HRESULT STDMETHODCALLTYPE ILatLongReport_GetErrorRadius_Proxy(
    590     ILatLongReport* This,
    591     DOUBLE *pErrorRadius);
    592 void __RPC_STUB ILatLongReport_GetErrorRadius_Stub(
    593     IRpcStubBuffer* This,
    594     IRpcChannelBuffer* pRpcChannelBuffer,
    595     PRPC_MESSAGE pRpcMessage,
    596     DWORD* pdwStubPhase);
    597 HRESULT STDMETHODCALLTYPE ILatLongReport_GetAltitude_Proxy(
    598     ILatLongReport* This,
    599     DOUBLE *pAltitude);
    600 void __RPC_STUB ILatLongReport_GetAltitude_Stub(
    601     IRpcStubBuffer* This,
    602     IRpcChannelBuffer* pRpcChannelBuffer,
    603     PRPC_MESSAGE pRpcMessage,
    604     DWORD* pdwStubPhase);
    605 HRESULT STDMETHODCALLTYPE ILatLongReport_GetAltitudeError_Proxy(
    606     ILatLongReport* This,
    607     DOUBLE *pAltitudeError);
    608 void __RPC_STUB ILatLongReport_GetAltitudeError_Stub(
    609     IRpcStubBuffer* This,
    610     IRpcChannelBuffer* pRpcChannelBuffer,
    611     PRPC_MESSAGE pRpcMessage,
    612     DWORD* pdwStubPhase);
    613 
    614 #endif  /* __ILatLongReport_INTERFACE_DEFINED__ */
    615 
    616 /*****************************************************************************
    617  * IDefaultLocation interface
    618  */
    619 #ifndef __IDefaultLocation_INTERFACE_DEFINED__
    620 #define __IDefaultLocation_INTERFACE_DEFINED__
    621 
    622 DEFINE_GUID(IID_IDefaultLocation, 0xa65af77e, 0x969a, 0x4a2e, 0x8a,0xca, 0x33,0xbb,0x7c,0xbb,0x12,0x35);
    623 #if defined(__cplusplus) && !defined(CINTERFACE)
    624 MIDL_INTERFACE("a65af77e-969a-4a2e-8aca-33bb7cbb1235")
    625 IDefaultLocation : public IUnknown
    626 {
    627     virtual HRESULT STDMETHODCALLTYPE SetReport(
    628         REFIID reportType,
    629         ILocationReport *pLocationReport) = 0;
    630 
    631     virtual HRESULT STDMETHODCALLTYPE GetReport(
    632         REFIID reportType,
    633         ILocationReport **ppLocationReport) = 0;
    634 
    635 };
    636 #ifdef __CRT_UUID_DECL
    637 __CRT_UUID_DECL(IDefaultLocation, 0xa65af77e, 0x969a, 0x4a2e, 0x8a,0xca, 0x33,0xbb,0x7c,0xbb,0x12,0x35)
    638 #endif
    639 #else
    640 typedef struct IDefaultLocationVtbl {
    641     BEGIN_INTERFACE
    642 
    643     /*** IUnknown methods ***/
    644     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    645         IDefaultLocation* This,
    646         REFIID riid,
    647         void **ppvObject);
    648 
    649     ULONG (STDMETHODCALLTYPE *AddRef)(
    650         IDefaultLocation* This);
    651 
    652     ULONG (STDMETHODCALLTYPE *Release)(
    653         IDefaultLocation* This);
    654 
    655     /*** IDefaultLocation methods ***/
    656     HRESULT (STDMETHODCALLTYPE *SetReport)(
    657         IDefaultLocation* This,
    658         REFIID reportType,
    659         ILocationReport *pLocationReport);
    660 
    661     HRESULT (STDMETHODCALLTYPE *GetReport)(
    662         IDefaultLocation* This,
    663         REFIID reportType,
    664         ILocationReport **ppLocationReport);
    665 
    666     END_INTERFACE
    667 } IDefaultLocationVtbl;
    668 interface IDefaultLocation {
    669     CONST_VTBL IDefaultLocationVtbl* lpVtbl;
    670 };
    671 
    672 #ifdef COBJMACROS
    673 #ifndef WIDL_C_INLINE_WRAPPERS
    674 /*** IUnknown methods ***/
    675 #define IDefaultLocation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    676 #define IDefaultLocation_AddRef(This) (This)->lpVtbl->AddRef(This)
    677 #define IDefaultLocation_Release(This) (This)->lpVtbl->Release(This)
    678 /*** IDefaultLocation methods ***/
    679 #define IDefaultLocation_SetReport(This,reportType,pLocationReport) (This)->lpVtbl->SetReport(This,reportType,pLocationReport)
    680 #define IDefaultLocation_GetReport(This,reportType,ppLocationReport) (This)->lpVtbl->GetReport(This,reportType,ppLocationReport)
    681 #else
    682 /*** IUnknown methods ***/
    683 static FORCEINLINE HRESULT IDefaultLocation_QueryInterface(IDefaultLocation* This,REFIID riid,void **ppvObject) {
    684     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    685 }
    686 static FORCEINLINE ULONG IDefaultLocation_AddRef(IDefaultLocation* This) {
    687     return This->lpVtbl->AddRef(This);
    688 }
    689 static FORCEINLINE ULONG IDefaultLocation_Release(IDefaultLocation* This) {
    690     return This->lpVtbl->Release(This);
    691 }
    692 /*** IDefaultLocation methods ***/
    693 static FORCEINLINE HRESULT IDefaultLocation_SetReport(IDefaultLocation* This,REFIID reportType,ILocationReport *pLocationReport) {
    694     return This->lpVtbl->SetReport(This,reportType,pLocationReport);
    695 }
    696 static FORCEINLINE HRESULT IDefaultLocation_GetReport(IDefaultLocation* This,REFIID reportType,ILocationReport **ppLocationReport) {
    697     return This->lpVtbl->GetReport(This,reportType,ppLocationReport);
    698 }
    699 #endif
    700 #endif
    701 
    702 #endif
    703 
    704 HRESULT STDMETHODCALLTYPE IDefaultLocation_SetReport_Proxy(
    705     IDefaultLocation* This,
    706     REFIID reportType,
    707     ILocationReport *pLocationReport);
    708 void __RPC_STUB IDefaultLocation_SetReport_Stub(
    709     IRpcStubBuffer* This,
    710     IRpcChannelBuffer* pRpcChannelBuffer,
    711     PRPC_MESSAGE pRpcMessage,
    712     DWORD* pdwStubPhase);
    713 HRESULT STDMETHODCALLTYPE IDefaultLocation_GetReport_Proxy(
    714     IDefaultLocation* This,
    715     REFIID reportType,
    716     ILocationReport **ppLocationReport);
    717 void __RPC_STUB IDefaultLocation_GetReport_Stub(
    718     IRpcStubBuffer* This,
    719     IRpcChannelBuffer* pRpcChannelBuffer,
    720     PRPC_MESSAGE pRpcMessage,
    721     DWORD* pdwStubPhase);
    722 
    723 #endif  /* __IDefaultLocation_INTERFACE_DEFINED__ */
    724 
    725 /*****************************************************************************
    726  * ILocationEvents interface
    727  */
    728 #ifndef __ILocationEvents_INTERFACE_DEFINED__
    729 #define __ILocationEvents_INTERFACE_DEFINED__
    730 
    731 DEFINE_GUID(IID_ILocationEvents, 0xcae02bbf, 0x798b, 0x4508, 0xa2,0x07, 0x35,0xa7,0x90,0x6d,0xc7,0x3d);
    732 #if defined(__cplusplus) && !defined(CINTERFACE)
    733 MIDL_INTERFACE("cae02bbf-798b-4508-a207-35a7906dc73d")
    734 ILocationEvents : public IUnknown
    735 {
    736     virtual HRESULT STDMETHODCALLTYPE OnLocationChanged(
    737         REFIID reportType,
    738         ILocationReport *pLocationReport) = 0;
    739 
    740     virtual HRESULT STDMETHODCALLTYPE OnStatusChanged(
    741         REFIID reportType,
    742         LOCATION_REPORT_STATUS newStatus) = 0;
    743 
    744 };
    745 #ifdef __CRT_UUID_DECL
    746 __CRT_UUID_DECL(ILocationEvents, 0xcae02bbf, 0x798b, 0x4508, 0xa2,0x07, 0x35,0xa7,0x90,0x6d,0xc7,0x3d)
    747 #endif
    748 #else
    749 typedef struct ILocationEventsVtbl {
    750     BEGIN_INTERFACE
    751 
    752     /*** IUnknown methods ***/
    753     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    754         ILocationEvents* This,
    755         REFIID riid,
    756         void **ppvObject);
    757 
    758     ULONG (STDMETHODCALLTYPE *AddRef)(
    759         ILocationEvents* This);
    760 
    761     ULONG (STDMETHODCALLTYPE *Release)(
    762         ILocationEvents* This);
    763 
    764     /*** ILocationEvents methods ***/
    765     HRESULT (STDMETHODCALLTYPE *OnLocationChanged)(
    766         ILocationEvents* This,
    767         REFIID reportType,
    768         ILocationReport *pLocationReport);
    769 
    770     HRESULT (STDMETHODCALLTYPE *OnStatusChanged)(
    771         ILocationEvents* This,
    772         REFIID reportType,
    773         LOCATION_REPORT_STATUS newStatus);
    774 
    775     END_INTERFACE
    776 } ILocationEventsVtbl;
    777 interface ILocationEvents {
    778     CONST_VTBL ILocationEventsVtbl* lpVtbl;
    779 };
    780 
    781 #ifdef COBJMACROS
    782 #ifndef WIDL_C_INLINE_WRAPPERS
    783 /*** IUnknown methods ***/
    784 #define ILocationEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    785 #define ILocationEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
    786 #define ILocationEvents_Release(This) (This)->lpVtbl->Release(This)
    787 /*** ILocationEvents methods ***/
    788 #define ILocationEvents_OnLocationChanged(This,reportType,pLocationReport) (This)->lpVtbl->OnLocationChanged(This,reportType,pLocationReport)
    789 #define ILocationEvents_OnStatusChanged(This,reportType,newStatus) (This)->lpVtbl->OnStatusChanged(This,reportType,newStatus)
    790 #else
    791 /*** IUnknown methods ***/
    792 static FORCEINLINE HRESULT ILocationEvents_QueryInterface(ILocationEvents* This,REFIID riid,void **ppvObject) {
    793     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    794 }
    795 static FORCEINLINE ULONG ILocationEvents_AddRef(ILocationEvents* This) {
    796     return This->lpVtbl->AddRef(This);
    797 }
    798 static FORCEINLINE ULONG ILocationEvents_Release(ILocationEvents* This) {
    799     return This->lpVtbl->Release(This);
    800 }
    801 /*** ILocationEvents methods ***/
    802 static FORCEINLINE HRESULT ILocationEvents_OnLocationChanged(ILocationEvents* This,REFIID reportType,ILocationReport *pLocationReport) {
    803     return This->lpVtbl->OnLocationChanged(This,reportType,pLocationReport);
    804 }
    805 static FORCEINLINE HRESULT ILocationEvents_OnStatusChanged(ILocationEvents* This,REFIID reportType,LOCATION_REPORT_STATUS newStatus) {
    806     return This->lpVtbl->OnStatusChanged(This,reportType,newStatus);
    807 }
    808 #endif
    809 #endif
    810 
    811 #endif
    812 
    813 HRESULT STDMETHODCALLTYPE ILocationEvents_OnLocationChanged_Proxy(
    814     ILocationEvents* This,
    815     REFIID reportType,
    816     ILocationReport *pLocationReport);
    817 void __RPC_STUB ILocationEvents_OnLocationChanged_Stub(
    818     IRpcStubBuffer* This,
    819     IRpcChannelBuffer* pRpcChannelBuffer,
    820     PRPC_MESSAGE pRpcMessage,
    821     DWORD* pdwStubPhase);
    822 HRESULT STDMETHODCALLTYPE ILocationEvents_OnStatusChanged_Proxy(
    823     ILocationEvents* This,
    824     REFIID reportType,
    825     LOCATION_REPORT_STATUS newStatus);
    826 void __RPC_STUB ILocationEvents_OnStatusChanged_Stub(
    827     IRpcStubBuffer* This,
    828     IRpcChannelBuffer* pRpcChannelBuffer,
    829     PRPC_MESSAGE pRpcMessage,
    830     DWORD* pdwStubPhase);
    831 
    832 #endif  /* __ILocationEvents_INTERFACE_DEFINED__ */
    833 
    834 /*****************************************************************************
    835  * ILocation interface
    836  */
    837 #ifndef __ILocation_INTERFACE_DEFINED__
    838 #define __ILocation_INTERFACE_DEFINED__
    839 
    840 DEFINE_GUID(IID_ILocation, 0xab2ece69, 0x56d9, 0x4f28, 0xb5,0x25, 0xde,0x1b,0x0e,0xe4,0x42,0x37);
    841 #if defined(__cplusplus) && !defined(CINTERFACE)
    842 MIDL_INTERFACE("ab2ece69-56d9-4f28-b525-de1b0ee44237")
    843 ILocation : public IUnknown
    844 {
    845     virtual HRESULT STDMETHODCALLTYPE RegisterForReport(
    846         ILocationEvents *pEvents,
    847         REFIID reportType,
    848         DWORD dwRequestedReportInterval) = 0;
    849 
    850     virtual HRESULT STDMETHODCALLTYPE UnregisterForReport(
    851         REFIID reportType) = 0;
    852 
    853     virtual HRESULT STDMETHODCALLTYPE GetReport(
    854         REFIID reportType,
    855         ILocationReport **ppLocationReport) = 0;
    856 
    857     virtual HRESULT STDMETHODCALLTYPE GetReportStatus(
    858         REFIID reportType,
    859         LOCATION_REPORT_STATUS *pStatus) = 0;
    860 
    861     virtual HRESULT STDMETHODCALLTYPE GetReportInterval(
    862         REFIID reportType,
    863         DWORD *pMilliseconds) = 0;
    864 
    865     virtual HRESULT STDMETHODCALLTYPE SetReportInterval(
    866         REFIID reportType,
    867         DWORD millisecondsRequested) = 0;
    868 
    869     virtual HRESULT STDMETHODCALLTYPE GetDesiredAccuracy(
    870         REFIID reportType,
    871         LOCATION_DESIRED_ACCURACY *pDesiredAccuracy) = 0;
    872 
    873     virtual HRESULT STDMETHODCALLTYPE SetDesiredAccuracy(
    874         REFIID reportType,
    875         LOCATION_DESIRED_ACCURACY desiredAccuracy) = 0;
    876 
    877     virtual HRESULT STDMETHODCALLTYPE RequestPermissions(
    878         HWND hParent,
    879         IID pReportTypes[],
    880         ULONG count,
    881         WINBOOL fModal) = 0;
    882 
    883 };
    884 #ifdef __CRT_UUID_DECL
    885 __CRT_UUID_DECL(ILocation, 0xab2ece69, 0x56d9, 0x4f28, 0xb5,0x25, 0xde,0x1b,0x0e,0xe4,0x42,0x37)
    886 #endif
    887 #else
    888 typedef struct ILocationVtbl {
    889     BEGIN_INTERFACE
    890 
    891     /*** IUnknown methods ***/
    892     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    893         ILocation* This,
    894         REFIID riid,
    895         void **ppvObject);
    896 
    897     ULONG (STDMETHODCALLTYPE *AddRef)(
    898         ILocation* This);
    899 
    900     ULONG (STDMETHODCALLTYPE *Release)(
    901         ILocation* This);
    902 
    903     /*** ILocation methods ***/
    904     HRESULT (STDMETHODCALLTYPE *RegisterForReport)(
    905         ILocation* This,
    906         ILocationEvents *pEvents,
    907         REFIID reportType,
    908         DWORD dwRequestedReportInterval);
    909 
    910     HRESULT (STDMETHODCALLTYPE *UnregisterForReport)(
    911         ILocation* This,
    912         REFIID reportType);
    913 
    914     HRESULT (STDMETHODCALLTYPE *GetReport)(
    915         ILocation* This,
    916         REFIID reportType,
    917         ILocationReport **ppLocationReport);
    918 
    919     HRESULT (STDMETHODCALLTYPE *GetReportStatus)(
    920         ILocation* This,
    921         REFIID reportType,
    922         LOCATION_REPORT_STATUS *pStatus);
    923 
    924     HRESULT (STDMETHODCALLTYPE *GetReportInterval)(
    925         ILocation* This,
    926         REFIID reportType,
    927         DWORD *pMilliseconds);
    928 
    929     HRESULT (STDMETHODCALLTYPE *SetReportInterval)(
    930         ILocation* This,
    931         REFIID reportType,
    932         DWORD millisecondsRequested);
    933 
    934     HRESULT (STDMETHODCALLTYPE *GetDesiredAccuracy)(
    935         ILocation* This,
    936         REFIID reportType,
    937         LOCATION_DESIRED_ACCURACY *pDesiredAccuracy);
    938 
    939     HRESULT (STDMETHODCALLTYPE *SetDesiredAccuracy)(
    940         ILocation* This,
    941         REFIID reportType,
    942         LOCATION_DESIRED_ACCURACY desiredAccuracy);
    943 
    944     HRESULT (STDMETHODCALLTYPE *RequestPermissions)(
    945         ILocation* This,
    946         HWND hParent,
    947         IID pReportTypes[],
    948         ULONG count,
    949         WINBOOL fModal);
    950 
    951     END_INTERFACE
    952 } ILocationVtbl;
    953 interface ILocation {
    954     CONST_VTBL ILocationVtbl* lpVtbl;
    955 };
    956 
    957 #ifdef COBJMACROS
    958 #ifndef WIDL_C_INLINE_WRAPPERS
    959 /*** IUnknown methods ***/
    960 #define ILocation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    961 #define ILocation_AddRef(This) (This)->lpVtbl->AddRef(This)
    962 #define ILocation_Release(This) (This)->lpVtbl->Release(This)
    963 /*** ILocation methods ***/
    964 #define ILocation_RegisterForReport(This,pEvents,reportType,dwRequestedReportInterval) (This)->lpVtbl->RegisterForReport(This,pEvents,reportType,dwRequestedReportInterval)
    965 #define ILocation_UnregisterForReport(This,reportType) (This)->lpVtbl->UnregisterForReport(This,reportType)
    966 #define ILocation_GetReport(This,reportType,ppLocationReport) (This)->lpVtbl->GetReport(This,reportType,ppLocationReport)
    967 #define ILocation_GetReportStatus(This,reportType,pStatus) (This)->lpVtbl->GetReportStatus(This,reportType,pStatus)
    968 #define ILocation_GetReportInterval(This,reportType,pMilliseconds) (This)->lpVtbl->GetReportInterval(This,reportType,pMilliseconds)
    969 #define ILocation_SetReportInterval(This,reportType,millisecondsRequested) (This)->lpVtbl->SetReportInterval(This,reportType,millisecondsRequested)
    970 #define ILocation_GetDesiredAccuracy(This,reportType,pDesiredAccuracy) (This)->lpVtbl->GetDesiredAccuracy(This,reportType,pDesiredAccuracy)
    971 #define ILocation_SetDesiredAccuracy(This,reportType,desiredAccuracy) (This)->lpVtbl->SetDesiredAccuracy(This,reportType,desiredAccuracy)
    972 #define ILocation_RequestPermissions(This,hParent,pReportTypes,count,fModal) (This)->lpVtbl->RequestPermissions(This,hParent,pReportTypes,count,fModal)
    973 #else
    974 /*** IUnknown methods ***/
    975 static FORCEINLINE HRESULT ILocation_QueryInterface(ILocation* This,REFIID riid,void **ppvObject) {
    976     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    977 }
    978 static FORCEINLINE ULONG ILocation_AddRef(ILocation* This) {
    979     return This->lpVtbl->AddRef(This);
    980 }
    981 static FORCEINLINE ULONG ILocation_Release(ILocation* This) {
    982     return This->lpVtbl->Release(This);
    983 }
    984 /*** ILocation methods ***/
    985 static FORCEINLINE HRESULT ILocation_RegisterForReport(ILocation* This,ILocationEvents *pEvents,REFIID reportType,DWORD dwRequestedReportInterval) {
    986     return This->lpVtbl->RegisterForReport(This,pEvents,reportType,dwRequestedReportInterval);
    987 }
    988 static FORCEINLINE HRESULT ILocation_UnregisterForReport(ILocation* This,REFIID reportType) {
    989     return This->lpVtbl->UnregisterForReport(This,reportType);
    990 }
    991 static FORCEINLINE HRESULT ILocation_GetReport(ILocation* This,REFIID reportType,ILocationReport **ppLocationReport) {
    992     return This->lpVtbl->GetReport(This,reportType,ppLocationReport);
    993 }
    994 static FORCEINLINE HRESULT ILocation_GetReportStatus(ILocation* This,REFIID reportType,LOCATION_REPORT_STATUS *pStatus) {
    995     return This->lpVtbl->GetReportStatus(This,reportType,pStatus);
    996 }
    997 static FORCEINLINE HRESULT ILocation_GetReportInterval(ILocation* This,REFIID reportType,DWORD *pMilliseconds) {
    998     return This->lpVtbl->GetReportInterval(This,reportType,pMilliseconds);
    999 }
   1000 static FORCEINLINE HRESULT ILocation_SetReportInterval(ILocation* This,REFIID reportType,DWORD millisecondsRequested) {
   1001     return This->lpVtbl->SetReportInterval(This,reportType,millisecondsRequested);
   1002 }
   1003 static FORCEINLINE HRESULT ILocation_GetDesiredAccuracy(ILocation* This,REFIID reportType,LOCATION_DESIRED_ACCURACY *pDesiredAccuracy) {
   1004     return This->lpVtbl->GetDesiredAccuracy(This,reportType,pDesiredAccuracy);
   1005 }
   1006 static FORCEINLINE HRESULT ILocation_SetDesiredAccuracy(ILocation* This,REFIID reportType,LOCATION_DESIRED_ACCURACY desiredAccuracy) {
   1007     return This->lpVtbl->SetDesiredAccuracy(This,reportType,desiredAccuracy);
   1008 }
   1009 static FORCEINLINE HRESULT ILocation_RequestPermissions(ILocation* This,HWND hParent,IID pReportTypes[],ULONG count,WINBOOL fModal) {
   1010     return This->lpVtbl->RequestPermissions(This,hParent,pReportTypes,count,fModal);
   1011 }
   1012 #endif
   1013 #endif
   1014 
   1015 #endif
   1016 
   1017 HRESULT STDMETHODCALLTYPE ILocation_RegisterForReport_Proxy(
   1018     ILocation* This,
   1019     ILocationEvents *pEvents,
   1020     REFIID reportType,
   1021     DWORD dwRequestedReportInterval);
   1022 void __RPC_STUB ILocation_RegisterForReport_Stub(
   1023     IRpcStubBuffer* This,
   1024     IRpcChannelBuffer* pRpcChannelBuffer,
   1025     PRPC_MESSAGE pRpcMessage,
   1026     DWORD* pdwStubPhase);
   1027 HRESULT STDMETHODCALLTYPE ILocation_UnregisterForReport_Proxy(
   1028     ILocation* This,
   1029     REFIID reportType);
   1030 void __RPC_STUB ILocation_UnregisterForReport_Stub(
   1031     IRpcStubBuffer* This,
   1032     IRpcChannelBuffer* pRpcChannelBuffer,
   1033     PRPC_MESSAGE pRpcMessage,
   1034     DWORD* pdwStubPhase);
   1035 HRESULT STDMETHODCALLTYPE ILocation_GetReport_Proxy(
   1036     ILocation* This,
   1037     REFIID reportType,
   1038     ILocationReport **ppLocationReport);
   1039 void __RPC_STUB ILocation_GetReport_Stub(
   1040     IRpcStubBuffer* This,
   1041     IRpcChannelBuffer* pRpcChannelBuffer,
   1042     PRPC_MESSAGE pRpcMessage,
   1043     DWORD* pdwStubPhase);
   1044 HRESULT STDMETHODCALLTYPE ILocation_GetReportStatus_Proxy(
   1045     ILocation* This,
   1046     REFIID reportType,
   1047     LOCATION_REPORT_STATUS *pStatus);
   1048 void __RPC_STUB ILocation_GetReportStatus_Stub(
   1049     IRpcStubBuffer* This,
   1050     IRpcChannelBuffer* pRpcChannelBuffer,
   1051     PRPC_MESSAGE pRpcMessage,
   1052     DWORD* pdwStubPhase);
   1053 HRESULT STDMETHODCALLTYPE ILocation_GetReportInterval_Proxy(
   1054     ILocation* This,
   1055     REFIID reportType,
   1056     DWORD *pMilliseconds);
   1057 void __RPC_STUB ILocation_GetReportInterval_Stub(
   1058     IRpcStubBuffer* This,
   1059     IRpcChannelBuffer* pRpcChannelBuffer,
   1060     PRPC_MESSAGE pRpcMessage,
   1061     DWORD* pdwStubPhase);
   1062 HRESULT STDMETHODCALLTYPE ILocation_SetReportInterval_Proxy(
   1063     ILocation* This,
   1064     REFIID reportType,
   1065     DWORD millisecondsRequested);
   1066 void __RPC_STUB ILocation_SetReportInterval_Stub(
   1067     IRpcStubBuffer* This,
   1068     IRpcChannelBuffer* pRpcChannelBuffer,
   1069     PRPC_MESSAGE pRpcMessage,
   1070     DWORD* pdwStubPhase);
   1071 HRESULT STDMETHODCALLTYPE ILocation_GetDesiredAccuracy_Proxy(
   1072     ILocation* This,
   1073     REFIID reportType,
   1074     LOCATION_DESIRED_ACCURACY *pDesiredAccuracy);
   1075 void __RPC_STUB ILocation_GetDesiredAccuracy_Stub(
   1076     IRpcStubBuffer* This,
   1077     IRpcChannelBuffer* pRpcChannelBuffer,
   1078     PRPC_MESSAGE pRpcMessage,
   1079     DWORD* pdwStubPhase);
   1080 HRESULT STDMETHODCALLTYPE ILocation_SetDesiredAccuracy_Proxy(
   1081     ILocation* This,
   1082     REFIID reportType,
   1083     LOCATION_DESIRED_ACCURACY desiredAccuracy);
   1084 void __RPC_STUB ILocation_SetDesiredAccuracy_Stub(
   1085     IRpcStubBuffer* This,
   1086     IRpcChannelBuffer* pRpcChannelBuffer,
   1087     PRPC_MESSAGE pRpcMessage,
   1088     DWORD* pdwStubPhase);
   1089 HRESULT STDMETHODCALLTYPE ILocation_RequestPermissions_Proxy(
   1090     ILocation* This,
   1091     HWND hParent,
   1092     IID pReportTypes[],
   1093     ULONG count,
   1094     WINBOOL fModal);
   1095 void __RPC_STUB ILocation_RequestPermissions_Stub(
   1096     IRpcStubBuffer* This,
   1097     IRpcChannelBuffer* pRpcChannelBuffer,
   1098     PRPC_MESSAGE pRpcMessage,
   1099     DWORD* pdwStubPhase);
   1100 
   1101 #endif  /* __ILocation_INTERFACE_DEFINED__ */
   1102 
   1103 /*****************************************************************************
   1104  * Location coclass
   1105  */
   1106 
   1107 DEFINE_GUID(CLSID_Location, 0xe5b8e079, 0xee6d, 0x4e33, 0xa4,0x38, 0xc8,0x7f,0x2e,0x95,0x92,0x54);
   1108 
   1109 #ifdef __cplusplus
   1110 class DECLSPEC_UUID("e5b8e079-ee6d-4e33-a438-c87f2e959254") Location;
   1111 #ifdef __CRT_UUID_DECL
   1112 __CRT_UUID_DECL(Location, 0xe5b8e079, 0xee6d, 0x4e33, 0xa4,0x38, 0xc8,0x7f,0x2e,0x95,0x92,0x54)
   1113 #endif
   1114 #endif
   1115 
   1116 /* Begin additional prototypes for all interfaces */
   1117 
   1118 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
   1119 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
   1120 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
   1121 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
   1122 ULONG           __RPC_USER LPSAFEARRAY_UserSize     (ULONG *, ULONG, LPSAFEARRAY *);
   1123 unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal  (ULONG *, unsigned char *, LPSAFEARRAY *);
   1124 unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(ULONG *, unsigned char *, LPSAFEARRAY *);
   1125 void            __RPC_USER LPSAFEARRAY_UserFree     (ULONG *, LPSAFEARRAY *);
   1126 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
   1127 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
   1128 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
   1129 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
   1130 
   1131 /* End additional prototypes */
   1132 
   1133 #ifdef __cplusplus
   1134 }
   1135 #endif
   1136 
   1137 #endif /* __locationapi_h__ */
   1138