Index: trunk/src/shell32/drag.cpp
===================================================================
--- trunk/src/shell32/drag.cpp	(revision 77)
+++ trunk/src/shell32/drag.cpp	(revision 77)
@@ -0,0 +1,186 @@
+/*
+ * Win32 SHELL32 for OS/2
+ * Copyright 1989 Patrick Haller
+ * Project Odin Software License can be found in LICENSE.TXT
+ */
+
+
+/*****************************************************************************
+ * Includes                                                                  *
+ *****************************************************************************/
+
+#include <os2win.h>
+#include <shellapi.h>
+#include <winreg.h>
+#include "shell32.h"
+
+#include <stdarg.h>
+//#include <builtin.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <misc.h>
+#include <nameid.h>
+#include <unicode.h>
+
+
+/*****************************************************************************
+ * Types & Defines                                                           *
+ *****************************************************************************/
+
+
+/*****************************************************************************
+ * Name      : VOID DragAcceptFiles
+ * Purpose   :
+ * Parameters: HWND hwnd
+ *             BOOL fAccept
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED STUB
+ *
+ * Author    : Patrick Haller [Tue, 1999/06/09 20:00]
+ *****************************************************************************/
+
+VOID WIN32API DragAcceptFiles(HWND hwnd,
+                              BOOL fAccept)
+{
+  dprintf(("SHELL32: DragAcceptFiles (%08uxh, %08xh) not implemented.\n",
+           hwnd,
+           fAccept));
+}
+
+
+/*****************************************************************************
+ * Name      : VOID DragFinish
+ * Purpose   :
+ * Parameters: HDROP hDrop
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED STUB
+ *
+ * Author    : Patrick Haller [Tue, 1999/06/09 20:00]
+ *****************************************************************************/
+
+VOID WIN32API DragFinish(HDROP hDrop)
+{
+  dprintf(("SHELL32: DragFinish(%08xh) not implemented.\n",
+           hDrop));
+}
+
+
+/*****************************************************************************
+ * Name      : UINT DragQueryFileA
+ * Purpose   :
+ * Parameters: HDROP  hDrop    - drop structure handle
+ *             UINT   iFile    - index of file to query
+ *             LPTSTR lpszFile - target buffer
+ *             UINT   cch      - target buffer size
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED STUB
+ *
+ * Author    : Patrick Haller [Tue, 1999/06/09 20:00]
+ *****************************************************************************/
+
+UINT WIN32API DragQueryFileA(HDROP  hDrop,
+                             UINT   iFile,
+                             LPTSTR lpszFile,
+                             UINT   cch)
+{
+  dprintf(("SHELL32: DragQueryFileA(%08xh,%08xh,%s,%08xh) not implemented.\n",
+           hDrop,
+           iFile,
+           lpszFile,
+           cch));
+
+  return(0);
+}
+
+
+/*****************************************************************************
+ * Name      : UINT DragQueryFileAorW
+ * Purpose   :
+ * Parameters: HDROP  hDrop    - drop structure handle
+ *             UINT   iFile    - index of file to query
+ *             LPTSTR lpszFile - target buffer
+ *             UINT   cch      - target buffer size
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED STUB
+ *
+ * Author    : Patrick Haller [Tue, 1999/06/09 20:00]
+ *****************************************************************************/
+
+UINT WIN32API DragQueryFileAorW(HDROP  hDrop,
+                                UINT   iFile,
+                                LPTSTR lpszFile,
+                                UINT   cch)
+{
+  dprintf(("SHELL32: DragQueryFileAorW(%08xh,%08xh,%s,%08xh) not implemented.\n",
+           hDrop,
+           iFile,
+           lpszFile,
+           cch));
+
+  return(0);
+}
+
+
+/*****************************************************************************
+ * Name      : UINT DragQueryFileW
+ * Purpose   :
+ * Parameters: HDROP  hDrop    - drop structure handle
+ *             UINT   iFile    - index of file to query
+ *             LPWSTR lpszFile - target buffer
+ *             UINT   cch      - target buffer size
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED STUB
+ *
+ * Author    : Patrick Haller [Tue, 1999/06/09 20:00]
+ *****************************************************************************/
+
+UINT WIN32API DragQueryFileW(HDROP  hDrop,
+                                UINT   iFile,
+                                LPWSTR lpszFile,
+                                UINT   cch)
+{
+  dprintf(("SHELL32: DragQueryFileW(%08xh,%08xh,%s,%08xh) not implemented.\n",
+           hDrop,
+           iFile,
+           lpszFile,
+           cch));
+
+  return(0);
+}
+
+
+/*****************************************************************************
+ * Name      : BOOL DrawQueryPoint
+ * Purpose   :
+ * Parameters: HDROP   hDrop
+ *             LPPOINT lppt
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED STUB
+ *
+ * Author    : Patrick Haller [Tue, 1999/06/09 20:00]
+ *****************************************************************************/
+
+BOOL WIN32API DragQueryPoint(HDROP   hDrop,
+                             LPPOINT lppt)
+{
+  dprintf(("SHELL32: DragQueryPoint (%08xh,%08xh) not implemented.\n",
+           hDrop,
+           lppt));
+
+  return(FALSE);
+}
+
Index: trunk/src/shell32/makefile
===================================================================
--- trunk/src/shell32/makefile	(revision 75)
+++ trunk/src/shell32/makefile	(revision 77)
@@ -19,5 +19,5 @@
 TARGET = shell32
 
-OBJS =  shell32.obj initterm.obj
+OBJS =  shell32.obj sh.obj she.obj drag.obj initterm.obj
 
 all: $(TARGET).dll $(TARGET).lib
@@ -38,5 +38,13 @@
 
 shell32.obj: shell32.cpp shell32.h
+
+drag.obj: drag.cpp shell32.h
+
+sh.obj: sh.cpp shell32.h
+
+she.obj: she.cpp shell32.h
+
 initterm.obj: initterm.cpp
+
 
 clean:
