LOCATION_REPORT_STATUS-Enumeration (locationapi.h)
[Die Win32-Standort-API ist für die Verwendung in den Betriebssystemen verfügbar, die im Abschnitt Anforderungen angegeben sind. Es kann in nachfolgenden Versionen geändert oder entfernt werden. Verwenden Sie stattdessen die Windows.Devices.Geolocation-API . ]
Definiert mögliche status für neue Berichte eines bestimmten Berichtstyps.
Syntax
typedef enum LOCATION_REPORT_STATUS {
REPORT_NOT_SUPPORTED = 0,
REPORT_ERROR = 1,
REPORT_ACCESS_DENIED = 2,
REPORT_INITIALIZING = 3,
REPORT_RUNNING = 4
} ;
Konstanten
REPORT_NOT_SUPPORTED Wert: 0 Der angeforderte Berichtstyp wird von der API nicht unterstützt. Es sind keine Standortanbieter des angeforderten Typs installiert. |
REPORT_ERROR Wert: 1 Beim Erstellen des Berichts ist ein Fehler aufgetreten, oder Standortanbieter für den angeforderten Typ können keine Daten bereitstellen. Standortanbieter sind möglicherweise derzeit nicht verfügbar, oder Standortanbieter können keine Daten abrufen. Dieser Zustand kann beispielsweise auftreten, wenn sich ein GPS-Sensor in Innenräumen befindet und keine Satelliten angezeigt werden. |
REPORT_ACCESS_DENIED Wert: 2 Es wurden keine Berechtigungen für den Zugriff auf diesen Berichtstyp erteilt. Rufen Sie ILocation::RequestPermissions auf. |
REPORT_INITIALIZING Wert: 3 Der Bericht wird initialisiert. |
REPORT_RUNNING Wert: 4 Der Bericht wird ausgeführt. Neue Standortdaten für den angeforderten Berichtstyp sind verfügbar. |
Hinweise
Diese Werte stellen status für neue Berichte dar. Die neuesten Berichte bleiben über ILocation::GetReport verfügbar, unabhängig vom gemeldeten status. Wenn die status REPORT_RUNNING ist, sind die Daten in einem Bericht neu. Andernfalls stellt ILocation::GetReport zwischengespeicherte Daten bereit, wenn zwischengespeicherte Daten verfügbar sind.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie die LOCATION_REPORT_STATUS-Werte aus ILocation::GetReportStatus abgerufen werden.
// Get the status of this report type
if (SUCCEEDED(spLocation->GetReportStatus(IID_ILatLongReport, &status)))
{
bool fIsNotRunning = true;
switch (status)
{
case REPORT_RUNNING:
// If the status for the current report is running,
// then do not print any additional message.
// Otherwise, print a message indicating that reports may contain cached data.
fIsNotRunning = false;
break;
case REPORT_NOT_SUPPORTED:
wprintf(L"\nThere is no sensor installed for this report type.\n");
break;
case REPORT_ERROR:
wprintf(L"\nReport error.\n");
break;
case REPORT_ACCESS_DENIED:
wprintf(L"\nAccess denied to reports.\n");
break;
case REPORT_INITIALIZING:
wprintf(L"\nReport is initializing.\n");
break;
}
if (true == fIsNotRunning)
{
wprintf(L"Location reports returned from GetReport contain cached data.\n");
}
}
Der folgende Code ist eine Beispielimplementierung der Rückruffunktion ILocationEvents::OnStatusChanged. Diese Implementierung druckt Nachrichten aus, wenn sich die status von Breiten-/Längengradberichten ändert.
// This is called when the status of a report type changes.
// The LOCATION_REPORT_STATUS enumeration is defined in LocApi.h in the SDK
STDMETHODIMP CLocationEvents::OnStatusChanged(REFIID reportType, LOCATION_REPORT_STATUS status)
{
if (IID_ILatLongReport == reportType)
{
switch (status)
{
case REPORT_NOT_SUPPORTED:
wprintf(L"\nNo devices detected.\n");
break;
case REPORT_ERROR:
wprintf(L"\nReport error.\n");
break;
case REPORT_ACCESS_DENIED:
wprintf(L"\nAccess denied to reports.\n");
break;
case REPORT_INITIALIZING:
wprintf(L"\nReport is initializing.\n");
break;
case REPORT_RUNNING:
wprintf(L"\nRunning.\n");
break;
}
}
else if (IID_ICivicAddressReport == reportType)
{
}
return S_OK;
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 7 [nur Desktop-Apps],Windows 7 |
Unterstützte Mindestversion (Server) | Nicht unterstützt |
Kopfzeile | locationapi.h |