void Mouse::fireMultiTouchEvent(uint8_t cContacts, const LONG64 *paContacts, uint32_t u32ScanTime) { com::SafeArray<SHORT> xPositions(cContacts); com::SafeArray<SHORT> yPositions(cContacts); com::SafeArray<USHORT> contactIds(cContacts); com::SafeArray<USHORT> contactFlags(cContacts); uint8_t i; for (i = 0; i < cContacts; i++) { uint32_t u32Lo = RT_LO_U32(paContacts[i]); uint32_t u32Hi = RT_HI_U32(paContacts[i]); xPositions[i] = (int16_t)u32Lo; yPositions[i] = (int16_t)(u32Lo >> 16); contactIds[i] = RT_BYTE1(u32Hi); contactFlags[i] = RT_BYTE2(u32Hi); } VBoxEventDesc evDesc; evDesc.init(mEventSource, VBoxEventType_OnGuestMultiTouch, cContacts, ComSafeArrayAsInParam(xPositions), ComSafeArrayAsInParam(yPositions), ComSafeArrayAsInParam(contactIds), ComSafeArrayAsInParam(contactFlags), u32ScanTime); evDesc.fire(0); }
/*! \reimp */ QList<QContact> QContactWinCEEngine::contacts(const QContactFilter& filter, const QList<QContactSortOrder>& sortOrders, const QContactFetchHint& fetchHint, QContactManager::Error* error) const { QList<QContactLocalId> ids = contactIds(filter, sortOrders, error); QList<QContact> cs; if (*error == QContactManager::NoError) { foreach (const QContactLocalId& id, ids) { cs << contact(id, fetchHint, error); }