public SynapticsMouse(int deviceHandle) { if (-1 == deviceHandle) { throw new Exception(); } this.synDeviceCtrl.Select(deviceHandle); string hardwareID = synDeviceCtrl.GetStringProperty((SynDeviceProperty)SynDeviceStringProperty.SP_PnPID); Debug.Print("SynapticsMouse HardwareID={0}", hardwareID); string[] token = hardwareID.Split(new char[] { '&' }); this.VendorID = token[0]; this.DeviceID = token[1]; this.Name = synDeviceCtrl.GetStringProperty((SynDeviceProperty)SynDeviceStringProperty.SP_ModelString); Debug.Print("Device name={0}", this.Name); this.synDeviceCtrl.Activate(); this.synDeviceCtrl.OnPacket += new _ISynDeviceCtrlEvents_OnPacketEventHandler(OnPacket); }