Index: trunk/src/shell32/sh.cpp
===================================================================
--- trunk/src/shell32/sh.cpp	(revision 77)
+++ trunk/src/shell32/sh.cpp	(revision 77)
@@ -0,0 +1,306 @@
+/*
+ * Win32 SHELL32 for OS/2
+ * Copyright 1999 Patrick Haller
+ * Project Odin Software License can be found in LICENSE.TXT
+ */
+
+
+/*****************************************************************************
+ * Includes                                                                  *
+ *****************************************************************************/
+
+#include <os2win.h>
+#include <shellapi.h>
+#include <winreg.h>
+#include "shell32.h"
+
+#include <stdarg.h>
+//#include <builtin.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <misc.h>
+#include <nameid.h>
+#include <unicode.h>
+
+
+/*****************************************************************************
+ * Types & Defines                                                           *
+ *****************************************************************************/
+
+
+/*****************************************************************************
+ * Name      : HRESULT SHGetMalloc
+ * Purpose   :
+ * Parameters: LPMALLOC *ppMalloc
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED STUB
+ *
+ * Author    : Patrick Haller [Tue, 1999/06/09 20:02]
+ *****************************************************************************/
+
+HRESULT WIN32API SHGetMalloc(LPMALLOC *ppMalloc)
+{
+  dprintf(("SHELL32: SHGetMalloc(%08xh) not implemented.\n",
+           ppMalloc));
+
+  return(0);
+}
+
+
+/*****************************************************************************
+ * Name      : DWORD SHGetFileInfoA
+ * Purpose   :
+ * Parameters: LPCSTR      pszPath
+ *             DWORD       dwFileAttributes
+ *             SHFILEINFOA *psfi
+ *             UINT        cbFileInfo
+ *             UINT        uFlags
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED STUB
+ *
+ * Author    : Patrick Haller [Tue, 1999/06/09 20:02]
+ *****************************************************************************/
+
+DWORD WIN32API SHGetFileInfoA(LPCSTR      pszPath,
+                              DWORD       dwFileAttributes,
+                              SHFILEINFOA *psfi,
+                              UINT        cbFileInfo,
+                              UINT        uFlags)
+{
+  dprintf(("SHELL32: SHGetFileInfoA (%s,%08xh,%08xh,%08xh,%08xh) not implemented.\n",
+           pszPath,
+           dwFileAttributes,
+           psfi,
+           cbFileInfo,
+           uFlags));
+
+  return(0);
+}
+
+
+/*****************************************************************************
+ * Name      : DWORD SHGetFileInfoW
+ * Purpose   :
+ * Parameters: LPWSTR      pszPath
+ *             DWORD       dwFileAttributes
+ *             SHFILEINFOA *psfi
+ *             UINT        cbFileInfo
+ *             UINT        uFlags
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED STUB
+ *
+ * Author    : Patrick Haller [Tue, 1999/06/09 20:02]
+ *****************************************************************************/
+
+DWORD WIN32API SHGetFileInfoW(LPCWSTR         pszPath,
+                              DWORD           dwFileAttributes,
+                              SHFILEINFOW     *psfi,
+                              UINT            cbFileInfo,
+                              UINT            uFlags)
+{
+  char *astring = UnicodeToAsciiString((LPWSTR)pszPath);
+
+  dprintf(("SHELL32: SHGetFileInfoW (%s,%08xh,%08xh,%08xh,%08xh) not implemented.\n",
+           astring,
+           dwFileAttributes,
+           psfi,
+           cbFileInfo,
+           uFlags));
+
+  FreeAsciiString(astring);
+  return(0);
+}
+
+
+/*****************************************************************************
+ * Name      : HRESULT SHGetDesktopFolder
+ * Purpose   :
+ * Parameters: LPSHELLFOLDER *ppshf
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED STUB
+ *
+ * Author    : Patrick Haller [Tue, 1999/06/09 20:02]
+ *****************************************************************************/
+
+HRESULT WIN32API SHGetDesktopFolder(LPSHELLFOLDER *ppshf)
+{
+  dprintf(("SHELL32: SHGetDesktopFolder(%08xh) not implemented.\n",
+           ppshf));
+
+  return(1);
+}
+
+
+/*****************************************************************************
+ * Name      : VOID SHAddToRecentDocs
+ * Purpose   :
+ * Parameters: UINT    uFlags
+ *             LPCVOID pv
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED STUB
+ *
+ * Author    : Patrick Haller [Tue, 1999/06/09 20:02]
+ *****************************************************************************/
+
+VOID WIN32API SHAddToRecentDocs(UINT    uFlags,
+                                LPCVOID pv)
+{
+  dprintf(("SHELL32: SHAddToRecentDocs(%08xh,%08xh) not implemented.\n",
+           uFlags,
+           pv));
+}
+
+
+/*****************************************************************************
+ * Name      : VOID SHChangeNotify
+ * Purpose   :
+ * Parameters: LONG    wEventId
+ *             UINT    uFlags
+ *             LPCVOID dwItem1
+ *             LPCVOID dwItem2
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED STUB
+ *
+ * Author    : Patrick Haller [Tue, 1999/06/09 20:02]
+ *****************************************************************************/
+
+VOID WIN32API SHChangeNotify(LONG    wEventId,
+                             UINT    uFlags,
+                             LPCVOID dwItem1,
+                             LPCVOID dwItem2)
+{
+  dprintf(("SHELL32: SHChangeNotify(%08xh,%08xh,%08xh,%08xh) not implemented.\n",
+           wEventId,
+           uFlags,
+           dwItem1,
+           dwItem2));
+}
+
+
+/*****************************************************************************
+ * Name      : DWORD SHFileOperationA
+ * Purpose   :
+ * Parameters: LPSHFILEOPSTRUCTA lpFileOp
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED STUB
+ *
+ * Author    : Patrick Haller [Tue, 1999/06/09 20:02]
+ *****************************************************************************/
+
+DWORD WIN32API SHFileOperationA(LPSHFILEOPSTRUCTA lpFileOp)
+{
+  dprintf(("SHELL32: SHFileOperationA(%08xh) not implemented.\n",
+           lpFileOp));
+
+  return(0);
+}
+
+
+/*****************************************************************************
+ * Name      : DWORD SHFileOperationW
+ * Purpose   :
+ * Parameters: LPSHFILEOPSTRUCTW lpFileOp
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED STUB
+ *
+ * Author    : Patrick Haller [Tue, 1999/06/09 20:02]
+ *****************************************************************************/
+
+DWORD WIN32API SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp)
+{
+  dprintf(("SHELL32: SHFileOperationW(%08xh) not implemented.\n",
+           lpFileOp));
+
+  return(0);
+}
+
+
+/*****************************************************************************
+ * Name      : BOOL SHGetPathFromIDListA
+ * Purpose   :
+ * Parameters: LPCITEMIDLIST pidl
+ *             LPSTR         pszPath
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED STUB
+ *
+ * Author    : Patrick Haller [Tue, 1999/06/09 20:02]
+ *****************************************************************************/
+
+BOOL WIN32API SHGetPathFromIDListA(LPCITEMIDLIST pidl,
+                                   LPSTR         pszPath)
+{
+  dprintf(("SHELL32: SHGetPathFromIDListA(%08xh,%s) not implemented.\n",
+           pidl,
+           pszPath));
+
+  return(FALSE);
+}
+
+
+/*****************************************************************************
+ * Name      : HRESULT SHGetSpecialFolderLocation
+ * Purpose   :
+ * Parameters: HWND         hwndOwner
+ *             int          nFolder
+ *             LPITEMIDLIST *ppidl
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED STUB
+ *
+ * Author    : Patrick Haller [Tue, 1999/06/09 20:02]
+ *****************************************************************************/
+
+HRESULT WIN32API SHGetSpecialFolderLocation(HWND         hwndOwner,
+                                            int          nFolder,
+                                            LPITEMIDLIST * ppidl)
+{
+  dprintf(("SHELL32: SHGetSpecialFolderLocation(%08xh,%08xh,%08xh) not implemented.\n",
+           hwndOwner,
+           nFolder,
+           ppidl));
+
+  return(1);
+}
+
+
+/*****************************************************************************
+ * Name      : LPITEMIDLIST SHBrowseForFolder
+ * Purpose   :
+ * Parameters: LPBROWSEINFOA lpbi
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED STUB
+ *
+ * Author    : Patrick Haller [Tue, 1999/06/09 20:02]
+ *****************************************************************************/
+
+LPITEMIDLIST WIN32API SHBrowseForFolder(LPBROWSEINFOA lpbi)
+{
+  dprintf(("SHELL32: SHBrowseForFolder(%08xh) not implemented.\n",
+           lpbi));
+
+  return(NULL);
+}
+
Index: trunk/src/shell32/she.cpp
===================================================================
--- trunk/src/shell32/she.cpp	(revision 77)
+++ trunk/src/shell32/she.cpp	(revision 77)
@@ -0,0 +1,45 @@
+/*
+ * Win32 SHELL32 for OS/2
+ * Copyright 1999 Patrick Haller
+ * Project Odin Software License can be found in LICENSE.TXT
+ */
+
+
+/*****************************************************************************
+ * Includes                                                                  *
+ *****************************************************************************/
+
+#include <os2win.h>
+#include <shellapi.h>
+#include <winreg.h>
+#include "shell32.h"
+
+#include <stdarg.h>
+//#include <builtin.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <misc.h>
+#include <nameid.h>
+#include <unicode.h>
+
+
+/*****************************************************************************
+ * Types & Defines                                                           *
+ *****************************************************************************/
+
+
+/*****************************************************************************
+ * Name      :
+ * Purpose   :
+ * Parameters:
+ * Variables :
+ * Result    :
+ * Remark    :
+ * Status    : UNTESTED STUB
+ *
+ * Author    : Patrick Haller [Tue, 1999/06/01 09:00]
+ *****************************************************************************/
+
+
Index: trunk/src/shell32/shell32.cpp
===================================================================
--- trunk/src/shell32/shell32.cpp	(revision 75)
+++ trunk/src/shell32/shell32.cpp	(revision 77)
@@ -1,3 +1,3 @@
-/* $Id: shell32.cpp,v 1.3 1999-06-09 09:17:14 phaller Exp $ */
+/* $Id: shell32.cpp,v 1.4 1999-06-09 15:22:27 phaller Exp $ */
 
 /*
@@ -53,78 +53,5 @@
  *****************************************************************************/
 
