共用方式為


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。 可能的值包括 (但不限於) 下表中的這些值。

傳回碼 描述
S_OK
此方法已成功。
E_ACCESSDENIED
位置提供者具有已停用的許可權,無法擷取報表數據。
HRESULT_FROM_WIN32 (ERROR_NOT_SUPPORTED)
reportType 不是 IID_ILatLongReportIID_ICivicAddressReport
HRESULT_FROM_WIN32 (ERROR_NO_DATA)
沒有可用的數據。 這可能是因為錯誤或提供者無法使用所致。
E_POINTER
ppLocationReportNULL
E_INVALIDARG
reportType 是IID_ILatLongReport,而緯度或經度值超出界限。
E_FAIL
基礎感測器為 NULL 或已中斷連線。
E_OUTOFMEMORY
記憶體不足。

備註

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