共用方式為


LOCATION_REPORT_STATUS列舉 (locationapi.h)

[Win32 位置 API 可用於需求一節中指定的作業系統。 它在後續版本中可能會變更或無法使用。 請改用 Windows.Devices.Geolocation API。 ]

定義特定報表類型之新報表的可能狀態。

Syntax

typedef enum LOCATION_REPORT_STATUS {
  REPORT_NOT_SUPPORTED = 0,
  REPORT_ERROR = 1,
  REPORT_ACCESS_DENIED = 2,
  REPORT_INITIALIZING = 3,
  REPORT_RUNNING = 4
} ;

常數

 
REPORT_NOT_SUPPORTED
值: 0
API 不支援要求的報表類型。 未安裝要求類型的位置提供者。
REPORT_ERROR
值: 1
建立報表時發生錯誤,或要求類型的位置提供者無法提供任何數據。 位置提供者目前可能無法使用,或位置提供者無法取得任何數據。 例如,當 GPS 感測器在室內且沒有衛星處於檢視狀態時,可能會發生此狀態。
REPORT_ACCESS_DENIED
值: 2
未授與任何許可權來存取此報表類型。 呼叫 ILocation::RequestPermissions
REPORT_INITIALIZING
值: 3
正在初始化報表。
REPORT_RUNNING
值: 4
報表正在執行。 已要求之報表類型的新位置數據可供使用。

備註

這些值代表新報表的狀態。 不論報告狀態為何,最新的報告仍可透過 ILocation::GetReport 取得。 如果狀態 REPORT_RUNNING,報表中的數據是新的。 否則,如果有快取的數據可用, ILocation::GetReport 會提供快取的數據。

範例

下列程式代碼範例示範如何從ILocation::GetReportStatus 擷取LOCATION_REPORT_STATUS值。

    // 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");
        }
    }

下列程式代碼是回呼函式 ILocationEvents::OnStatusChanged 的範例實作。 當緯度/經度報告的狀態有所變更時,此實作會列印出訊息。

// 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;
}

規格需求

需求
最低支援的用戶端 Windows 7 [僅限傳統型應用程式],Windows 7
最低支援的伺服器 都不支援
標頭 locationapi.h