Partager via


Méthode ILocation ::GetReport (locationapi.h)

[L’API d’emplacement Win32 peut être utilisée dans les systèmes d’exploitation spécifiés dans la section Configuration requise. Il sera peut-être modifié ou indisponible dans les versions ultérieures. Utilisez plutôt l’API Windows.Devices.Geolocation . ]

Récupère un rapport d’emplacement.

Syntaxe

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

Paramètres

[in] reportType

REFIID qui spécifie le type de rapport à récupérer.

[out] ppLocationReport

Adresse d’un pointeur vers ILocationReport qui reçoit le rapport d’emplacement spécifié.

Valeur retournée

Cette méthode retourne un code HRESULT. Les valeurs possibles sont notamment celles figurant dans le tableau suivant.

Code de retour Description
S_OK
S_OK
E_ACCESSDENIED
Les autorisations du fournisseur d’emplacement sont désactivées et les données de rapport ne peuvent pas être récupérées.
HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
reportType n’est pas IID_ILatLongReport ou IID_ICivicAddressReport.
HRESULT_FROM_WIN32(ERROR_NO_DATA)
Aucune donnée n’est disponible. Cela peut être dû à une erreur ou à l’indisponibilité du fournisseur.
E_POINTER
ppLocationReport a la valeur NULL.
E_INVALIDARG
reportType est IID_ILatLongReport, et la valeur de latitude ou de longitude est hors limites.
E_FAIL
Le capteur sous-jacent est NULL ou déconnecté.
E_OUTOFMEMORY
Mémoire insuffisante.

Remarques

ILocationReport est l’interface de base pour des types de rapports d’emplacement spécifiques. Appelez QueryInterface pour récupérer un pointeur vers le type de rapport correct.

Lorsque GetReport est appelé, une notification peut s’afficher dans la barre des tâches et enregistrer un événement Activité d’emplacement observateur d'événements, s’il s’agit de la première utilisation de l’emplacement par l’application.

Note Lorsqu’une application démarre pour la première fois ou qu’un nouveau capteur d’emplacement est activé, GetReportStatus peut signaler une status de REPORT_RUNNING peu de temps avant que le nouveau rapport d’emplacement ne soit disponible. Par conséquent, un appel initial à GetReport peut retourner une erreur (ERROR_NO_DATA) ou une valeur qui ne provient pas du capteur d’emplacement attendu, même si GetReportStatus indique un status de REPORT_RUNNING. Consultez GetReportStatus pour obtenir une description d’une solution de contournement pour ce problème.
 

Exemples

L’exemple suivant appelle GetReport pour les rapports de latitude/longitude et montre comment appeler QueryInterface pour récupérer un pointeur vers le type de rapport spécifié.

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau uniquement],Windows 7
Serveur minimal pris en charge Aucun pris en charge
Plateforme cible Windows
En-tête locationapi.h
DLL LocationAPI.dll