Index: trunk/src/shell32/shell32.cpp
===================================================================
--- trunk/src/shell32/shell32.cpp	(revision 169)
+++ trunk/src/shell32/shell32.cpp	(revision 170)
@@ -1,3 +1,3 @@
-/* $Id: shell32.cpp,v 1.6 1999-06-23 22:17:52 phaller Exp $ */
+/* $Id: shell32.cpp,v 1.7 1999-06-23 22:28:52 phaller Exp $ */
 
 /*
@@ -54,6 +54,21 @@
 
 
-//******************************************************************************
-//******************************************************************************
+/*****************************************************************************
+ * Name      : HINSTANCE ShellExecuteA
+ * Purpose   : Start a program
+ * Parameters: HWND    hwnd
+ *             LPCTSTR lpOperation
+ *             LPCTSTR lpFile
+ *             LPCTSTR lpParameters
+ *             LPCTSTR lpDirectory
+ *             INT     nShowCmd
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED
+ *
+ * Author    : Patrick Haller [Tue, 1999/06/01 09:00]
+ *****************************************************************************/
+
 HINSTANCE WIN32API ShellExecuteA(HWND    hwnd,
                                  LPCTSTR lpOperation,
@@ -73,7 +88,76 @@
   return(0); //out of memory
 }
