http://bugs.winehq.org/show_bug.cgi?id=23935
Louis Lenders xerox_xerox2000@yahoo.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |xerox_xerox2000@yahoo.co.uk Component|msi |kernel32
--- Comment #4 from Louis Lenders xerox_xerox2000@yahoo.co.uk 2010-08-13 05:46:44 --- After installing wmp9 the problem seems to be:
0038:Call KERNEL32.FindFirstFileW(001442d0 L"C:\windows\system32\WMP.DLL|wmp.dll",0032ecec) ret=681e5d06 0038:Ret KERNEL32.FindFirstFileW() retval=ffffffff ret=681e5d06
I think wine's FindFirstFileW cannot handle something like "WMP.DLL|wmp.dll"
A very sad hack like below makes the installer start and finish fine for me. I'll try to add some tests to wine's testsuite to show this problem
diff --git a/dlls/kernel32/file.c b/dlls/kernel32/file.c index edec6b0..218fa65 100644 --- a/dlls/kernel32/file.c +++ b/dlls/kernel32/file.c @@ -2053,7 +2053,21 @@ HANDLE WINAPI FindFirstFileExA( LPCSTR lpFileName, FINDEX */ HANDLE WINAPI FindFirstFileW( LPCWSTR lpFileName, WIN32_FIND_DATAW *lpFindData { - return FindFirstFileExW(lpFileName, FindExInfoStandard, lpFindData, +int i=0; +LPWSTR tempW = lpFileName, truncW = lpFileName; +WCHAR streepW[] = {'|','\0'}; + +if(strchrW(lpFileName,*streepW)) +{ + FIXME("found |\n"); + + while (*tempW != '|') + { + tempW++; + i++;} + truncW[i] = '\0'; +} + return FindFirstFileExW(truncW, FindExInfoStandard, lpFindData, FindExSearchNameMatch, NULL, 0); }