-//******************************************************************************
-//******************************************************************************
-VOID WIN32API DragAcceptFiles(HWND hwnd,
-                                 BOOL fAccept)
-{
-  dprintf(("SHELL32: DragAcceptFiles (%08uxh, %08xh) not implemented.\n",
-           hwnd,
-           fAccept));
-}
-//******************************************************************************
-//******************************************************************************
-VOID WIN32API DragFinish(HDROP hDrop)
-{
-  dprintf(("SHELL32: DragFinish(%08xh) not implemented.\n",
-           hDrop));
-}
-//******************************************************************************
-//******************************************************************************
-UINT WIN32API DragQueryFileA(HDROP  hDrop,
-                             UINT   iFile,
-                             LPTSTR lpszFile,
-                             UINT   cch)
-{
-  dprintf(("SHELL32: DragQueryFileA(%08xh,%08xh,%s,%08xh) not implemented.\n",
-           hDrop,
-           iFile,
-           lpszFile,
-           cch));
-
-  return(0);
-}
-//******************************************************************************
-//******************************************************************************
-UINT WIN32API DragQueryFileAorW(HDROP  hDrop,
-                                UINT   iFile,
-                                LPTSTR lpszFile,
-                                UINT   cch)
-{
-  dprintf(("SHELL32: DragQueryFileAorW(%08xh,%08xh,%s,%08xh) not implemented.\n",
-           hDrop,
-           iFile,
-           lpszFile,
-           cch));
-
-  return(0);
-}
-//******************************************************************************
-//******************************************************************************
-UINT WIN32API DragQueryFileW(HDROP  hDrop,
-                                UINT   iFile,
-                                LPWSTR lpszFile,
-                                UINT   cch)
-{
-  dprintf(("SHELL32: DragQueryFileW(%08xh,%08xh,%s,%08xh) not implemented.\n",
-           hDrop,
-           iFile,
-           lpszFile,
-           cch));
-
-  return(0);
-}
-//******************************************************************************
-//******************************************************************************
-BOOL WIN32API DragQueryPoint(HDROP   hDrop,
-                                LPPOINT lppt)
-{
-  dprintf(("SHELL32: DragQueryPoint (%08xh,%08xh) not implemented.\n",
-           hDrop,
-           lppt));
-
-  return(FALSE);
-}
-//******************************************************************************
-//******************************************************************************
+
 //******************************************************************************
 //******************************************************************************
@@ -351,133 +278,4 @@
 }
 //******************************************************************************
