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


Метод ILocationEvents::OnStatusChanged (locationapi.h)

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

Вызывается при изменении состояния отчета.

Синтаксис

HRESULT OnStatusChanged(
  [in] REFIID                 reportType,
  [in] LOCATION_REPORT_STATUS newStatus
);

Параметры

[in] reportType

REFIID , указывающий идентификатор интерфейса для типа отчета, состояние которого изменилось.

[in] newStatus

Константу из перечисления LOCATION_REPORT_STATUS , которая содержит новое состояние.

Возвращаемое значение

Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Это событие предоставляет состояние отчета для новых отчетов. Последние отчеты остаются доступными через ILocation::GetReport, независимо от состояния, сообщаемого этим событием.

Примеры

Ниже приведен пример реализации 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
Минимальная версия сервера Ни одна версия не поддерживается
Целевая платформа Windows
Header locationapi.h
DLL LocationAPI.dll

См. также раздел

ILocationEvents