Explicit import user32.dll.
Many corrections, exported some functions by name.
diff --git a/dlls/shell32/shell32.spec b/dlls/shell32/shell32.spec
index 44e546e..d4634e2 100644
--- a/dlls/shell32/shell32.spec
+++ b/dlls/shell32/shell32.spec
@@ -3,9 +3,12 @@
init Shell32LibMain
rsrc shell32
-import ole32.dll
+import user32.dll
import comctl32.dll
+# fixme: avoid this import
+import ole32.dll
+
# Functions exported by the Win95 shell32.dll
# (these need to have these exact ordinals, for some
# win95 and winNT dlls import shell32.dll by ordinal)
@@ -39,35 +42,35 @@
27 stub ILSaveToStream@8
28 stdcall SHILCreateFromPath (long long long) SHILCreateFromPathAW
29 stdcall PathIsRoot(ptr) PathIsRootAW
- 30 stdcall PathBuildRoot(ptr long) PathBuildRootA
+ 30 stdcall PathBuildRoot(ptr long) PathBuildRootAW
31 stdcall PathFindExtension(ptr) PathFindExtensionAW
32 stdcall PathAddBackslash(ptr) PathAddBackslashAW
- 33 stdcall PathRemoveBlanks(str) PathRemoveBlanksAW
- 34 stdcall PathFindFilename(ptr) PathFindFilenameAW
- 35 stdcall PathRemoveFileSpec(str) PathRemoveFileSpecA
- 36 stdcall PathAppend(str str) PathAppendA
+ 33 stdcall PathRemoveBlanks(ptr) PathRemoveBlanksAW
+ 34 stdcall PathFindFileName(ptr) PathFindFileNameAW
+ 35 stdcall PathRemoveFileSpec(ptr) PathRemoveFileSpecAW
+ 36 stdcall PathAppend(ptr ptr) PathAppendAW
37 stdcall PathCombine(ptr ptr ptr) PathCombineAW
- 38 stub PathStripPath
+ 38 stdcall PathStripPath(ptr)PathStripPathAW
39 stdcall PathIsUNC (ptr) PathIsUNCAW
40 stdcall PathIsRelative (ptr) PathIsRelativeAW
41 stub Control_RunDLLA@16
42 stub Control_RunDLLW@16
43 stdcall PathIsExe (ptr) PathIsExeAW
44 stub DoEnvironmentSubstA@8
- 45 stdcall PathFileExists(str) PathFileExistsA
- 46 stdcall PathMatchSpec (str str) PathMatchSpecAW
- 47 stub PathMakeUniqueName@20
+ 45 stdcall PathFileExists(ptr) PathFileExistsAW
+ 46 stdcall PathMatchSpec (ptr ptr) PathMatchSpecAW
+ 47 stdcall PathMakeUniqueName (ptr long ptr ptr ptr)PathMakeUniqueNameAW
48 stdcall PathSetDlgItemPath (long long ptr) PathSetDlgItemPathAW
49 stdcall PathQualify (ptr) PathQualifyAW
- 50 stub PathStripToRoot@4
- 51 stdcall PathResolve(str long long) PathResolve
+ 50 stdcall PathStripToRoot (ptr) PathStripToRootAW
+ 51 stdcall PathResolve(str long long) PathResolveAW
52 stdcall PathGetArgs(str) PathGetArgsAW
53 stdcall DoEnvironmentSubst (long long) DoEnvironmentSubstAW
54 stdcall DragAcceptFiles(long long) DragAcceptFiles
55 stdcall PathQuoteSpaces (ptr) PathQuoteSpacesAW
56 stdcall PathUnquoteSpaces(str) PathUnquoteSpacesAW
- 57 stdcall PathGetDriveNumber(str) PathGetDriveNumberAW
- 58 stdcall ParseField(str long ptr long) ParseFieldA
+ 57 stdcall PathGetDriveNumber (str) PathGetDriveNumberAW
+ 58 stdcall ParseField(str long ptr long) ParseFieldAW
59 stub RestartDialog@12
60 stdcall ExitWindowsDialog(long) ExitWindowsDialog
61 stdcall RunFileDlg(long long long str str long) RunFileDlg
@@ -84,7 +87,7 @@
72 stdcall Shell_GetCachedImageIndex(ptr ptr long) Shell_GetCachedImageIndexAW
73 stdcall SHShellFolderView_Message(long long long) SHShellFolderView_Message
74 stub SHCreateStdEnumFmtEtc
- 75 stdcall PathYetAnotherMakeUniqueName(ptr ptr) PathYetAnotherMakeUniqueNameA
+ 75 stdcall PathYetAnotherMakeUniqueName(ptr ptr ptr ptr) PathYetAnotherMakeUniqueNameA
76 stub DragQueryInfo
77 stdcall SHMapPIDLToSystemImageListIndex(long long long) SHMapPIDLToSystemImageListIndex
78 stdcall OleStrToStrN(str long wstr long) OleStrToStrNAW
@@ -97,11 +100,11 @@
85 stdcall OpenRegStream(long long long long) OpenRegStream
86 stdcall SHRegisterDragDrop(long ptr) SHRegisterDragDrop
87 stdcall SHRevokeDragDrop(long) SHRevokeDragDrop
- 88 stdcall SHDoDragDrop(long long long long long long) SHDoDragDrop
+ 88 stdcall SHDoDragDrop(long long long long long) SHDoDragDrop
89 stdcall SHCloneSpecialIDList(long long long) SHCloneSpecialIDList
90 stub SHFindFiles
91 stub SHFindComputer
- 92 stub PathGetShortPath
+ 92 stdcall PathGetShortPath (ptr) PathGetShortPathAW
93 stub Win32CreateDirectory
94 stub Win32RemoveDirectory
95 stdcall SHLogILFromFSIL (ptr) SHLogILFromFSIL
@@ -167,7 +170,7 @@
155 stdcall ILFree (ptr) ILFree
156 stdcall ILGlobalFree (ptr) ILGlobalFree
157 stdcall ILCreateFromPath (ptr) ILCreateFromPathAW
- 158 stdcall PathGetExtension(str long long) PathGetExtensionAW
+ 158 stdcall PathGetExtension(str) PathGetExtensionAW
159 stdcall PathIsDirectory(ptr)PathIsDirectoryAW
160 stub SHNetConnectionDialog
161 stdcall SHRunControlPanel (long long) SHRunControlPanel
@@ -251,28 +254,29 @@
239 stdcall SHChangeNotify (long long ptr ptr) SHChangeNotifyAW # exported by name
240 stub SHEmptyRecycleBinA@12 # exported by name
241 stub SHEmptyRecycleBinW@12 # exported by name
- 242 stdcall SHFileOperation (ptr) SHFileOperationAW # exported by name
+ @ stdcall SHFileOperation (ptr) SHFileOperationAW
+ @ stdcall SHFileOperationA (ptr) SHFileOperationA
+ @ stdcall SHFileOperationW (ptr) SHFileOperationW
243 stdcall shell32_243(long long) shell32_243
244 stdcall SHInitRestricted(ptr ptr) SHInitRestricted # win98+ only, by ordinal
245 stub SHFormatDrive@16 # exported by name
246 stub SHFreeNameMappings@4 # exported by name
247 stdcall SHGetDataFromIDListA (ptr ptr long ptr long) SHGetDataFromIDListA
248 stdcall SHGetDataFromIDListW (ptr ptr long ptr long) SHGetDataFromIDListW
- 249 stub PathParseIconLocation@4
- 250 stub PathRemoveExtension@4
- 251 stub PathRemoveArgs@4
- 252 stdcall SHGetDesktopFolder(ptr) SHGetDesktopFolder # exported by name
- 253 stdcall SHGetFileInfo(ptr long ptr long long) SHGetFileInfoA # exported by name
- 254 stdcall SHGetFileInfoA(ptr long ptr long long) SHGetFileInfoA # exported by name
- 255 stdcall SHGetFileInfoW(ptr long ptr long long) SHGetFileInfoW # exported by name
- 256 stdcall SHGetInstanceExplorer (long) SHGetInstanceExplorer
- 257 stdcall SHGetMalloc(ptr) SHGetMalloc # exported by name
- 258 stub SHGetNewLinkInfo@20 # exported by name
- 259 stdcall SHGetPathFromIDList(ptr ptr) SHGetPathFromIDListAW # exported by name
- 260 stub SHGetPathFromIDList@8 # exported by name
- 261 stdcall SHGetPathFromIDListA (long long) SHGetPathFromIDListA # exported by name
- 262 stdcall SHGetPathFromIDListW (long long) SHGetPathFromIDListW # exported by name
- 263 stdcall SHGetSpecialFolderLocation(long long ptr) SHGetSpecialFolderLocation # exported by name
+ 249 stdcall PathParseIconLocation (ptr) PathParseIconLocationAW
+ 250 stdcall PathRemoveExtension (ptr) PathRemoveExtensionAW
+ 251 stdcall PathRemoveArgs (ptr) PathRemoveArgsAW
+ @ stdcall SHGetDesktopFolder(ptr) SHGetDesktopFolder
+ @ stdcall SHGetFileInfo(ptr long ptr long long) SHGetFileInfoAW
+ @ stdcall SHGetFileInfoA(ptr long ptr long long) SHGetFileInfoA
+ @ stdcall SHGetFileInfoW(ptr long ptr long long) SHGetFileInfoW
+ @ stdcall SHGetInstanceExplorer (long) SHGetInstanceExplorer
+ @ stdcall SHGetMalloc(ptr) SHGetMalloc
+ @ stub SHGetNewLinkInfo@20
+ @ stdcall SHGetPathFromIDList(ptr ptr) SHGetPathFromIDListAW
+ @ stdcall SHGetPathFromIDListA (long long) SHGetPathFromIDListA
+ @ stdcall SHGetPathFromIDListW (long long) SHGetPathFromIDListW
+ @ stdcall SHGetSpecialFolderLocation(long long ptr) SHGetSpecialFolderLocation # exported by name
264 stdcall SHHelpShortcuts_RunDLL(long long long long) SHHelpShortcuts_RunDLL # exported by name
265 stub SHHelpShortcuts_RunDLLA@16 # exported by name
266 stub SHHelpShortcuts_RunDLLW@16 # exported by name
@@ -367,7 +371,7 @@
647 stub ReceiveAddToRecentDocs@8
648 stub SHWaitOp_Operate@8
- 650 stub PathIsSameRoot@8
+ 650 stdcall PathIsSameRoot(ptr ptr)PathIsSameRootAW
# nt40/win98
651 stdcall ReadCabinetState (long long) ReadCabinetState
@@ -394,6 +398,4 @@
# by-name routines relocated in win98
-1224 stdcall SHFileOperationA (ptr) SHFileOperationA # exported by name
-1225 stdcall SHFileOperationW (ptr) SHFileOperationW # exported by name
-1226 stdcall DllInstall (long wstr) SHELL32_DllInstall # win98:202
+@ stdcall DllInstall (long wstr) SHELL32_DllInstall