Freigeben über


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