ILocation::GetReport 方法 (locationapi.h)
[Win32 位置 API 可用於需求一節中指定的作業系統。 它在後續版本中可能會變更或無法使用。 請改用 Windows.Devices.Geolocation API。 ]
擷取位置報表。
語法
HRESULT GetReport(
[in] REFIID reportType,
[out] ILocationReport **ppLocationReport
);
參數
[in] reportType
REFIID ,指定要擷取的報表類型。
[out] ppLocationReport
接收指定位置報表 之 ILocationReport 指標的位址。
傳回值
方法會傳回 HRESULT。 可能的值包括 (但不限於) 下表中的這些值。
傳回碼 | 描述 |
---|---|
|
此方法已成功。 |
|
位置提供者具有已停用的許可權,無法擷取報表數據。 |
|
reportType 不是 IID_ILatLongReport 或 IID_ICivicAddressReport。 |
|
沒有可用的數據。 這可能是因為錯誤或提供者無法使用所致。 |
|
ppLocationReport 為 NULL。 |
|
reportType 是IID_ILatLongReport,而緯度或經度值超出界限。 |
|
基礎感測器為 NULL 或已中斷連線。 |
|
記憶體不足。 |
備註
ILocationReport 是特定位置報表類型的基底介面。 呼叫 QueryInterface 以擷取正確報表類型的指標。
呼叫 GetReport 時,如果應用程式第一次使用位置,它可能會導致通知顯示在任務欄中,而 [位置活動] 事件則會記錄在 事件檢視器 中。
注意 當應用程式第一次啟動時,或啟用新的位置感測器時, GetReportStatus 可能會在新的位置報表可用之前不久回報 REPORT_RUNNING 狀態。 因此, GetReport 的初始呼叫可能會傳回錯誤 (ERROR_NO_DATA) 或不是來自預期位置感測器的值,即使 GetReportStatus 指出 REPORT_RUNNING的狀態也一樣。 如需此問題因應措施的說明,請參閱 GetReportStatus 。
範例
下列範例會呼叫 GetReport 以取得緯度/經度報表,並示範如何呼叫 QueryInterface 來擷取指定報表類型的指標。
CComPtr<ILocationReport> spLocationReport; // This is our location report object
CComPtr<ILatLongReport> spLatLongReport; // This is our LatLong report object
// Get the current latitude/longitude location report,
hr = spLocation->GetReport(IID_ILatLongReport, &spLocationReport);
// then get a pointer to the ILatLongReport interface by calling QueryInterface
if (SUCCEEDED(hr))
{
hr = spLocationReport->QueryInterface(&spLatLongReport);
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 7 [僅限傳統型應用程式],Windows 7 |
最低支援的伺服器 | 都不支援 |
目標平台 | Windows |
標頭 | locationapi.h |
Dll | LocationAPI.dll |