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 |