Partager via


Méthode ISensorManager ::RequestPermissions (sensorsapi.h)

Ouvre une boîte de dialogue système pour demander à l’utilisateur l’autorisation d’accéder aux données du capteur.

Syntaxe

HRESULT RequestPermissions(
  [in] HWND              hParent,
  [in] ISensorCollection *pSensors,
  [in] BOOL              fModal
);

Paramètres

[in] hParent

Par Windows 8, si une valeur est fournie à hParent, la boîte de dialogue est modale pour la fenêtre parente. Si hParent a la valeur NULL, la boîte de dialogue n’est pas modale. Le dialogue est toujours synchrone.

Pour Windows 7, HWND est géré par une fenêtre qui peut agir en tant que parent de la boîte de dialogue d’autorisations. Doit être NULL si fModal a la valeur TRUE.

[in] pSensors

Pour Windows 8, cette valeur n’est pas utilisée.

Pour Windows 7, pSensors est un pointeur vers l’interface ISensorCollection qui contient la liste des capteurs pour lesquels l’autorisation est demandée.

[in] fModal

Pour Windows 8, cette valeur n’est pas utilisée. Reportez-vous à hParent pour contrôler la modalité.

Pour Windows 7, fModal est un boOL qui spécifie le mode de boîte de dialogue. Doit avoir la valeur FALSE si hParent n’a pas la valeur Null.

Valeur Signification
TRUE
Si hParent a la valeur NULL, la boîte de dialogue est modale et a donc le focus exclusif dans Windows jusqu’à ce que l’utilisateur réponde. L’appel est synchrone. Le code de retour indique le choix de l’utilisateur. Consultez Valeur de retour.

Si hParent n’est pas null, l’appel est asynchrone et le thread appelant n’attend pas la fermeture de la boîte de dialogue. Le code de retour indique si l’appel a réussi. Consultez Valeur de retour.

FALSE
La boîte de dialogue est sans mode. L’appel est asynchrone et le thread appelant n’attend pas la fermeture de la boîte de dialogue. Le code de retour indique si l’appel a réussi. Consultez Valeur de retour.

Le paramètre hParent est ignoré.

Valeur retournée

Le tableau suivant décrit les codes de retour pour les résultats synchrones.

Code de retour Description
S_OK
L’utilisateur a activé les capteurs.
HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED)
L’utilisateur a choisi de désactiver les capteurs.
HRESULT_FROM_WIN32(ERROR_CANCELLED)
L’utilisateur a annulé la boîte de dialogue ou refusé l’élévation de l’autorisation d’afficher la boîte de dialogue.
 

Le tableau suivant décrit les codes de retour pour les résultats asynchrones.

Code de retour Description
S_OK
Tous les capteurs de la collection de capteurs étaient affichés pour que l’utilisateur puisse l’activer. S_OK
S_FALSE
Certains des capteurs de la collection de capteurs ont été affichés pour que l’utilisateur puisse l’activer. Certains capteurs ont peut-être été retirés de la collection ; par exemple, parce que l’utilisateur avait précédemment choisi de les garder désactivés. S_OK
E_INVALIDARG
Un argument n’est pas valide.
E_POINTER
Un pointeur est null.
HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED)
Tous les capteurs de la collection de capteurs ont été précédemment désactivés par l’utilisateur. La boîte de dialogue n’a pas été affichée.

Remarques

Un appel synchrone à partir du thread d’interface utilisateur d’une application Windows peut bloquer le thread d’interface utilisateur et rendre l’application moins réactive. Pour éviter cela, n’appelez pas cette méthode à partir du thread d’interface utilisateur avec fModal défini sur TRUE.

Remarque  

Si une application ou un plug-in qui s’exécute en mode protégé, tel qu’un objet d’assistance de navigateur (BHO) pour Internet Explorer quand Internet Explorer s’exécute en mode protégé, appelle RequestPermissions et que l’utilisateur choisit l’option Ne pas activer ce capteur d’emplacement dans la boîte de dialogue, Windows affiche à nouveau la boîte de dialogue si RequestPermissions est appelé à nouveau par le même utilisateur. Les applications qui s’exécutent en mode protégé peuvent choisir d’éviter d’appeler RequestPermissions au démarrage afin que l’utilisateur ne soit pas soumis à une boîte de dialogue potentiellement indésirable chaque fois que l’application démarre.

 

Exemples

L’exemple de code suivant demande des autorisations pour tous les capteurs récupérés à partir du gestionnaire de capteurs, par type, à l’aide d’un appel de méthode asynchrone. La plateforme invite uniquement l’utilisateur à activer les capteurs qui ne sont pas déjà activés. Pour déterminer si l’utilisateur a activé des capteurs dans ce cas, vous devez gérer l’événement ISensorEvents ::OnStateChanged . Pour obtenir d’autres exemples illustrant comment demander des autorisations, consultez Demande d’autorisations utilisateur.

// Get the sensor collection.
hr = pSensorManager->GetSensorsByType(SAMPLE_SENSOR_TYPE_TIME, &pSensorColl);

if(SUCCEEDED(hr))
{
    // Request permissions for all sensors
    // in the collection.
    hr = pSensorManager->RequestPermissions(0, pSensorColl, FALSE);
}


Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Aucun pris en charge
Plateforme cible Windows
En-tête sensorsapi.h
Bibliothèque Sensorsapi.lib
DLL Sensorsapi.dll

Voir aussi

ISensorManager

Gestion des autorisations utilisateur

Demande d’autorisations utilisateur