IDefaultLocation::SetReport メソッド (locationapi.h)
[Win32 Location API は、[要件] セクションで指定されたオペレーティング システムで使用できます。 今後のバージョンでは変更されるか、利用できなくなる場合もあります。 代わりに、 Windows.Devices.Geolocation API を使用します。 ]
既定の場所を設定します。
構文
HRESULT SetReport(
[in] REFIID reportType,
[in] ILocationReport *pLocationReport
);
パラメーター
[in] reportType
pLocationReport を使用して渡されるレポートの種類のインターフェイス ID を表す REFIID。
[in] pLocationReport
既定の場所プロバイダーからの場所レポートを含む ILocationReport インスタンスへのポインター。
戻り値
有効な値を次の表に示しますが、これ以外にもあります。
戻り値 | 説明 |
---|---|
|
場所レポートが正常に設定されました。 |
|
場所レポートに無効なデータが含まれています。 これは、市民の住所レポートに有効な IS0 3166 の 2 文字の国または地域コードが含まれていない場合、または緯度/経度レポートに -90 から 90 までの緯度が含まれていない場合、または -180 ~ 180 の経度が含まれていない場合に発生する可能性があります。 |
|
ユーザーには、既定の場所を設定するアクセス許可がありません。 |
注釈
ILocationReport は、特定の場所レポートの種類の基本インターフェイスです。 pLocationReport に使用する実際のインターフェイスは、reportType で指定した型と一致する必要があります。
reportType で指定する型は、ICivicAddressReport または ILatLongReport の IID である必要があります。
緯度/経度レポートで提供される緯度と経度は、地球儀上の場所に対応している必要があります。 それ以外の場合、このメソッドは 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 |
ヘッダー | locationapi.h |
[DLL] | LocationAPI.dll |