-//******************************************************************************
-HRESULT WIN32API SHGetMalloc(LPMALLOC *ppMalloc)
-{
-  dprintf(("SHELL32: SHGetMalloc(%08xh) not implemented.\n",
-           ppMalloc));
-
-  return(0);
-}
-//******************************************************************************
-//******************************************************************************
-DWORD WIN32API SHGetFileInfoA(LPCSTR          pszPath,
-                                 DWORD           dwFileAttributes,
-                                 SHFILEINFOA     *psfi,
-                                 UINT            cbFileInfo,
-                                 UINT            uFlags)
-{
-  dprintf(("SHELL32: SHGetFileInfoA (%s,%08xh,%08xh,%08xh,%08xh) not implemented.\n",
-           pszPath,
-           dwFileAttributes,
-           psfi,
-           cbFileInfo,
-           uFlags));
-
-  return(0);
-}
-//******************************************************************************
-//******************************************************************************
-DWORD WIN32API SHGetFileInfoW(LPCWSTR         pszPath,
-                                 DWORD           dwFileAttributes,
-                                 SHFILEINFOW     *psfi,
-                                 UINT            cbFileInfo,
-                                 UINT            uFlags)
-{
-  char *astring = UnicodeToAsciiString((LPWSTR)pszPath);
-
-  dprintf(("SHELL32: SHGetFileInfoW (%s,%08xh,%08xh,%08xh,%08xh) not implemented.\n",
-           astring,
-           dwFileAttributes,
-           psfi,
-           cbFileInfo,
-           uFlags));
-
-  FreeAsciiString(astring);
-  return(0);
-}
-//******************************************************************************
-//******************************************************************************
-HRESULT WIN32API SHGetDesktopFolder(LPSHELLFOLDER *ppshf)
-{
-  dprintf(("SHELL32: SHGetDesktopFolder(%08xh) not implemented.\n",
-           ppshf));
-
-  return(1);
-}
-//******************************************************************************
-//******************************************************************************
-void WIN32API SHAddToRecentDocs(UINT uFlags, LPCVOID pv)
-{
-  dprintf(("SHELL32: SHAddToRecentDocs(%08xh,%08xh) not implemented.\n",
-           uFlags,
-           pv));
-}
-//******************************************************************************
-//******************************************************************************
-void WIN32API SHChangeNotify(LONG    wEventId,
-                                UINT    uFlags,
-                                LPCVOID dwItem1,
-                                LPCVOID dwItem2)
-{
-  dprintf(("SHELL32: SHChangeNotify(%08xh,%08xh,%08xh,%08xh) not implemented.\n",
-           wEventId,
-           uFlags,
-           dwItem1,
-           dwItem2));
-}
-//******************************************************************************
-//******************************************************************************
-DWORD WIN32API SHFileOperationA(LPSHFILEOPSTRUCTA lpFileOp)
-{
-  dprintf(("SHELL32: SHFileOperationA(%08xh) not implemented.\n",
-           lpFileOp));
-
-  return(0);
-}
-//******************************************************************************
-
-//******************************************************************************
-DWORD WIN32API SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp)
-{
-  dprintf(("SHELL32: SHFileOperationW(%08xh) not implemented.\n",
-           lpFileOp));
-
-  return(0);
-}
-//******************************************************************************
-
-//******************************************************************************
-BOOL WIN32API SHGetPathFromIDListA(LPCITEMIDLIST pidl,
-                                      LPSTR         pszPath)
-{
-  dprintf(("SHELL32: SHGetPathFromIDListA(%08xh,%s) not implemented.\n",
-           pidl,
-           pszPath));
-
-  return(FALSE);
-}
-//******************************************************************************
-//******************************************************************************
-HRESULT WIN32API SHGetSpecialFolderLocation(HWND         hwndOwner,
-                                               int          nFolder,
-                                               LPITEMIDLIST * ppidl)
-{
-  dprintf(("SHELL32: SHGetSpecialFolderLocation(%08xh,%08xh,%08xh) not implemented.\n",
-           hwndOwner,
-           nFolder,
-           ppidl));
-
-  return(1);
-}
-//******************************************************************************
-//******************************************************************************
-LPITEMIDLIST WIN32API SHBrowseForFolder(LPBROWSEINFOA lpbi)
-{
-  dprintf(("SHELL32: SHBrowseForFolder(%08xh) not implemented.\n",
-           lpbi));
-
-  return(NULL);
-}
-//******************************************************************************
 
 
@@ -489,5 +287,5 @@
  */
 BOOL WIN32API Shell_NotifyIconA(DWORD dwMessage,
-	                        PNOTIFYICONDATAA pnid )
+                           PNOTIFYICONDATAA pnid )
 {
   dprintf(("SHELL32: Shell_NotifyIconA(%08xh,%08xh) not implemented.\n",
@@ -506,5 +304,5 @@
  */
 BOOL WIN32API Shell_NotifyIconW(DWORD dwMessage,
-                           	PNOTIFYICONDATAW pnid )
+                                         PNOTIFYICONDATAW pnid )
 {
   dprintf(("SHELL32: Shell_NotifyIconW(%08xh,%08xh) not implemented.\n",
@@ -1632,10 +1430,10 @@
                                 DWORD   idTitle,
                                 DWORD   uType,
-                                LPCVOID arglist) 
-{	
-  WCHAR	 szText[100],
+                                LPCVOID arglist)
+{
+  WCHAR   szText[100],
          szTitle[100],
          szTemp[256];
-  LPWSTR pszText = &szText[0], 
+  LPWSTR pszText = &szText[0],
          pszTitle = &szTitle[0];
   LPVOID args = &arglist;
@@ -1698,14 +1496,14 @@
                                 DWORD   idTitle,
                                 DWORD   uType,
-                                LPCVOID arglist) 
+                                LPCVOID arglist)
 {
   char   szText[100],
          szTitle[100],
          szTemp[256];
-  LPSTR  pszText = &szText[0], 
+  LPSTR  pszText = &szText[0],
          pszTitle = &szTitle[0];
   LPVOID args = &arglist;
 
-  dprintf(("SHELL32: ShellMessageBoxA (%08lx,%08lx,%08lx,%08lx,%08lx,%p)\n", 
+  dprintf(("SHELL32: ShellMessageBoxA (%08lx,%08lx,%08lx,%08lx,%08lx,%p)\n",
            hmod,
            hwnd,
@@ -1740,813 +1538,2 @@
 
 
-
-
-
-#if 0
-typedef DWORD (* WIN32API GetClassPtr)(REFCLSID,REFIID,LPVOID);
-
-static GetClassPtr SH_find_moduleproc(LPSTR   dllname,
-                                      HMODULE *xhmod,
-                                      LPSTR   name)
-{
-  HMODULE hmod;
-  FARPROC dllunload,
-          nameproc;
-
-  if (xhmod)
-    *xhmod = 0;
-
-  if (!lstrcmpi32A(SHELL32_34(dllname),
-                   "shell32.dll"))
-    return (GetClassPtr)SHELL32_DllGetClassObject;
-
-  hmod = LoadLibraryEx32A(dllname,
-                          0,
-                          LOAD_WITH_ALTERED_SEARCH_PATH);
-  if (!hmod)
-    return NULL;
-
-  dllunload = GetProcAddress32(hmod,
-                               "DllCanUnloadNow");
-  if (!dllunload)
-    if (xhmod)
-      *xhmod = hmod;
-
-  nameproc = GetProcAddress32(hmod,
-                              name);
-  if (!nameproc)
-  {
-    FreeLibrary32(hmod);
-    return NULL;
-  }
-
-  /* register unloadable dll with unloadproc ... */
-  return (GetClassPtr)nameproc;
-}
-
-
-static DWORD SH_get_instance(REFCLSID clsid,
-                             LPSTR    dllname,
-                             LPVOID   unknownouter,
-                             REFIID   refiid,
-                             LPVOID inst)
-{
-  GetClassPtr    dllgetclassob;
-  DWORD      hres;
-  LPCLASSFACTORY classfac;
-
-  dllgetclassob = SH_find_moduleproc(dllname,
-                                     NULL,
-                                     "DllGetClassObject");
-  if (!dllgetclassob)
-          return 0x80070000|GetLastError();
-
-/* FIXME */
-/*
-  hres = (*dllgetclassob)(clsid,(REFIID)&IID_IClassFactory,inst);
-  if (hres<0)
-          return hres;
-
-*/
-  hres = (*dllgetclassob)(clsid,
-                          (REFIID)&IID_IClassFactory,
-                          &classfac);
-  if (hres<0)
-    return hres;
-
-  classfac->lpvtbl->fnCreateInstance(classfac,
-                                     unknownouter,
-                                     refiid,
-                                     inst);
-  classfac->lpvtbl->fnRelease(classfac);
-
-  return 0;
-}
-
-
-/*************************************************************************
- *              SHELL32_102 [SHELL32.102]
- * unknown
- */
-LRESULT WIN32API SHELL32_102(LPSTR     aclsid,
-                                CLSID     *clsid,
-                                LPUNKNOWN unknownouter,
-                                REFIID    refiid,
-                                LPVOID    inst)
-{
-  char  buffer[256],
-        xclsid[48],
-        xiid[48],
-        path[260],
-        tmodel[100];
-  HKEY  inprockey;
-  DWORD pathlen,
-        type,
-        tmodellen;
-  DWORD hres;
-
-
-  WINE_StringFromCLSID(refiid,
-                       xiid);
-
-  if (clsid)
-    WINE_StringFromCLSID(clsid,
-                         xclsid);
-  else
-  {
-    if (!aclsid)
-      return 0x80040154;
-
-    strcpy(xclsid,
-           aclsid);
-  }
-
-  dprintf(("SHELL32: .102 (%s. %08xh, %08xh, %08x, %08xh)\n",
-           aclsid,
-           clsid,
-           unknownouter,
-           refiid,
-           inst));
-
-
-  sprintf(buffer,
-          "CLSID\\%s\\InProcServer32",
-          xclsid);
-
-  if (RegOpenKeyEx32A(HKEY_CLASSES_ROOT,
-                      buffer,
-                      0,
-                      0x02000000,
-                      &inprockey))
-    return SH_get_instance(clsid,
-                           "shell32.dll",
-                           unknownouter,
-                           refiid,
-                           inst);
-
-  pathlen=sizeof(path);
-  if (RegQueryValue32A(inprockey,
-                       NULL,
-                       path,
-                       &pathlen))
-  {
-    RegCloseKey(inprockey);
-    return SH_get_instance(clsid,
-                           "shell32.dll",
-                           unknownouter,
-                           refiid,
-                           inst);
-  }
-
-  dprintf (("SHELL32: .102 Server dll is %s\n",
-            path));
-
-  tmodellen=sizeof(tmodel);
-  type=REG_SZ;
-
-  if (RegQueryValueEx32A(inprockey,
-                         "ThreadingModel",
-                         NULL,
-                         &type,
-                         tmodel,
-                         &tmodellen))
-  {
-    RegCloseKey(inprockey);
-    return SH_get_instance(clsid,
-                           "shell32.dll",
-                           unknownouter,
-                           refiid,
-                           inst);
-  }
-
-
-  dprintf (("SHELL32: .102 Threading model is %s\n",
-            tmodel));
-
-  hres=SH_get_instance(clsid,
-                       path,
-                       unknownouter,
-                       refiid,
-                       inst);
-  if (hres<0)
-    hres=SH_get_instance(clsid,
-                         "shell32.dll",
-                         unknownouter,
-                         refiid,
-                         inst);
-
-  RegCloseKey(inprockey);
-
-  return hres;
-}
-
-
-/*************************************************************************
- *              SHELL_FindExecutable
- * Utility for code sharing between FindExecutable and ShellExecute
- */
-static HINSTANCE32 SHELL_FindExecutable( LPCSTR lpFile,
-                                         LPCSTR lpOperation,
-                                         LPSTR lpResult)
-{
-    char *extension = NULL; /* pointer to file extension */
-    char tmpext[5];         /* local copy to mung as we please */
-    char filetype[256];     /* registry name for this filetype */
-    LONG filetypelen=256;   /* length of above */
-    char command[256];      /* command from registry */
-    LONG commandlen=256;    /* This is the most DOS can handle :) */
-    char buffer[256];       /* Used to GetProfileString */
-    HINSTANCE32 retval=31;  /* default - 'No association was found' */
-    char *tok;              /* token pointer */
-    int i;                  /* random counter */
-    char xlpFile[256];      /* result of SearchPath */
-
-    TRACE(exec, "%s\n",
-                 (lpFile != NULL?lpFile:"-") );
-    lpResult[0]='\0'; /* Start off with an empty return string */
-
-    /* trap NULL parameters on entry */
-    if (( lpFile == NULL ) || ( lpResult == NULL ) || ( lpOperation == NULL ))
-    {
-    /* FIXME - should throw a warning, perhaps! */
-    return 2; /* File not found. Close enough, I guess. */
-    }
-
-    if (SearchPath32A( NULL, lpFile,".exe",sizeof(xlpFile),xlpFile,NULL))
-        lpFile = xlpFile;
-
-    /* First thing we need is the file's extension */
-    extension = strrchr( xlpFile, '.' ); /* Assume last "." is the one; */
-                    /* File->Run in progman uses */
-                    /* .\FILE.EXE :( */
-    if ((extension == NULL) || (extension == &xlpFile[strlen(xlpFile)]))
-    {
-    return 31; /* no association */
-    }
-
-    /* Make local copy & lowercase it for reg & 'programs=' lookup */
-    lstrcpyn32A( tmpext, extension, 5 );
-    CharLower32A( tmpext );
-    TRACE(exec, "%s file\n", tmpext);
-
-    /* Three places to check: */
-    /* 1. win.ini, [windows], programs (NB no leading '.') */
-    /* 2. Registry, HKEY_CLASS_ROOT\<filetype>\shell\open\command */
-    /* 3. win.ini, [extensions], extension (NB no leading '.' */
-    /* All I know of the order is that registry is checked before */
-    /* extensions; however, it'd make sense to check the programs */
-    /* section first, so that's what happens here. */
-
-    /* See if it's a program - if GetProfileString fails, we skip this
-     * section. Actually, if GetProfileString fails, we've probably
-     * got a lot more to worry about than running a program... */
-    if ( GetProfileString32A("windows", "programs", "exe pif bat com",
-                          buffer, sizeof(buffer)) > 0 )
-      {
-        for (i=0;i<strlen(buffer); i++) buffer[i]=tolower(buffer[i]);
-
-        tok = strtok(buffer, " \t"); /* ? */
-        while( tok!= NULL)
-          {
-            if (strcmp(tok, &tmpext[1])==0) /* have to skip the leading "." */
-              {
-                strcpy(lpResult, xlpFile);
-                /* Need to perhaps check that the file has a path
-                 * attached */
-                TRACE(exec, "found %s\n",
-                             lpResult);
-                                return 33;
-
-        /* Greater than 32 to indicate success FIXME According to the
-         * docs, I should be returning a handle for the
-         * executable. Does this mean I'm supposed to open the
-         * executable file or something? More RTFM, I guess... */
-              }
-            tok=strtok(NULL, " \t");
-          }
-      }
-
-    /* Check registry */
-    if (RegQueryValue16( (HKEY)HKEY_CLASSES_ROOT, tmpext, filetype,
-                         &filetypelen ) == SHELL_ERROR_SUCCESS )
-    {
-    filetype[filetypelen]='\0';
-    TRACE(exec, "File type: %s\n",
-             filetype);
-
-    /* Looking for ...buffer\shell\lpOperation\command */
-    strcat( filetype, "\\shell\\" );
-    strcat( filetype, lpOperation );
-    strcat( filetype, "\\command" );
-
-    if (RegQueryValue16( (HKEY)HKEY_CLASSES_ROOT, filetype, command,
-                             &commandlen ) == SHELL_ERROR_SUCCESS )
-    {
-        /* Is there a replace() function anywhere? */
-        command[commandlen]='\0';
-        strcpy( lpResult, command );
-        tok=strstr( lpResult, "%1" );
-        if (tok != NULL)
-        {
-        tok[0]='\0'; /* truncate string at the percent */
-        strcat( lpResult, xlpFile ); /* what if no dir in xlpFile? */
-        tok=strstr( command, "%1" );
-        if ((tok!=NULL) && (strlen(tok)>2))
-        {
-            strcat( lpResult, &tok[2] );
-        }
-        }
-        retval=33; /* FIXME see above */
-    }
-    }
-    else /* Check win.ini */
-    {
-    /* Toss the leading dot */
-    extension++;
-    if ( GetProfileString32A( "extensions", extension, "", command,
-                                  sizeof(command)) > 0)
-      {
-        if (strlen(command)!=0)
-          {
-            strcpy( lpResult, command );
-            tok=strstr( lpResult, "^" ); /* should be ^.extension? */
-            if (tok != NULL)
-              {
-                tok[0]='\0';
-                strcat( lpResult, xlpFile ); /* what if no dir in xlpFile? */
-                tok=strstr( command, "^" ); /* see above */
-                if ((tok != NULL) && (strlen(tok)>5))
-                  {
-                    strcat( lpResult, &tok[5]);
-                  }
-              }
-            retval=33; /* FIXME - see above */
-          }
-      }
-    }
-
-    TRACE(exec, "returning %s\n", lpResult);
-    return retval;
-}
-
-/*************************************************************************
- *              ShellExecute16      [SHELL.20]
- */
-HINSTANCE16 WIN32API ShellExecute16( HWND16 hWnd, LPCSTR lpOperation,
-                                   LPCSTR lpFile, LPCSTR lpParameters,
-                                   LPCSTR lpDirectory, INT16 iShowCmd )
-{
-    HINSTANCE16 retval=31;
-    char old_dir[1024];
-    char cmd[256];
-
-    TRACE(exec, "(%04x,'%s','%s','%s','%s',%x)\n",
-        hWnd, lpOperation ? lpOperation:"<null>", lpFile ? lpFile:"<null>",
-        lpParameters ? lpParameters : "<null>",
-        lpDirectory ? lpDirectory : "<null>", iShowCmd);
-
-    if (lpFile==NULL) return 0; /* should not happen */
-    if (lpOperation==NULL) /* default is open */
-      lpOperation="open";
-
-    if (lpDirectory)
-    {
-        GetCurrentDirectory32A( sizeof(old_dir), old_dir );
-        SetCurrentDirectory32A( lpDirectory );
-    }
-
-    retval = SHELL_FindExecutable( lpFile, lpOperation, cmd );
-
-    if (retval > 32)  /* Found */
-    {
-        if (lpParameters)
-        {
-            strcat(cmd," ");
-            strcat(cmd,lpParameters);
-        }
-
-        TRACE(exec,"starting %s\n",cmd);
-        retval = WinExec32( cmd, iShowCmd );
-    }
-    if (lpDirectory) SetCurrentDirectory32A( old_dir );
-    return retval;
-}
-
-
-/*************************************************************************
- *             ShellExecute32A   (SHELL32.245)
- */
-HINSTANCE32 WIN32API ShellExecute32A( HWND hWnd, LPCSTR lpOperation,
-                                    LPCSTR lpFile, LPCSTR lpParameters,
-                                    LPCSTR lpDirectory, INT32 iShowCmd )
-{
-    return ShellExecute16( hWnd, lpOperation, lpFile, lpParameters,
-                           lpDirectory, iShowCmd );
-}
-
-
-/*************************************************************************
- *             FindExecutable32A   (SHELL32.184)
- */
-HINSTANCE32 WIN32API FindExecutable32A( LPCSTR lpFile, LPCSTR lpDirectory,
-                                      LPSTR lpResult )
-{
-    HINSTANCE32 retval=31;    /* default - 'No association was found' */
-    char old_dir[1024];
-
-    TRACE(exec, "File %s, Dir %s\n",
-         (lpFile != NULL?lpFile:"-"),
-         (lpDirectory != NULL?lpDirectory:"-"));
-
-    lpResult[0]='\0'; /* Start off with an empty return string */
-
-    /* trap NULL parameters on entry */
-    if (( lpFile == NULL ) || ( lpResult == NULL ))
-    {
-    /* FIXME - should throw a warning, perhaps! */
-    return 2; /* File not found. Close enough, I guess. */
-    }
-
-    if (lpDirectory)
-    {
-        GetCurrentDirectory32A( sizeof(old_dir), old_dir );
-        SetCurrentDirectory32A( lpDirectory );
-    }
-
-    retval = SHELL_FindExecutable( lpFile, "open", lpResult );
-
-    TRACE(exec, "returning %s\n", lpResult);
-    if (lpDirectory) SetCurrentDirectory32A( old_dir );
-    return retval;
-}
-
-
-
-
-
-/*************************************************************************
- *             ExtractIcon32A   (SHELL32.133)
- */
-HICON32 WIN32API ExtractIcon32A( HINSTANCE32 hInstance, LPCSTR lpszExeFileName,
-    UINT32 nIconIndex )
-{
-    HGLOBAL16 handle = InternalExtractIcon(hInstance,lpszExeFileName,nIconIndex, 1);
-
-    if( handle )
-    {
-    HICON16* ptr = (HICON16*)GlobalLock16(handle);
-    HICON16  hIcon = *ptr;
-
-    GlobalFree16(handle);
-    return hIcon;
-    }
-    return 0;
-}
-
-/*************************************************************************
- *             ExtractIcon32W   (SHELL32.180)
- */
-HICON32 WIN32API ExtractIcon32W( HINSTANCE32 hInstance, LPCWSTR lpszExeFileName,
-    UINT32 nIconIndex )
-{
-    LPSTR   exefn = HEAP_strdupWtoA(GetProcessHeap(),0,lpszExeFileName);
-    HICON32 ret = ExtractIcon32A(hInstance,exefn,nIconIndex);
-
-    HeapFree(GetProcessHeap(),0,exefn);
-    return ret;
-}
-
-
-/*************************************************************************
- *              ExtractAssociatedIcon   [SHELL.36]
- *
- * Return icon for given file (either from file itself or from associated
- * executable) and patch parameters if needed.
- */
-HICON32 WIN32API ExtractAssociatedIcon32A(HINSTANCE32 hInst,LPSTR lpIconPath,
-    LPWORD lpiIcon)
-{
-    return ExtractAssociatedIcon16(hInst,lpIconPath,lpiIcon);
-}
-
-HICON16 WIN32API ExtractAssociatedIcon16(HINSTANCE16 hInst,LPSTR lpIconPath,
-    LPWORD lpiIcon)
-{
-    HICON16 hIcon = ExtractIcon16(hInst, lpIconPath, *lpiIcon);
-
-    if( hIcon < 2 )
-    {
-
-    if( hIcon == 1 ) /* no icons found in given file */
-    {
-        char  tempPath[0x80];
-        USHORT  uRet = FindExecutable16(lpIconPath,NULL,tempPath);
-
-        if( uRet > 32 && tempPath[0] )
-        {
-        strcpy(lpIconPath,tempPath);
-        hIcon = ExtractIcon16(hInst, lpIconPath, *lpiIcon);
-
-        if( hIcon > 2 ) return hIcon;
-        }
-        else hIcon = 0;
-    }
-
-    if( hIcon == 1 )
-        *lpiIcon = 2;   /* MSDOS icon - we found .exe but no icons in it */
-    else
-        *lpiIcon = 6;   /* generic icon - found nothing */
-
-    GetModuleFileName16(hInst, lpIconPath, 0x80);
-    hIcon = LoadIcon16( hInst, MAKEINTRESOURCE16(*lpiIcon));
-    }
-
-    return hIcon;
-}
-
-/*************************************************************************
- *              FindEnvironmentString   [SHELL.38]
- *
- * Returns a pointer into the DOS environment... Ugh.
- */
-LPSTR SHELL_FindString(LPSTR lpEnv, LPCSTR entry)
-{
-    USHORT  l = strlen(entry);
-    for( ; *lpEnv ; lpEnv+=strlen(lpEnv)+1 )
-    {
-    if( lstrncmpi32A(lpEnv, entry, l) ) continue;
-
-    if( !*(lpEnv+l) )
-        return (lpEnv + l);         /* empty entry */
-    else if ( *(lpEnv+l)== '=' )
-        return (lpEnv + l + 1);
-    }
-    return NULL;
-}
-
-SEGPTR WIN32API FindEnvironmentString(LPSTR str)
-{
-    SEGPTR  spEnv = GetDOSEnvironment();
-    LPSTR  lpEnv = (LPSTR)PTR_SEG_TO_LIN(spEnv);
-
-    LPSTR  lpString = (spEnv)?SHELL_FindString(lpEnv, str):NULL;
-
-    if( lpString )      /*  offset should be small enough */
-    return spEnv + (lpString - lpEnv);
-
-    return (SEGPTR)NULL;
-}
-
-/*************************************************************************
- *                      DoEnvironmentSubst      [SHELL.37]
- *
- * Replace %KEYWORD% in the str with the value of variable KEYWORD
- * from "DOS" environment.
- */
-DWORD WIN32API DoEnvironmentSubst(LPSTR str,WORD length)
-{
-  LPSTR   lpEnv = (LPSTR)PTR_SEG_TO_LIN(GetDOSEnvironment());
-  LPSTR   lpBuffer = (LPSTR)HeapAlloc( GetProcessHeap(), 0, length);
-  LPSTR   lpstr = str;
-  LPSTR   lpbstr = lpBuffer;
-
-  CharToOem32A(str,str);
-
-  TRACE(reg,"accept %s\n", str);
-
-  while( *lpstr && lpbstr - lpBuffer < length )
-   {
-     LPSTR lpend = lpstr;
-
-     if( *lpstr == '%' )
-       {
-      do { lpend++; } while( *lpend && *lpend != '%' );
-      if( *lpend == '%' && lpend - lpstr > 1 )  /* found key */
-        {
-           LPSTR lpKey;
-          *lpend = '\0';
-           lpKey = SHELL_FindString(lpEnv, lpstr+1);
-           if( lpKey )              /* found key value */
-         {
-           int l = strlen(lpKey);
-
-           if( l > length - (lpbstr - lpBuffer) - 1 )
-             {
-               WARN(reg,"Env subst aborted - string too short\n");
-              *lpend = '%';
-               break;
-             }
-           strcpy(lpbstr, lpKey);
-           lpbstr += l;
-         }
-           else break;
-          *lpend = '%';
-           lpstr = lpend + 1;
-        }
-      else break;                   /* back off and whine */
-
-      continue;
-       }
-
-     *lpbstr++ = *lpstr++;
-   }
-
- *lpbstr = '\0';
-  if( lpstr - str == strlen(str) )
-    {
-      strncpy(str, lpBuffer, length);
-      length = 1;
-    }
-  else
-      length = 0;
-
-  TRACE(reg,"    return %s\n", str);
-
-  OemToChar32A(str,str);
-  HeapFree( GetProcessHeap(), 0, lpBuffer);
-
-  /*  Return str length in the LOWORD
-   *  and 1 in HIWORD if subst was successful.
-   */
- return (DWORD)MAKELONG(strlen(str), length);
-}
-
-/*************************************************************************
- *              ShellHookProc       [SHELL.103]
- * System-wide WH_SHELL hook.
- */
-LRESULT WIN32API ShellHookProc(INT16 code, WPARAM16 wParam, LPARAM lParam)
-{
-    TRACE(reg,"%i, %04x, %08x\n", code, wParam,
-                              (unsigned)lParam );
-    if( SHELL_hHook && SHELL_hWnd )
-    {
-    USHORT  uMsg = 0;
-        switch( code )
-        {
-        case HSHELL_WINDOWCREATED:      uMsg = uMsgWndCreated;   break;
-        case HSHELL_WINDOWDESTROYED:    uMsg = uMsgWndDestroyed; break;
-        case HSHELL_ACTIVATESHELLWINDOW:    uMsg = uMsgShellActivate;
-        }
-    PostMessage16( SHELL_hWnd, uMsg, wParam, 0 );
-    }
-    return CallNextHookEx16( WH_SHELL, code, wParam, lParam );
-}
-
-/*************************************************************************
- *              RegisterShellHook   [SHELL.102]
- */
-BOOL WIN32API RegisterShellHook(HWND16 hWnd, USHORT uAction)
-{
-    TRACE(reg,"%04x [%u]\n", hWnd, uAction );
-
-    switch( uAction )
-    {
-    case 2: /* register hWnd as a shell window */
-
-         if( !SHELL_hHook )
-         {
-        HMODULE16 hShell = GetModuleHandle16( "SHELL" );
-
-        SHELL_hHook = SetWindowsHookEx16( WH_SHELL, ShellHookProc,
-                                                  hShell, 0 );
-        if( SHELL_hHook )
-        {
-            uMsgWndCreated = RegisterWindowMessage32A( lpstrMsgWndCreated );
-            uMsgWndDestroyed = RegisterWindowMessage32A( lpstrMsgWndDestroyed );
-            uMsgShellActivate = RegisterWindowMessage32A( lpstrMsgShellActivate );
-        }
-        else WARN(reg, "unable to install ShellHookProc()!\n");
-         }
-
-         if( SHELL_hHook ) return ((SHELL_hWnd = hWnd) != 0);
-         break;
-
-    default:
-
-         WARN(reg, "unknown code %i\n", uAction );
-
-         /* just in case */
-
-         SHELL_hWnd = 0;
-    }
-    return FALSE;
-}
-
-
-/*************************************************************************
- *              SHAppBarMessage32   [SHELL32.207]
- */
-UINT32 WIN32API SHAppBarMessage32(DWORD msg, PAPPBARDATA data)
-{
-    FIXME(shell,"(0x%08lx,%p): stub\n", msg, data);
-#if 0
-    switch (msg) {
-        case ABM_ACTIVATE:
-        case ABM_GETAUTOHIDEBAR:
-        case ABM_GETSTATE:
-        case ABM_GETTASKBARPOS:
-        case ABM_NEW:
-        case ABM_QUERYPOS:
-        case ABM_REMOVE:
-        case ABM_SETAUTOHIDEBAR:
-        case ABM_SETPOS:
-        case ABM_WINDOWPOSCHANGED:
-        ;
-    }
-#endif
-    return 0;
-}
-
-
-/*************************************************************************
- *              Control_RunDLL      [SHELL32.12]
- *
- * Wild speculation in the following!
- *
- * http://premium.microsoft.com/msdn/library/techart/msdn193.htm
- */
-
-void WIN32API Control_RunDLL (HWND hwnd, LPCVOID code, LPCSTR cmd, DWORD arg4)
-{
-  TRACE(exec, "(%08x, %p, \"%s\", %08lx)\n",
-    hwnd, code ? code : "(null)", cmd ? cmd : "(null)", arg4);
-}
-
-/*************************************************************************
- */
-
-void WIN32API FreeIconList( DWORD dw )
-{
-    FIXME(reg, "empty stub\n" );
-}
-
-/*************************************************************************
- *           SHELL32_DllGetClassObject   [SHELL32.14]
- *
- * http://premium.microsoft.com/msdn/library/sdkdoc/api2_48fo.htm
- */
-DWORD WIN32API SHELL32_DllGetClassObject(REFCLSID rclsid,REFIID iid,LPVOID *ppv)
-{
-    char    xclsid[50],xiid[50];
-    HRESULT hres = E_OUTOFMEMORY;
-
-
-    WINE_StringFromCLSID((LPCLSID)rclsid,xclsid);
-    WINE_StringFromCLSID((LPCLSID)iid,xiid);
-    TRACE(shell,"(%s,%s,%p)\n",xclsid,xiid,ppv);
-
-    *ppv = NULL;
-/* SDK example code looks like this:
- *
-    HRESULT hres = E_OUTOFMEMORY;
-
-    *ppv = NULL;
-    CClassFactory *pClassFactory = new CClassFactory(rclsid);
-
-    if (pClassFactory) {
-        hRes = pClassFactory->QueryInterface(riid,ppv);
-    pClassFactory->Release();
-    }
-    return hRes;
- *
- * The magic of the whole stuff is still unclear to me, so just hack together
- * something.
- */
-
-    if (!memcmp(rclsid,&CLSID_ShellDesktop,sizeof(CLSID_ShellDesktop))) {
-        TRACE(shell,"   requested CLSID_ShellDesktop, creating it.\n");
-    *ppv = IShellFolder_Constructor();
-    FIXME(shell,"Initialize this folder to be the shell desktop folder\n");
-    return 0;
-    }
-
-    FIXME(shell, "   -> clsid not found. returning E_OUTOFMEMORY.\n");
-    return hres;
-}
-
-#endif
-
-
-
-
-#if 0
-
-WINSHELLAPI HICON     APIENTRY DuplicateIcon(HINSTANCE hInst, HICON hIcon);
-WINSHELLAPI HICON     APIENTRY ExtractAssociatedIconA(HINSTANCE hInst, LPSTR lpIconPath, LPWORD lpiIcon);
-WINSHELLAPI HICON     APIENTRY ExtractAssociatedIconW(HINSTANCE hInst, LPWSTR lpIconPath, LPWORD lpiIcon);
-WINSHELLAPI UINT APIENTRY SHAppBarMessage(DWORD dwMessage, PAPPBARDATA pData);
-WINSHELLAPI DWORD   APIENTRY DoEnvironmentSubstA(LPSTR szString, UINT cbString);
-WINSHELLAPI DWORD   APIENTRY DoEnvironmentSubstW(LPWSTR szString, UINT cbString);
-WINSHELLAPI LPSTR APIENTRY FindEnvironmentStringA(LPSTR szEnvVar);
-WINSHELLAPI LPWSTR APIENTRY FindEnvironmentStringW(LPWSTR szEnvVar);
-WINSHELLAPI void WINAPI SHFreeNameMappings(HANDLE hNameMappings);
-WINSHELLAPI void WINAPI WinExecErrorA(HWND hwnd, int error, LPCSTR lpstrFileName, LPCSTR lpstrTitle);
-WINSHELLAPI void WINAPI WinExecErrorW(HWND hwnd, int error, LPCWSTR lpstrFileName, LPCWSTR lpstrTitle);
-WINSHELLAPI BOOL WINAPI SHGetNewLinkInfoA(LPCSTR pszLinkTo, LPCSTR pszDir, LPSTR pszName,
-                             BOOL FAR * pfMustCopy, UINT uFlags);
-WINSHELLAPI BOOL WINAPI SHGetNewLinkInfoW(LPCWSTR pszLinkTo, LPCWSTR pszDir, LPWSTR pszName,
-                             BOOL FAR * pfMustCopy, UINT uFlags);
-
-#endif
-
Index: trunk/src/shell32/shell32.def
===================================================================
--- trunk/src/shell32/shell32.def	(revision 75)
+++ trunk/src/shell32/shell32.def	(revision 77)
@@ -121,5 +121,5 @@
 ;   SheFullPathA               = _SheFullPathA@?                    @229
 ;   SheFullPathW               = _SheFullPathW@?                    @230
-;   SheSetCurDrive             = _SheSetCurDrive@?                  @231
+;   SheSetCurDrive             = _SheSetCurDrive@4                  @231
 ;   SheGetDirA                 = _SheGetDirA@?                      @232
 ;   SheGetDirExW               = _SheGetDirExW@?                    @233
