With this patch Explorer gets a bit further than it did before. It would seem that Shell32.201 needs a bit more investigating as Explorer seems to crash shortly after this is called. The only problem was that these ordinals were already taken by named functions, but as these weren't implemented I guessed that it would be ok. Changelog: - Add several Shell32 stubs used by Explorer
Index: wine/dlls/shell32/shell32.spec =================================================================== RCS file: /home/wine/wine/dlls/shell32/shell32.spec,v retrieving revision 1.59 diff -u -r1.59 shell32.spec --- wine/dlls/shell32/shell32.spec 3 Dec 2002 21:36:22 -0000 1.59 +++ wine/dlls/shell32/shell32.spec 4 Dec 2002 22:37:04 -0000 @@ -178,8 +178,8 @@ 197 stub SHGlobalDefect 198 stdcall SHAbortInvokeCommand () SHAbortInvokeCommand 199 stub SHGetFileIcon - 200 stub SHLocalAlloc - 201 stub SHLocalFree + @ stub SHLocalAlloc + @ stub SHLocalFree 202 stub SHLocalReAlloc 203 stub AddCommasW 204 stub ShortSizeFormatW @@ -411,3 +411,7 @@ @ stdcall SHGetFolderPathA(long long long long ptr)SHGetFolderPathA @ stdcall SHGetFolderPathW(long long long long ptr)SHGetFolderPathW @ stdcall SHGetFolderLocation(long long long long ptr)SHGetFolderLocation + +@ stdcall FixupOptionalComponents(long) FixupOptionalComponents +200 stdcall SHELL32_200(ptr) SHELL32_200 +201 stdcall SHELL32_201(long) SHELL32_201 Index: wine/dlls/shell32/shellord.c =================================================================== RCS file: /home/wine/wine/dlls/shell32/shellord.c,v retrieving revision 1.106 diff -u -r1.106 shellord.c --- wine/dlls/shell32/shellord.c 3 Dec 2002 21:36:22 -0000 1.106 +++ wine/dlls/shell32/shellord.c 4 Dec 2002 22:37:06 -0000 @@ -1389,3 +1389,61 @@ return hRes; } + +/************************************************************************* + * FixupOptionalComponents [SHELL32.@] + * + * PARAMETERS + * + * DWORD a - Haven't a clue (some sort of flag anyway) + */ +VOID WINAPI FixupOptionalComponents(DWORD a) +{ + FIXME("(0x%lx): stub\n", a); +} + +/************************************************************************* + * SHELL32_200 [SHELL32.200] + * + * PARAMETERS + * + * VOID * a - Some sort of COM interface + * + * NOTES + * + * Called by Win2k Explorer on startup. Appears to create Windows needed + * for DDE, etc. (Ie progman, DefaultIME, Shell_view) + */ +VOID * WINAPI SHELL32_200(VOID * a) +{ + FIXME("(%p): stub\n", a); + + return NULL; +} + +/************************************************************************* + * SHELL32_201 [SHELL32.201] + * + * PARAMETERS + * + * VOID * a - Some sort of COM interface / implementation + * (appears to be IUnknown [only AddRef is + * called] + 20 DWORDS) + * + * NOTES + * + * Called by Win2k Explorer on startup. Appears to block + * while waiting for a thread message. + */ +VOID * WINAPI SHELL32_201(DWORD a) +{ + MSG msg; + FIXME("(0x%lx): stub\n", a); + + while (TRUE) + { + PeekMessageW(&msg, NULL, 0, 0, 1); + FIXME("Don't know what to do with msg\n"); + } + return NULL; +}