Alessio,
I think Borislav has hit it. double clicking a file in explorer triggers the "open" operation not the "edit" operation you are asking it to do in your shellexecute() call.
Either change your call to open, or make sure the edit option on the file type is set to the program you want.
>It works fine
>The file is opened by MSPAINT
>>What happend if you double click on that file in Windows Explorer (there where your ShellExecute not working)?
>>>>> result = ShellExecute(0, 'Edit', xFileToOpen , '', xLocation, 1)