Нашей команде необходимо разработать приложение, работающее в среде IoT Non-UWP, и нам нужно вызвать интерфейс датчика COM. но сначала не удалось использовать CoCreateInstanceFromApp / CoCreateInstanceEx.
Фрагмент кода выглядит так:
ULONG ulCount = 0;
COINIT dwCoinit = COINIT_MULTITHREADED;
auto hr2 = CoInitializeEx(NULL, dwCoinit);
if (FAILED(hr2))
{
cout << "Failed to run CoInitializeEx: " << hr2 << endl;
return;
}
MULTI_QI res = { 0 };
res.pItf = NULL;
res.hr = S_OK;
res.pIID = &IID_PPV_ARGS(&_pSensor);
//_hr = CoCreateInstanceEx(CLSID_SensorManager,
_hr = CoCreateInstanceFromApp(CLSID_SensorManager,
NULL, CLSCTX_INPROC_SERVER, NULL, 1, &res);
if (S_OK != _hr)
{
auto result = GetLastError();
cout << "Failed Create Instance : " << _hr << " WinAPI Error: " << result <<endl;
return;
}
и это не удалось с журналом:
Не удалось создать экземпляр: -2147221164 Ошибка WinAPI: 1008
Код ошибки означает:
(-2147221164) «Класс не зарегистрирован (исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))»
1008 означает: ERROR_NO_TOKEN
Похоже, что SensorManager недоступен.
Кто-нибудь знает метод, чтобы исправить это, и MSFT выставляет api датчика для среды не-UWP?
Спасибо
Джером
Задача ещё не решена.
Других решений пока нет …