ILocation::RequestPermissions メソッド (locationapi.h)
[Win32 Location API は、[要件] セクションで指定されたオペレーティング システムで使用できます。 今後のバージョンでは変更されるか、利用できなくなる場合もあります。 代わりに、 Windows.Devices.Geolocation API を使用します。 ]
場所デバイスを有効にするユーザーのアクセス許可を要求するシステム ダイアログ ボックスを開きます。
構文
HRESULT RequestPermissions(
[in] HWND hParent,
[in] IID *pReportTypes,
[in] ULONG count,
BOOL fModal
);
パラメーター
[in] hParent
親ウィンドウの HWND。 このパラメーターは省略可能です。 Windows 8 では、 hParent が指定されている場合はダイアログは常にモーダルであり、 hParent が NULL の場合はモーダルではありません。
[in] pReportTypes
IID 配列へのポインター。 この配列には、アクセス許可を要求するすべてのレポートの種類のインターフェイス ID が含まれている必要があります。 有効なレポートの種類のインターフェイス ID はIID_ILatLongReportされ、IID_ICivicAddressReportされます。 ID の数は、 count パラメーターで指定された値と一致する必要があります。
[in] count
pReportTypes に含まれるインターフェイス ID の数。
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 |
ヘッダー | locationapi.h |
[DLL] | LocationAPI.dll |