static void FixExtensionEvents(ExtensionEntry * extEntry) { DeviceValuator = extEntry->eventBase; DeviceKeyPress = DeviceValuator + 1; DeviceKeyRelease = DeviceKeyPress + 1; DeviceButtonPress = DeviceKeyRelease + 1; DeviceButtonRelease = DeviceButtonPress + 1; DeviceMotionNotify = DeviceButtonRelease + 1; DeviceFocusIn = DeviceMotionNotify + 1; DeviceFocusOut = DeviceFocusIn + 1; ProximityIn = DeviceFocusOut + 1; ProximityOut = ProximityIn + 1; DeviceStateNotify = ProximityOut + 1; DeviceMappingNotify = DeviceStateNotify + 1; ChangeDeviceNotify = DeviceMappingNotify + 1; DeviceKeyStateNotify = ChangeDeviceNotify + 1; DeviceButtonStateNotify = DeviceKeyStateNotify + 1; DevicePresenceNotify = DeviceButtonStateNotify + 1; DevicePropertyNotify = DevicePresenceNotify + 1; event_base[KeyClass] = DeviceKeyPress; event_base[ButtonClass] = DeviceButtonPress; event_base[ValuatorClass] = DeviceMotionNotify; event_base[ProximityClass] = ProximityIn; event_base[FocusClass] = DeviceFocusIn; event_base[OtherClass] = DeviceStateNotify; BadDevice += extEntry->errorBase; BadEvent += extEntry->errorBase; BadMode += extEntry->errorBase; DeviceBusy += extEntry->errorBase; BadClass += extEntry->errorBase; SetMaskForExtEvent(DeviceKeyPressMask, DeviceKeyPress); AllowPropagateSuppress(DeviceKeyPressMask); SetCriticalEvent(DeviceKeyPress); SetMaskForExtEvent(DeviceKeyReleaseMask, DeviceKeyRelease); AllowPropagateSuppress(DeviceKeyReleaseMask); SetCriticalEvent(DeviceKeyRelease); SetMaskForExtEvent(DeviceButtonPressMask, DeviceButtonPress); AllowPropagateSuppress(DeviceButtonPressMask); SetCriticalEvent(DeviceButtonPress); SetMaskForExtEvent(DeviceButtonReleaseMask, DeviceButtonRelease); AllowPropagateSuppress(DeviceButtonReleaseMask); SetCriticalEvent(DeviceButtonRelease); SetMaskForExtEvent(DeviceProximityMask, ProximityIn); SetMaskForExtEvent(DeviceProximityMask, ProximityOut); SetMaskForExtEvent(DeviceStateNotifyMask, DeviceStateNotify); SetMaskForExtEvent(DevicePointerMotionMask, DeviceMotionNotify); AllowPropagateSuppress(DevicePointerMotionMask); SetCriticalEvent(DeviceMotionNotify); SetEventInfo(DevicePointerMotionHintMask, _devicePointerMotionHint); SetEventInfo(DeviceButton1MotionMask, _deviceButton1Motion); SetEventInfo(DeviceButton2MotionMask, _deviceButton2Motion); SetEventInfo(DeviceButton3MotionMask, _deviceButton3Motion); SetEventInfo(DeviceButton4MotionMask, _deviceButton4Motion); SetEventInfo(DeviceButton5MotionMask, _deviceButton5Motion); SetEventInfo(DeviceButtonMotionMask, _deviceButtonMotion); SetMaskForExtEvent(DeviceFocusChangeMask, DeviceFocusIn); SetMaskForExtEvent(DeviceFocusChangeMask, DeviceFocusOut); SetMaskForExtEvent(DeviceMappingNotifyMask, DeviceMappingNotify); SetMaskForExtEvent(ChangeDeviceNotifyMask, ChangeDeviceNotify); SetEventInfo(DeviceButtonGrabMask, _deviceButtonGrab); SetExclusiveAccess(DeviceButtonGrabMask); SetEventInfo(DeviceOwnerGrabButtonMask, _deviceOwnerGrabButton); SetEventInfo(DevicePresenceNotifyMask, _devicePresence); SetMaskForExtEvent(DevicePropertyNotifyMask, DevicePropertyNotify); SetEventInfo(0, _noExtensionEvent); }
void CMouse::EndExclusiveAccess(DWORD dwControlID, DWORD dwWindowID) { if (m_exclusiveControlID == dwControlID && m_exclusiveWindowID == dwWindowID) SetExclusiveAccess(WINDOW_INVALID, WINDOW_INVALID, CPoint(0, 0)); }