Condividi tramite


Metodo ISensorManager::RequestPermissions (sensorsapi.h)

Apre una finestra di dialogo di sistema per richiedere all'utente l'autorizzazione per accedere ai dati del sensore.

Sintassi

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

Parametri

[in] hParent

Per Windows 8, se viene fornito un valore hParent, la finestra di dialogo verrà modale per la finestra padre. Se hParent è NULL, la finestra di dialogo non sarà modale. Il dialogo è sempre sincrono.

Per Windows 7, HWND viene gestito in una finestra che può fungere da elemento padre della finestra di dialogo delle autorizzazioni. Deve essere NULL se fModal è TRUE.

[in] pSensors

Per Windows 8, questo valore non viene usato.

Per Windows 7, pSensors è un puntatore all'interfaccia ISensorCollection che contiene l'elenco di sensori per cui viene richiesta l'autorizzazione.

[in] fModal

Per Windows 8, questo valore non viene usato. Per il controllo della modalità, vedere hParent .

Per Windows 7 , fModal è un valore BOOL che specifica la modalità della finestra di dialogo. Deve essere FALSE se hParent è diverso da null.

Valore Significato
TRUE
Se hParent è NULL, la finestra di dialogo è modale e pertanto ha lo stato attivo esclusivo in Windows fino a quando l'utente non risponde. La chiamata è sincrona. Il codice restituito indica la scelta dell'utente. Vedere Valore restituito.

Se hParent è diverso da Null, la chiamata è asincrona e il thread chiamante non attende la chiusura della finestra di dialogo. Il codice restituito indica se la chiamata è riuscita. Vedere Valore restituito.

FALSE
La finestra di dialogo è senza modalità. La chiamata è asincrona e il thread chiamante non attende la chiusura della finestra di dialogo. Il codice restituito indica se la chiamata è riuscita. Vedere Valore restituito.

Il parametro hParent viene ignorato.

Valore restituito

La tabella seguente descrive i codici restituiti per i risultati sincroni.

Codice restituito Descrizione
S_OK
L'utente ha abilitato i sensori.
HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED)
L'utente ha scelto di disabilitare i sensori.
HRESULT_FROM_WIN32(ERROR_CANCELLED)
L'utente ha annullato la finestra di dialogo o ha rifiutato l'elevazione delle autorizzazioni per visualizzare la finestra di dialogo.
 

Nella tabella seguente vengono descritti i codici restituiti per i risultati asincroni.

Codice restituito Descrizione
S_OK
Tutti i sensori nella raccolta di sensori sono stati visualizzati per consentire all'utente di abilitare. Il metodo è riuscito.
S_FALSE
Alcuni sensori nella raccolta di sensori sono stati visualizzati per consentire all'utente di abilitare. Alcuni sensori potrebbero essere stati rimossi dalla raccolta; ad esempio, poiché l'utente ha scelto in precedenza di mantenerli disabilitati. Il metodo è riuscito.
E_INVALIDARG
Un argomento non è valido.
E_POINTER
Un puntatore è Null.
HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED)
Tutti i sensori nella raccolta di sensori sono stati precedentemente disabilitati dall'utente. La finestra di dialogo non è stata visualizzata.

Commenti

Effettuare una chiamata sincrona dal thread dell'interfaccia utente di un'applicazione Windows può bloccare il thread dell'interfaccia utente e rendere l'applicazione meno reattiva. Per evitare questo problema, non chiamare questo metodo dal thread dell'interfaccia utente con fModal impostato su TRUE.

Nota  

Se un'applicazione o un plug-in in in esecuzione in modalità protetta, ad esempio un oggetto helper browser (BHO) per Internet Explorer quando Internet Explorer è in esecuzione in modalità protetta, chiama RequestPermissions e l'utente sceglie l'opzione Non abilitare questo sensore di posizione nella finestra di dialogo, Windows visualizzerà nuovamente la finestra di dialogo se RequestPermissions viene chiamato nuovamente dallo stesso utente. Le applicazioni eseguite in modalità protetta possono scegliere di evitare di chiamare RequestPermissions all'avvio in modo che l'utente non venga sottoposto a una possibile finestra di dialogo indesiderata ogni volta che l'applicazione viene avviata.

 

Esempio

Il codice di esempio seguente richiede autorizzazioni per tutti i sensori recuperati dal gestore sensori, per tipo, usando una chiamata asincrona al metodo. La piattaforma richiederà solo all'utente di abilitare i sensori che non sono già abilitati. Per determinare se l'utente ha abilitato tutti i sensori in questo caso, è necessario gestire l'evento ISensorEvents::OnStateChanged . Per altri esempi che illustrano come richiedere le autorizzazioni, vedere Richiesta di autorizzazioni utente.

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


Requisiti

Requisito Valore
Client minimo supportato Windows 7 [solo app desktop]
Server minimo supportato Nessuno supportato
Piattaforma di destinazione Windows
Intestazione sensorsapi.h
Libreria Sensorsapi.lib
DLL Sensorsapi.dll

Vedi anche

ISensorManager

Gestione delle autorizzazioni utente

Richiesta di autorizzazioni utente