Here's my recommendation on the CheckIsDoubleClick method rewrite (shorter lines, and clearer intents, IMHO):

```
public static bool CheckIsDoubleClick(MouseClickHistory prevClick, MouseClickHistory curClick)
{
    // Check same source and same position
    if (prevClick == null || (curClick.Source != prevClick.Source))
        return false;

    // If current mouse click time is more than system DoubleClickTime
    int clickInterval = curClick.Timestamp - prevClick.Timestamp;
    if (clickInterval > System.Windows.Forms.SystemInformation.DoubleClickTime)
        return false;

    double diff = Math.Abs(prevClick.Position.X - curClick.Position.X);
    if (diff > Configurations.DoubleClickAcceptableDistance)
        return false; // Click is beyond acceptable threshold.

    diff = Math.Abs(prevClick.Position.Y - curClick.Position.Y);
    if (diff > Configurations.DoubleClickAcceptableDistance)
        return false; // Click is beyond acceptable threshold.

    return true;
}
```