다음을 통해 공유


ISensorManager::RequestPermissions 메서드(sensorsapi.h)

센서 데이터에 액세스할 수 있는 사용자 권한을 요청하는 시스템 대화 상자를 엽니다.

구문

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

매개 변수

[in] hParent

Windows 8 경우 hParent에 값이 제공되면 대화 상자가 부모 창으로 모달됩니다. hParentNULL이면 대화 상자가 모달이 되지 않습니다. 대화 상자는 항상 동기적입니다.

Windows 7의 경우 HWND 는 사용 권한 대화 상자의 부모 역할을 할 수 있는 창에 대한 핸들입니다. fModalTRUE인 경우 NULL이어야 합니다.

[in] pSensors

Windows 8 이 값은 사용되지 않습니다.

Windows 7의 경우 pSensors 는 권한이 요청되는 센서 목록을 포함하는 ISensorCollection 인터페이스에 대한 포인터입니다.

[in] fModal

Windows 8 이 값은 사용되지 않습니다. 양식 제어는 hParent 를 참조하세요.

Windows 7의 경우 fModal 은 대화 상자 모드를 지정하는 BOOL 입니다. hParent가 null이 아닌 경우 FALSE여야 합니다.

의미
TRUE
hParentNULL인 경우 대화 상자는 모달이므로 사용자가 응답할 때까지 Windows에서 전용 포커스가 있습니다. 호출이 동기적입니다. 반환 코드는 사용자 선택을 나타냅니다. 반환 값을 참조하세요.

hParent가 null이 아닌 경우 호출은 비동기적이며 호출 스레드는 대화 상자가 닫히기를 기다리지 않습니다. 반환 코드는 호출이 성공했는지 여부를 나타냅니다. 반환 값을 참조하세요.

FALSE
대화 상자가 모덜리스입니다. 호출은 비동기적이며 호출 스레드는 대화 상자가 닫히기를 기다리지 않습니다. 반환 코드는 호출이 성공했는지 여부를 나타냅니다. 반환 값을 참조하세요.

hParent 매개 변수는 무시됩니다.

반환 값

다음 표에서는 동기 결과에 대한 반환 코드를 설명합니다.

반환 코드 Description
S_OK
사용자가 센서를 사용하도록 설정했습니다.
HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED)
사용자가 센서를 사용하지 않도록 선택했습니다.
HRESULT_FROM_WIN32(ERROR_CANCELLED)
사용자가 대화 상자를 취소했거나 대화 상자를 표시할 수 있는 권한 상승을 거부했습니다.
 

다음 표에서는 비동기 결과에 대한 반환 코드를 설명합니다.

반환 코드 Description
S_OK
사용자가 사용하도록 설정하기 위해 센서 컬렉션의 모든 센서가 표시되었습니다. 메서드가 성공했습니다.
S_FALSE
사용자가 사용하도록 설정하기 위해 센서 컬렉션의 일부 센서가 표시되었습니다. 일부 센서가 컬렉션에서 제거되었을 수 있습니다. 예를 들어 사용자가 이전에 사용하지 않도록 설정하도록 선택했기 때문입니다. 메서드가 성공했습니다.
E_INVALIDARG
인수가 잘못된 경우.
E_POINTER
포인터가 null입니다.
HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED)
센서 컬렉션의 모든 센서는 이전에 사용자가 사용하지 않도록 설정했습니다. 대화 상자가 표시되지 않았습니다.

설명

Windows 애플리케이션의 UI(사용자 인터페이스) 스레드에서 동기 호출을 하면 UI 스레드를 차단하고 애플리케이션의 응답성이 떨어집니다. 이를 방지하려면 fModalTRUE로 설정된 UI 스레드에서 이 메서드를 호출하지 마세요.

참고  

인터넷용 BHO(브라우저 도우미 개체)와 같이 보호 모드로 실행 중인 애플리케이션 또는 플러그 인이 인터넷 Explorer 보호 모드에서 실행 중일 때 Explorer RequestPermissions를 호출하고 사용자가 대화 상자에서 이 위치 센서를 사용하도록 설정하지 않음 옵션을 선택하면 Windows에서 동일한 사용자가 RequestPermissions를 다시 호출하면 대화 상자가 다시 표시됩니다. 보호 모드에서 실행되는 애플리케이션은 시작 시 RequestPermissions 를 호출하지 않도록 선택할 수 있으므로 애플리케이션이 시작될 때마다 사용자에게 원치 않는 대화 상자가 적용되지 않습니다.

 

예제

다음 예제 코드는 비동기 메서드 호출을 사용하여 형식별로 센서 관리자에서 검색된 모든 센서에 대한 권한을 요청합니다. 플랫폼은 사용자에게 아직 사용하도록 설정되지 않은 센서를 사용하도록 설정하라는 메시지만 표시합니다. 이 경우 사용자가 센서를 사용하도록 설정했는지 여부를 확인하려면 ISensorEvents::OnStateChanged 이벤트를 처리해야 합니다. 사용 권한을 요청하는 방법을 보여 주는 추가 예제는 사용자 권한 요청을 참조하세요.

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


요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7 [데스크톱 앱만 해당]
지원되는 최소 서버 지원되는 버전 없음
대상 플랫폼 Windows
헤더 sensorsapi.h
라이브러리 Sensorsapi.lib
DLL Sensorsapi.dll

추가 정보

ISensorManager

사용자 권한 관리

사용자 권한 요청