Ciao a tutti.
Volevo realizzare un'applicazione che simulassi il click del mouse, e ho trovato questo codice:


Codice PHP:
DllImport("user32.dll",CharSet=CharSet.AutoCallingConvention=CallingConvention.StdCall)]
   public static 
extern void mouse_event(long dwFlagslong dxlong dylong cButtonslong dwExtraInfo);

   private const 
int MOUSEEVENTF_LEFTDOWN 0x02;
   private const 
int MOUSEEVENTF_LEFTUP 0x04;
   private const 
int MOUSEEVENTF_RIGHTDOWN 0x08;
   private const 
int MOUSEEVENTF_RIGHTUP 0x10;

 public 
void DoMouseClick()
        {
            
//Call the imported function with the cursor's current position
            
long X Cursor.Position.X;
            
long Y Cursor.Position.Y;
            
mouse_event(MOUSEEVENTF_LEFTDOWNXY00);
        } 
ma quando richiamo DoMouseClick, mi appare un'eccezione "PInvokeStackImbalance" che recita:

"Una chiamata alla funzione PInvoke 'ProvaClick!ProvaClick.Form1::mouse_event' ha sbilanciato lo stack. Questo problema può verificarsi quando la firma PInvoke gestita non corrisponde alla firma di destinazione non gestita. Verificare che la convenzione di chiamata e i parametri della firma PInvoke corrispondano alla firma di destinazione non gestita."


Sapreste dirmi cosa devo migliorare nel mio codice perchè non venga lanciata l'ecezzione?