ERROR_INVALID_PARAMETER при вызове getpointerdevicerects
Я пытаюсь вызвать API GetPointerDeviceRects на языке c++, чтобы получить диапазон сенсорного дигитайзера. Для этого требуется 3 параметра. Одна из них-ручка. Мне удалось получить правильный дескриптор устройства с помощью GetRawInputDeviceList. Что касается других параметров, я объявил их, как показано в приведенном ниже фрагменте кода. Я получаю код ошибки 87, что означает недопустимый параметр. Не могли бы вы помочь мне устранить эту ошибку?
Что я уже пробовал:
<pre>RECT pointerDeviceRect; RECT displayRect; GetPointerDeviceRects(device, &pointerDeviceRect, &displayRect); cout << "get pointer device rects error code " << GetLastError() << endl; cout << "coordinates: " << pointerDeviceRect.top<<endl;
Часть кода для получения дескриптора
for (vector<RAWINPUTDEVICELIST>::iterator device_iterator(input_devices.begin()); device_iterator != input_devices.end(); ++device_iterator) { UINT info_size(sizeof(RID_DEVICE_INFO)); if (GetRawInputDeviceInfo(device_iterator->hDevice, RIDI_DEVICEINFO, (LPVOID)&device_info, &info_size) == info_size) { // non-keyboard, non-mouse HID device? if (device_info.dwType == RIM_TYPEHID) { if ((device_info.hid.dwVendorId == VENDOR_ID) && (device_info.hid.dwProductId == PRODUCT_ID)) { deviceHandle = device_iterator->hDevice; break; } } } }
CHill60
Когда вы говорите, что получаете правильный дескриптор устройства, можете ли вы показать нам этот бит кода?
Roger1990
Я обновил это в вопросе для вас