C # - PInvokeStackImbalance détecté sur une fonction bien documentée?

Voici mon code pour un ClickMouse() fonction:

    [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 long MOUSEEVENTF_LEFTDOWN = 0x02;
    private const long MOUSEEVENTF_LEFTUP = 0x04;
    private const long MOUSEEVENTF_RIGHTDOWN = 0x08;
    private const long MOUSEEVENTF_RIGHTUP = 0x10;
    private void ClickMouse()
    {
        long X = Cursor.Position.X;
        long Y = Cursor.Position.Y;
        mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, 0);

    }

Pour quelque raison, quand mon programme pour ce code, il met ce message d'erreur:

PInvokeStackImbalance a été détecté Message: Un appel à la fonction PInvoke
'WindowsFormsApplication1!WindowsFormsApplication1.Form1::mouse_event'
a déséquilibré la pile. C'est probablement parce que la gestion de PInvoke
la signature ne correspond pas à la non géré cible signature. Vérifiez que
la convention d'appel et les paramètres de la PInvoke correspondance de signature
la cible non géré signature.

S'il vous plaît aider?

source d'informationauteur Aaron Hammond