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


Метод IDefaultLocation::SetReport (locationapi.h)

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

Задает расположение по умолчанию.

Синтаксис

HRESULT SetReport(
  [in] REFIID          reportType,
  [in] ILocationReport *pLocationReport
);

Параметры

[in] reportType

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

[in] pLocationReport

Указатель на экземпляр ILocationReport , содержащий отчет о расположении от поставщика расположения по умолчанию.

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

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

Возвращаемое значение Описание
S_OK
Отчет о расположении успешно задан.
E_INVALIDARG
Отчет о расположении содержит недопустимые данные. Это может произойти, если отчет о гражданских адресах не содержит допустимый двухбуквенный код страны или региона IS0 3166 или если отчет о широте и долготе не содержит широту от -90 до 90 или не содержит долготы в диапазоне от -180 до 180.
E_ACCESSDENIED
У пользователя нет разрешения на определение расположения по умолчанию.

Комментарии

ILocationReport — это базовый интерфейс для конкретных типов отчетов о расположении. Фактический интерфейс, используемый для pLocationReport, должен соответствовать типу, указанному в reportType.

Обратите внимание, что типом, заданным параметром reportType , должен быть ИДЕНТИФИКАТОРICivicAddressReport или ILatLongReport.

Широта и долгота, указанные в отчете о широте и долготе, должны соответствовать расположению на земном шаре. В противном случае этот метод возвращает значение ошибки HRESULT .

Примечание Приложение не получает ожидаемое событие изменения расположения из OnLocationChanged , если выполняются оба следующих условия. Во-первых, приложение выполняется как служба в контексте учетной записи пользователя LOCALSERVICE, SYSTEM или NETWORKSERVICE. Во-вторых, событие изменения расположения возникает в результате изменения расположения по умолчанию вручную, когда пользователь выбирает расположение по умолчанию в панель управления, или программным способом, когда приложение вызывает IDefaultLocation::SetReport.
 

Примеры

В следующем примере показано, как задать расположение по умолчанию с помощью отчета о гражданских адресах.

            // set the civic address fields of the Default Location
            hr = spDefaultLocation->SetReport(IID_ICivicAddressReport, spCivicAddressReport);
            if (E_INVALIDARG == hr)
            {
                wprintf(L"The civic address report has invalid data. ");
                wprintf(L"Country/region must be a valid ISO-3166 2-letter or 3-letter code.\n");
            }
            else if (E_ACCESSDENIED == hr)
            {
                wprintf(L"Administrator privilege required.\n");
            }

Требования

Требование Значение
Минимальная версия клиента Windows 7 [только классические приложения],Windows 7
Минимальная версия сервера Ни одна версия не поддерживается
Целевая платформа Windows
Header locationapi.h
DLL LocationAPI.dll

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

IDefaultLocation