PRB: ShellExecute() Succeeds But App Window Doesn't Appear (124133)



The information in this article applies to:

  • Microsoft Win32s 1.15
  • Microsoft Win32s 1.2

This article was previously published under Q124133

SYMPTOMS

The following call to ShellExecute() succeeds and the file association is set in File Manager, but the application does not appear to execute (the window is not shown):
   hShell = ShellExecute( hWnd,
                          NULL,
                          lpszFile,
                          NULL,
                          lpszDir,
                          SW_SHOWDEFAULT );
				

CAUSE

ShellExecute() is directly thunked to 16-bit Windows. Windows-based applications do not support the SW_SHOWDEFAULT flag.

RESOLUTION

Under Win32s, use SW_NORMAL instead of SW_SHOWDEFAULT when using ShellExecute() with a 16-bit Windows-based application. You can use SW_SHOWDEFAULT if the application specified is a Win32-based application.

STATUS

This behavior is by design.

Modification Type:MinorLast Reviewed:5/14/2004
Keywords:KB124133