title: "A call to a PInvoke function has unbalanced the stack"
body: <p>I created a Form application in visual c#, that uses a function to generate mouse click, but i got the following error message:</p>
  
  <pre><code>A call to PInvoke function '...Form1::mouse_event' has unbalanced the stack.
  This is likely because the managed PInvoke signature does not match the unmanaged target
  signature. Check that the calling convention and parameters of the PInvoke signature match 
  the target unmanaged signature.
  </code></pre>
  
  <p>My Code:</p>
  
  <pre><code>[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
  public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);
  
  private const int MOUSEEVENTF_LEFTDOWN = 0x02;
  private const int MOUSEEVENTF_LEFTUP = 0x04;
  
  ...
  
  void GenerateMouseClick(int x, int y)
  {
      Cursor.Position = new Point((int)x, (int)y);
      mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, Cursor.Position.X, Cursor.Position.Y, 0, 0);
  }
  </code></pre>