---
 mingw-w64-headers/include/locationapi.idl | 50
+++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)


diff --git a/mingw-w64-headers/include/locationapi.idl b/mingw-w64-headers/include/locationapi.idl
index d7e7ffa..679531a 100644
--- a/mingw-w64-headers/include/locationapi.idl
+++ b/mingw-w64-headers/include/locationapi.idl
@@ -10,6 +10,14 @@ import "sensorsapi.idl";
 
 cpp_quote("#include <propkeydef.h>")
 
+typedef enum LOCATION_REPORT_STATUS {
+    REPORT_NOT_SUPPORTED = 0,
+    REPORT_ERROR         = 1,
+    REPORT_ACCESS_DENIED = 2,
+    REPORT_INITIALIZING  = 3,
+    REPORT_RUNNING       = 4
+} LOCATION_REPORT_STATUS;
+
 [
     uuid(c8b7f7ee-75d0-4db9-b62d-7a0f369ca456),
     object
@@ -35,6 +43,18 @@ interface ICivicAddressReport : ILocationReport {
 }
 
 [
+    uuid(7fed806d-0ef8-4f07-80ac-36a0beae3134),
+    object
+]
+interface ILatLongReport : ILocationReport {
+    HRESULT GetLatitude([out, retval] DOUBLE *pLatitude);
+    HRESULT GetLongitude([out, retval] DOUBLE *pLongitude);
+    HRESULT GetErrorRadius([out, retval] DOUBLE *pErrorRadius);
+    HRESULT GetAltitude([out, retval] DOUBLE *pAltitude);
+    HRESULT GetAltitudeError([out, retval] DOUBLE *pAltitudeError);
+}
+
+[
     uuid(a65aF77e-969a-4a2e-8aca-33bb7cbb1235),
     object
 ]
@@ -42,3 +62,33 @@ interface IDefaultLocation : IUnknown {
     HRESULT SetReport([in] REFIID reportType, [in] ILocationReport *pLocationReport);
     HRESULT GetReport([in] REFIID reportType, [out, retval] ILocationReport **ppLocationReport);
 }
+
+[
+    uuid(cae02bbf-798b-4508-a207-35a7906dc73d),
+    object
+]
+interface ILocationEvents : IUnknown {
+    HRESULT OnLocationChanged([in] REFIID reportType, [in] ILocationReport *pLocationReport);
+    HRESULT OnStatusChanged([in] REFIID reportType, [in] LOCATION_REPORT_STATUS newStatus);
+}
+
+[
+    uuid(ab2ece69-56d9-4f28-b525-de1B0ee44237),
+    object
+]
+interface ILocation : IUnknown {
+    HRESULT RegisterForReport([in] ILocationEvents *pEvents, [in] REFIID reportType, [in] DWORD dwRequestedReportInterval);
+    HRESULT UnregisterForReport([in] REFIID reportType);
+    HRESULT GetReport([in] REFIID reportType, [out, retval] ILocationReport **ppLocationReport);
+    HRESULT GetReportStatus([in] REFIID reportType, [out, retval] LOCATION_REPORT_STATUS *pStatus);
+    HRESULT GetReportInterval([in] REFIID reportType, [out, retval] DWORD *pMilliseconds);
+    HRESULT SetReportInterval([in] REFIID reportType, [in] DWORD millisecondsRequested);
+    HRESULT GetDesiredAccuracy([in] REFIID reportType, [out, retval] LOCATION_DESIRED_ACCURACY *pDesiredAccuracy);
+    HRESULT SetDesiredAccuracy([in] REFIID reportType, [in] LOCATION_DESIRED_ACCURACY desiredAccuracy);
+    HRESULT RequestPermissions([in, unique] HWND hParent, [in, size_is(count)] IID pReportTypes[], [in] ULONG count, [in] BOOL fModal);
+}
+
+[
+    uuid(e5B8e079-ee6d-4e33-a438-c87f2e959254)
+]
+coclass Location {}

------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to