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