Bagikan melalui


ILocation::Metode GetReport (locationapi.h)

[API Lokasi Win32 tersedia untuk digunakan dalam sistem operasi yang ditentukan di bagian Persyaratan. Ini dapat diubah atau tidak tersedia dalam versi berikutnya. Sebagai gantinya, gunakan WINDOWS.Devices.Geolocation API. ]

Mengambil laporan lokasi.

Sintaks

HRESULT GetReport(
  [in]  REFIID          reportType,
  [out] ILocationReport **ppLocationReport
);

Parameter

[in] reportType

REFIID yang menentukan jenis laporan yang akan diambil.

[out] ppLocationReport

Alamat pointer ke ILocationReport yang menerima laporan lokasi yang ditentukan.

Nilai kembali

Metode mengembalikan HRESULT. Nilai yang mungkin termasuk, tetapi tidak terbatas pada, yang ada dalam tabel berikut.

Menampilkan kode Deskripsi
S_OK
Metode berhasil.
E_ACCESSDENIED
Penyedia lokasi memiliki izin dinonaktifkan dan data laporan tidak dapat diambil.
HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
reportType selain IID_ILatLongReport atau IID_ICivicAddressReport.
HRESULT_FROM_WIN32(ERROR_NO_DATA)
Tidak ada data yang tersedia. Ini mungkin karena kesalahan atau karena penyedia tidak tersedia.
E_POINTER
ppLocationReport adalah NULL.
E_INVALIDARG
reportType IID_ILatLongReport, dan nilai lintang atau bujur berada di luar batas.
E_FAIL
Sensor yang mendasar adalah NULL atau terputus.
E_OUTOFMEMORY
Kehabisan memori.

Keterangan

ILocationReport adalah antarmuka dasar untuk jenis laporan lokasi tertentu. Panggil QueryInterface untuk mengambil penunjuk ke jenis laporan yang benar.

Ketika GetReport dipanggil, itu dapat mengakibatkan pemberitahuan ditampilkan di taskbar, dan peristiwa Aktivitas Lokasi masuk Pemantau Peristiwa, jika itu adalah penggunaan lokasi pertama aplikasi.

Catatan Saat aplikasi pertama kali dimulai, atau saat sensor lokasi baru diaktifkan, GetReportStatus dapat melaporkan status REPORT_RUNNING tak lama sebelum laporan lokasi baru tersedia. Oleh karena itu, panggilan awal ke GetReport dapat mengembalikan kesalahan (ERROR_NO_DATA) atau nilai yang bukan dari sensor lokasi yang diharapkan, bahkan jika GetReportStatus menunjukkan status REPORT_RUNNING. Lihat GetReportStatus untuk deskripsi solusi untuk masalah ini.
 

Contoh

Contoh berikut memanggil GetReport untuk laporan lintang/bujur dan menunjukkan cara memanggil QueryInterface untuk mengambil penunjuk ke jenis laporan yang ditentukan.

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);
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 7 [hanya aplikasi desktop],Windows 7
Server minimum yang didukung Tidak ada yang didukung
Target Platform Windows
Header locationapi.h
DLL LocationAPI.dll