Originally Posted by MSDN
If the function succeeds, it returns a value greater than 32. If the function fails, it returns an error value that indicates the cause of the failure. The return value is cast as an HINSTANCE for backward compatibility with 16-bit Windows applications. It is not a true HINSTANCE, however. It can be cast only to an int and compared to either 32 or the following error codes below.
Refer this

if(ShellExecute('Your Sample Params Above') == ERROR_PATH_NOT_FOUND)
  Do something
  Do some other thing