Метод ILocation::RequestPermissions (locationapi.h)
[API расположения Win32 доступен для использования в операционных системах, указанных в разделе Требования. В последующих версиях он может быть изменен или недоступен. Вместо этого используйте API Windows.Devices.Geolocation . ]
Открывает системное диалоговое окно для запроса разрешения пользователя на включение устройств определения местоположения.
Синтаксис
HRESULT RequestPermissions(
[in] HWND hParent,
[in] IID *pReportTypes,
[in] ULONG count,
BOOL fModal
);
Параметры
[in] hParent
HWND для родительского окна. Этот параметр является необязательным. В Windows 8 диалог всегда является модальным, если предоставлен параметр hParent , и не модальным, если параметр hParent имеет значение NULL.
[in] pReportTypes
Указатель на массив IID . Этот массив должен содержать идентификаторы интерфейсов для всех типов отчетов, для которых запрашивается разрешение. Идентификаторами интерфейсов допустимых типов отчетов являются IID_ILatLongReport и IID_ICivicAddressReport. Количество идентификаторов должно соответствовать значению, указанному в параметре count .
[in] count
Количество идентификаторов интерфейсов, содержащихся в pReportTypes.
fModal
Этот параметр не используется.
Возвращаемое значение
Этот метод может возвращать одно из этих значений.
В следующей таблице описаны коды возврата при синхронном вызове.
Код возврата | Описание |
---|---|
|
Службы определения местоположения, включенные пользователем. Метод выполнен успешно. |
|
Платформа расположения отключена. Администратор выключил платформу расположения. |
|
Пользователь не включил доступ к службам определения местоположения или отменил диалоговое окно. |
В следующей таблице описаны коды возврата, если вызов является асинхронным.
Код возврата | Описание |
---|---|
|
Пользователь включил доступ к службам определения местоположения. Метод выполнен успешно. |
|
Аргумент является недопустимым. |
|
Платформа расположения отключена. Администратор выключил платформу расположения. Диалоговое окно не отображается. |
Комментарии
Если пользователь решит не включать службы определения местоположения, Windows больше не будет отображать диалоговое окно разрешений.
Примеры
В следующем примере показано, как вызвать RequestPermissions , чтобы запросить разрешение для отчетов о широте и долготе.
// Array of report types of interest. Other ones include IID_ICivicAddressReport
IID REPORT_TYPES[] = { IID_ILatLongReport };
// Request permissions for this user account to receive location data for all the
// types defined in REPORT_TYPES (which is currently just one report type)
// The last parameter is not used.
if (FAILED(spLocation->RequestPermissions(
NULL,
REPORT_TYPES,
ARRAYSIZE(REPORT_TYPES),
TRUE)))
{
wprintf(L"Warning: Unable to request permissions.\n");
}
Требования
Минимальная версия клиента | Windows 7 [только классические приложения],Windows 7 |
Минимальная версия сервера | Ни одна версия не поддерживается |
Целевая платформа | Windows |
Header | locationapi.h |
DLL | LocationAPI.dll |