-//******************************************************************************
-//TODO: Make nice dialog window
-//******************************************************************************
+
+
+/*****************************************************************************
+ * Name      : HINSTANCE ShellExecuteW
+ * Purpose   : Start a program
+ * Parameters: HWND    hwnd
+ *             LPCWSTR lpOperation
+ *             LPCWSTR lpFile
+ *             LPCWSTR lpParameters
+ *             LPCWSTR lpDirectory
+ *             INT     nShowCmd
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED
+ *
+ * Author    : Patrick Haller [Tue, 1999/06/01 09:00]
+ *****************************************************************************/
+
+HINSTANCE WIN32API ShellExecuteW(HWND    hwnd,
+                                 LPCWSTR lpOperation,
+                                 LPCWSTR lpFile,
+                                 LPCWSTR lpParameters,
+                                 LPCWSTR lpDirectory,
+                                 INT     nShowCmd)
+{
+  HINSTANCE hInstance;
+  LPSTR     lpOperationA  = UnicodeToAsciiString((LPWSTR)lpOperation);
+  LPSTR     lpFileA       = UnicodeToAsciiString((LPWSTR)lpFile);
+  LPSTR     lpParametersA = UnicodeToAsciiString((LPWSTR)lpParameters);
+  LPSTR     lpDirectoryA  = UnicodeToAsciiString((LPWSTR)lpDirectory);
+
+  dprintf (("SHELL32: ShellExecuteW(%08xh,%s,%s,%s,%s,%08xh).\n",
+            hwnd,
+            lpOperationA,
+            lpFileA,
+            lpParametersA,
+            lpDirectoryA,
+            nShowCmd));
+
+  hInstance = ShellExecuteA(hwnd,
+                            lpOperationA,
+                            lpFileA,
+                            lpParametersA,
+                            lpDirectoryA,
+                            nShowCmd);
+
+  FreeAsciiString(lpOperationA);
+  FreeAsciiString(lpFileA);
+  FreeAsciiString(lpParametersA);
+  FreeAsciiString(lpDirectoryA);
+
+  return hInstance;
+}
+
+
+
+/*****************************************************************************
+ * Name      : DWORD ShellAboutA
+ * Purpose   : display a simple about box
+ * Parameters: HWND   hwnd
+ *             LPSTR  szApplication
+ *             LPSTR  szMoreInformation
+ *             HICON  hIcon
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED
+ *
+ * Author    : Patrick Haller [Tue, 1999/06/01 09:00]
+ *****************************************************************************/
+
 int WIN32API ShellAboutA(HWND    hwnd,
                          LPCTSTR szApp,
Index: trunk/src/shell32/shell32.def
===================================================================
--- trunk/src/shell32/shell32.def	(revision 169)
+++ trunk/src/shell32/shell32.def	(revision 170)
@@ -1,3 +1,3 @@
-; $Id: shell32.def,v 1.6 1999-06-23 22:17:52 phaller Exp $
+; $Id: shell32.def,v 1.7 1999-06-23 22:28:52 phaller Exp $
 
 ;Created by BLAST for IBM's compiler
@@ -87,10 +87,10 @@
 ;   OpenAs_RunDLL              = _OpenAs_RunDLL@?                   @189
 ;   PrintersGetCommand_RunDLL  = _PrintersGetCommand_RunDLL@?       @190
-;   RealShellExecuteA          = _RealShellExecuteA@?               @191
-;   RealShellExecuteExA        = _RealShellExecuteExA@?             @192
+    RealShellExecuteA          = _RealShellExecuteA@24              @191
+    RealShellExecuteExA        = _RealShellExecuteExA@4             @192
                                  _SHELL32_195@4                     @195
                                  _SHELL32_196@4                     @196
-;   RealShellExecuteExW        = _RealShellExecuteExW@?             @201
-;   RealShellExecuteW          = _RealShellExecuteW@?               @202
+    RealShellExecuteExW        = _RealShellExecuteExW@4             @201
+    RealShellExecuteW          = _RealShellExecuteW@24              @202
 ;   RegenerateUserEnvironment  = _RegenerateUserEnvironment@?       @203
     SHAddToRecentDocs          = _SHAddToRecentDocs@8               @204
@@ -139,5 +139,5 @@
     ShellExecuteExA            = _ShellExecuteExA@4                 @245
     ShellExecuteExW            = _ShellExecuteExW@4                        ; NT4 doesn't use it!
-;   ShellExecuteW              = _ShellExecuteW@24                  @246
+    ShellExecuteW              = _ShellExecuteW@24                  @246
     ShellExecute               = _ShellExecuteA@24                         ; NT4 doesn't use it!
     Shell_NotifyIcon           = _Shell_NotifyIconA@8               @247
Index: trunk/src/shell32/unknown.cpp
===================================================================
--- trunk/src/shell32/unknown.cpp	(revision 169)
+++ trunk/src/shell32/unknown.cpp	(revision 170)
@@ -1,3 +1,3 @@
-/* $Id: unknown.cpp,v 1.1 1999-06-23 22:19:05 phaller Exp $ */
+/* $Id: unknown.cpp,v 1.2 1999-06-23 22:28:52 phaller Exp $ */
 
 /*
@@ -10,5 +10,10 @@
  * Includes                                                                  *
  *****************************************************************************/
+
 #include <os2win.h>
+#include <shellapi.h>
+#include <winreg.h>
+#include "shell32.h"
+
 
 /*****************************************************************************
@@ -26,13 +31,132 @@
 
 /*****************************************************************************
- * Name      :
- * Purpose   : Unknown, undocumented Win32 API
+ * Name      : HINSTANCE RealShellExecuteA
+ * Purpose   : Start a program
+ * Parameters: HWND    hwnd
+ *             LPCTSTR lpOperation
+ *             LPCTSTR lpFile
+ *             LPCTSTR lpParameters
+ *             LPCTSTR lpDirectory
+ *             INT     nShowCmd
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED UNKNOWN
+ *
+ * Author    : Patrick Haller [Tue, 1999/06/01 09:00]
+ *****************************************************************************/
+
+HINSTANCE WIN32API RealShellExecuteA(HWND    hwnd,
+                                     LPCTSTR lpOperation,
+                                     LPCTSTR lpFile,
+                                     LPCTSTR lpParameters,
+                                     LPCTSTR lpDirectory,
+                                     INT     nShowCmd)
+{
+  dprintf (("SHELL32: RealShellExecuteA(%08xh,%s,%s,%s,%s,%08xh) not implemented.\n",
+            hwnd,
+            lpOperation,
+            lpFile,
+            lpParameters,
+            lpDirectory,
+            nShowCmd));
+
+  return(0); //out of memory
+}
+
+
+/*****************************************************************************
+ * Name      : HINSTANCE RealShellExecuteW
+ * Purpose   : Start a program
+ * Parameters: HWND    hwnd
+ *             LPCWSTR lpOperation
+ *             LPCWSTR lpFile
+ *             LPCWSTR lpParameters
+ *             LPCWSTR lpDirectory
+ *             INT     nShowCmd
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED UNKNOWN
+ *
+ * Author    : Patrick Haller [Tue, 1999/06/01 09:00]
+ *****************************************************************************/
+
+HINSTANCE WIN32API RealShellExecuteW(HWND    hwnd,
+                                     LPCWSTR lpOperation,
+                                     LPCWSTR lpFile,
+                                     LPCWSTR lpParameters,
+                                     LPCWSTR lpDirectory,
+                                     INT     nShowCmd)
+{
+  HINSTANCE hInstance;
+  LPSTR     lpOperationA  = UnicodeToAsciiString((LPWSTR)lpOperation);
+  LPSTR     lpFileA       = UnicodeToAsciiString((LPWSTR)lpFile);
+  LPSTR     lpParametersA = UnicodeToAsciiString((LPWSTR)lpParameters);
+  LPSTR     lpDirectoryA  = UnicodeToAsciiString((LPWSTR)lpDirectory);
+
+  dprintf (("SHELL32: RealShellExecuteW(%08xh,%s,%s,%s,%s,%08xh).\n",
+            hwnd,
+            lpOperationA,
+            lpFileA,
+            lpParametersA,
+            lpDirectoryA,
+            nShowCmd));
+
+  hInstance = RealShellExecuteA(hwnd,
+                                lpOperationA,
+                                lpFileA,
+                                lpParametersA,
+                                lpDirectoryA,
+                                nShowCmd);
+
+  FreeAsciiString(lpOperationA);
+  FreeAsciiString(lpFileA);
+  FreeAsciiString(lpParametersA);
+  FreeAsciiString(lpDirectoryA);
+
+  return hInstance;
+}
+
+
+/*****************************************************************************
+ * Name      : BOOL RealShellExecuteExA
+ * Purpose   :
  * Parameters:
  * Variables :
  * Result    :
  * Remark    :
- * Status    : UNTESTED STUB, UNKNOWN PARAMETERS
+ * Status    : UNTESTED STUB UNKNOWN
  *
- * Author    : Patrick Haller [1999/06/21 20:01]
+ * Author    : Patrick Haller [Tue, 1998/06/15 03:00]
  *****************************************************************************/
 
+BOOL WIN32API RealShellExecuteExA(LPSHELLEXECUTEINFOA lpExecInfo)
+{
+  dprintf(("SHELL32: RealShellExecuteExA (%08xh) not implemented.\n",
+           lpExecInfo));
+
+  return (0);
+}
+
+
+/*****************************************************************************
+ * Name      : BOOL RealShellExecuteExW
+ * Purpose   :
+ * Parameters:
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED STUB UNKNOWN
+ *
+ * Author    : Patrick Haller [Tue, 1998/06/15 03:00]
+ *****************************************************************************/
+
+BOOL WIN32API RealShellExecuteExW(LPSHELLEXECUTEINFOW lpExecInfo)
+{
+  dprintf(("SHELL32: RealShellExecuteExW (%08xh) not implemented.\n",
+           lpExecInfo));
+
+  return (0);
+}
+
