ShellExecute patch

Duane Clark dclark at
Sun Jul 21 18:28:22 CDT 2002

Steven Edwards wrote:
> I guess there is no other way of doing this without using WinExec?
> +    if (retval > 32)  /* Found */
> +    {
> +        TRACE("%s/%s => %s/%s\n", lpFile, lpOperation, cmd, lpstrProtocol);
> +        if (*lpstrProtocol)
> +            retval = execute_from_key(lpstrProtocol, lpFile, iShowCmd, is32);
> +        else
> +            retval = (is32) ? WinExec(cmd, iShowCmd) : WinExec16(cmd, iShowCmd);
> +    }

I did not actually write that part, nor most of this code. Mainly what I 
did was to combine the existing routines. The only problem I was trying 
to solve was that ShellExecuteEx ignored parameters from the registry. 
Originally I had written a routine for handling the parameters. It was 
suggested to me that much of that already existed. I had not noticed 
that because the two shell execute routines were in two different source 

I guess I am not sure what the problem is with WinExec. Originally 
ShellExecuteEx used CreateProcessA and ShellExecute used WinExec, which 
simply calls CreateProcessA. I could certainly directly call 
CreateProcessA if that is preferable.

More information about the wine-patches mailing list