ILocationEvents::OnStatusChanged メソッド (locationapi.h)
[Win32 Location API は、[要件] セクションで指定されたオペレーティング システムで使用できます。 今後のバージョンでは変更されるか、利用できなくなる場合もあります。 代わりに、 Windows.Devices.Geolocation API を使用します。 ]
レポートの状態が変更されたときに呼び出されます。
構文
HRESULT OnStatusChanged(
[in] REFIID reportType,
[in] LOCATION_REPORT_STATUS newStatus
);
パラメーター
[in] reportType
状態が変更されたレポートの種類のインターフェイス ID を指定する REFIID。
[in] newStatus
新しい状態を含む LOCATION_REPORT_STATUS 列挙の定数。
戻り値
このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。
解説
このイベントは、新しいレポートのレポートの状態を提供します。 このイベントによって報告された状態に関係なく、最新のレポートは ILocation::GetReport を通じて引き続き使用できます。
例
緯度/経度レポートの状態変更イベントを処理する OnStatusChanged の実装例を次に示します。
// This is called when the status of a report type changes.
// The LOCATION_REPORT_STATUS enumeration is defined in LocApi.h in the SDK
STDMETHODIMP CLocationEvents::OnStatusChanged(REFIID reportType, LOCATION_REPORT_STATUS status)
{
if (IID_ILatLongReport == reportType)
{
switch (status)
{
case REPORT_NOT_SUPPORTED:
wprintf(L"\nNo devices detected.\n");
break;
case REPORT_ERROR:
wprintf(L"\nReport error.\n");
break;
case REPORT_ACCESS_DENIED:
wprintf(L"\nAccess denied to reports.\n");
break;
case REPORT_INITIALIZING:
wprintf(L"\nReport is initializing.\n");
break;
case REPORT_RUNNING:
wprintf(L"\nRunning.\n");
break;
}
}
else if (IID_ICivicAddressReport == reportType)
{
}
return S_OK;
}
要件
サポートされている最小のクライアント | Windows 7 [デスクトップ アプリのみ],Windows 7 |
サポートされている最小のサーバー | サポートなし |
対象プラットフォーム | Windows |
ヘッダー | locationapi.h |
[DLL] | LocationAPI.dll |