Поделиться через


Метод ILocation::GetReport (locationapi.h)

[API расположения Win32 доступен для использования в операционных системах, указанных в разделе Требования. В последующих версиях он может быть изменен или недоступен. Вместо этого используйте API Windows.Devices.Geolocation . ]

Извлекает отчет о расположении.

Синтаксис

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_ILatLongReport или IID_ICivicAddressReport.
HRESULT_FROM_WIN32(ERROR_NO_DATA)
Данные недоступны. Это может быть вызвано ошибкой или недоступности поставщика.
E_POINTER
ppLocationReport имеет значение NULL.
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
Header locationapi.h
DLL LocationAPI.dll