locked
Multipoint triggering mouse events RRS feed

  • Question

  • Hi!

    I'm doing a project using a alternate pointing device (not a mouse), and using the user32.dll functions this works fine under windows. Multipoint does not register this input, so i used the

    SetPosition method to position my pointer device.

    Now the problem is that the SetPosition method does not trigger events. Mouse move, enter or leave events simply do not fire off. Is there a way to make this work?

    Also, I found the MultiPointMouseCursorClick metod in the MultiPointMousePlugIn DLL, but I can't access it of fire it off. HELP!

    Is there a way to munipulate this data, or is the only way writing a low level hook?

    Saturday, April 11, 2009 6:37 AM

Answers

  • I think there are two approaches here.  The MultiPoint SDK was built to be extensible – it uses a provider model to handle different types of devices.  However, I’m not sure this model has been fully fleshed out as part of v1 and was definitely not well tested in the update for v1.1 as it wasn’t a priority. An approach to solving this problem would be to create a provider that handles the type of device they are using.

    The second approach is for the developer to simulate all the windows messages that are used by MultiPoint to drive the mouse cursors.  Unfortunately this would require a bit of trawling through the SDK using something like Reflector to work out what windows messages are required.  At an overview the required messages would be attach/detach messages (so that MultiPoint detects the new device as a mouse), change position and click events.  The downside of this may be that there are other side effects as the windows messages may be misinterpreted by other applications.

    Essentially the current charter for MultiPoint is that it is designed for USB mouse devices only in the current releases.  To support other devices requires a fair bit of work whichever way they choose to go.

    • Marked as answer by Nima Mojgani Monday, April 20, 2009 5:23 PM
    Saturday, April 18, 2009 12:16 AM

All replies

  • I think there are two approaches here.  The MultiPoint SDK was built to be extensible – it uses a provider model to handle different types of devices.  However, I’m not sure this model has been fully fleshed out as part of v1 and was definitely not well tested in the update for v1.1 as it wasn’t a priority. An approach to solving this problem would be to create a provider that handles the type of device they are using.

    The second approach is for the developer to simulate all the windows messages that are used by MultiPoint to drive the mouse cursors.  Unfortunately this would require a bit of trawling through the SDK using something like Reflector to work out what windows messages are required.  At an overview the required messages would be attach/detach messages (so that MultiPoint detects the new device as a mouse), change position and click events.  The downside of this may be that there are other side effects as the windows messages may be misinterpreted by other applications.

    Essentially the current charter for MultiPoint is that it is designed for USB mouse devices only in the current releases.  To support other devices requires a fair bit of work whichever way they choose to go.

    • Marked as answer by Nima Mojgani Monday, April 20, 2009 5:23 PM
    Saturday, April 18, 2009 12:16 AM
  • Hello

    I'm having the following problem when I try to run Beezmath or any other example of C# / Flash integration. Does anyone have a clue??? Seems like I must register the COM component before using it. How do I do it?  Thanks in advance

    "Error HRESULT E_FAIL has been returned from a call to a COM component."
    Code:   axShockwaveFlash.CallFunction(@"<invoke name=""loadFLV"" returntype=""xml""><arguments><string>barsandtone.flv</string></arguments></invoke>");
    Friday, May 1, 2009 4:55 PM
  • Hi!

    I'm doing a project using a alternate pointing device (not a mouse), and using the user32.dll functions this works fine under windows. Multipoint does not register this input, so i used the

    SetPosition method to position my pointer device.

    Now the problem is that the SetPosition method does not trigger events. Mouse move, enter or leave events simply do not fire off. Is there a way to make this work?

    Hi! Rbrrneck!
    You can send (here) Sample Code: SetPosition;
    I compare with my:

     

    for (int i = 0; i < 4; i++)
    {
                   
        DeviceInfo mpDeviceInfo = (DeviceInfo)MultiPointSDK.Instance.MouseDeviceList[i];
        MultiPointMouseDevice mpMouseDevice = (MultiPointMouseDevice)mpDeviceInfo.DeviceVisual;
        Point mousePosition = mpMouseDevice.SetPosition();
                
    }
    

    Thank you very much!

    Sunday, March 28, 2010 11:12 AM