У меня возникает эта странная проблема всякий раз, когда я хочу попросить разрешения использовать датчик GPS в Windows. В Visual Studio я делаю следующее:
ISensorManager *SensorM = NULL;
HRESULT hr = CoCreateInstance(CLSID_SensorManager, NULL, CLSCTX_INPROC_SERVER, IID_ISensorManager, (void**)&SensorM);
Теперь я могу найти все GPS-датчики, подключенные к компьютеру.
ISensorCollection *SensorC = NULL;
hr = SensorM->GetSensorsByType(SENSOR_TYPE_LOCATION_GPS, &SensorC);
Это правильно находит подключенный датчик GPS, но его состояние ACCESS_DENIED (что я и ожидаю), поэтому я спрашиваю разрешение на его использование.
hr = SensorM->RequestPermissions(NULL, SensorC, TRUE);
Однако этот вызов всегда возвращает HRESULT 0x80070002 (файл не найден) и ничего не делает. Я понятия не имею, почему он это делает и как это решить. Я что-то пропустил?
Задача ещё не решена.
Других решений пока нет …