ILocation::GetReport メソッド (locationapi.h)
[Win32 Location API は、[要件] セクションで指定されたオペレーティング システムで使用できます。 今後のバージョンでは変更されるか、利用できなくなる場合もあります。 代わりに、 Windows.Devices.Geolocation API を使用します。 ]
場所レポートを取得します。
構文
HRESULT GetReport(
[in] REFIID reportType,
[out] ILocationReport **ppLocationReport
);
パラメーター
[in] reportType
取得するレポートの種類を指定する REFIID。
[out] ppLocationReport
指定した場所レポートを受け取る ILocationReport へのポインターのアドレス。
戻り値
このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。
リターン コード | 説明 |
---|---|
|
メソッドが成功しました。 |
|
場所プロバイダーにアクセス許可が無効になっており、レポート データを取得できません。 |
|
reportType は、 IID_ILatLongReport または IID_ICivicAddressReport以外です。 |
|
使用できるデータはありません。 これは、エラーが原因であるか、プロバイダーが使用できないことが原因である可能性があります。 |
|
ppLocationReport が NULL です。 |
|
reportType が IID_ILatLongReportされ、緯度または経度の値が範囲外です。 |
|
基になるセンサーが NULL であるか、切断されています。 |
|
メモリが不足しています。 |
注釈
ILocationReport は、特定の場所レポートの種類の基本インターフェイスです。 QueryInterface を呼び出して、正しいレポートの種類へのポインターを取得します。
GetReport が呼び出されると、通知がタスク バーに表示され、Location Activity イベントがイベント ビューアーにログに記録されることがあります (アプリケーションで初めて場所を使用する場合)。
メモ アプリケーションが最初に起動されたとき、または新しい場所センサーが有効になっている場合、 GetReportStatus は、新しい場所レポートが使用可能になる直前に 、REPORT_RUNNING の状態を報告する場合があります。 そのため、 GetReportStatus がREPORT_RUNNINGの状態を示している場合でも、 GetReport の最初の呼び出しでは、エラー ( ERROR_NO_DATA) または予期される場所センサーからの値が返される可能性があります。 この問題の回避策の説明については、「 GetReportStatus 」を参照してください。
例
次の例では、緯度/経度レポートに 対して GetReport を呼び出し、QueryInterface を呼び出して、指定したレポートの種類へのポインターを取得する方法を示します。
CComPtr<ILocationReport> spLocationReport; // This is our location report object
CComPtr<ILatLongReport> spLatLongReport; // This is our LatLong report object
// Get the current latitude/longitude location report,
hr = spLocation->GetReport(IID_ILatLongReport, &spLocationReport);
// then get a pointer to the ILatLongReport interface by calling QueryInterface
if (SUCCEEDED(hr))
{
hr = spLocationReport->QueryInterface(&spLatLongReport);
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 [デスクトップ アプリのみ],Windows 7 |
サポートされている最小のサーバー | サポートなし |
対象プラットフォーム | Windows |
ヘッダー | locationapi.h |
[DLL] | LocationAPI.dll |