[Bug 30385] New: Windows Live Essentials 2011 web installer fails to download packages in background (shell32.SHGetKnownFolderPath missing support for KF_FLAG_DEFAULT_PATH)
wine-bugs at winehq.org
wine-bugs at winehq.org
Sun Apr 8 11:49:49 CDT 2012
http://bugs.winehq.org/show_bug.cgi?id=30385
Bug #: 30385
Summary: Windows Live Essentials 2011 web installer fails to
download packages in background
(shell32.SHGetKnownFolderPath missing support for
KF_FLAG_DEFAULT_PATH)
Product: Wine
Version: 1.5.1
Platform: x86
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: shell32
AssignedTo: wine-bugs at winehq.org
ReportedBy: focht at gmx.net
Classification: Unclassified
Hello,
installer log file:
--- snip ---
...
Downloader :00000029 (04/08/2012 17:22:39.783) Manager is removing file
transfer "Bingbar" from the queue.
PkgDownload :00000028 (04/08/2012 17:22:39.783) Download of 'Bingbar'
finished successfully.
Downloader :00000028 (04/08/2012 17:22:39.783) Completing Request
"Bingbar".
Cert :00000028 (04/08/2012 17:22:39.834) Verifying signature of
file=[C:\users\Public\Application Data\Microsoft\WLSetup\wlt6449.tmp]...
Cert :00000028 (04/08/2012 17:22:39.865) Verifying signature of
file=[C:\users\Public\Application Data\Microsoft\WLSetup\wlt6449.tmp]...
!ERROR! :00000028 (04/08/2012 17:22:40) SOURCE=Decomp, CODE=0x80070057
Leaving ExtractCabFileOutOfXSFile()
!ERROR! :00000028 (04/08/2012 17:22:40) SOURCE=Decomp, CODE=0x80070057
Leaving ExtractCabFileOutOfXSCabFile()
SecureCache :00000028 (04/08/2012 17:22:40.013) AddPackage(): Deleting file
'C:\users\Public\Application Data\Microsoft\WLSetup\wlt6449.tmp'
!ERROR! :00000028 (04/08/2012 17:22:40) SOURCE=SecureCache,
CODE=0x80070057 Leaving AddPackage()
!ERROR! :00000028 (04/08/2012 17:22:40) SOURCE=PkgDownload,
CODE=0x80070057 leaving AddPackageToCache
!ERROR! :00000028 (04/08/2012 17:22:40) SOURCE=PkgDownload,
CODE=0x80070057 Download 'Bingbar' completed with an error
(OnDownloadFinished), _fBackground=0
Task :00000028 (04/08/2012 17:22:40.030) Task(00642F88) ignoring
failure 0x80070057 for this task
TaskThread :00000028 (04/08/2012 17:22:40.030) TaskThread(00581D38):
Incrementing task completed counter for 'OnTaskComplete', Task(00642F88)
PackageDownloadTask Bingbar
TaskThread :00000028 (04/08/2012 17:22:40.030) TaskThread(00581D38):
OnTaskComplete() releasing semaphore for Task(00642F88) PackageDownloadTask
Bingbar
Task :00000028 (04/08/2012 17:22:40.040) Task(00642F88) completed
result=0x1
Engine :0000002E (04/08/2012 17:22:40.040) Overall result = 0x40690
PkgDownload :00000028 (04/08/2012 17:22:40.040) ETW: TraceDownloadState_End
- Bing Bar
...
--- snip ---
The reason is this trace log part:
--- snip ---
002b:Call shell32.SHGetKnownFolderPath(004220f0,00008400,00000000,014ad984)
ret=004567ca
002b:fixme:shell:SHGetKnownFolderPath flags 0x00008400 not supported
002b:Ret shell32.SHGetKnownFolderPath() retval=80070057 ret=004567ca
002b:Call shlwapi.PathFileExistsW(00000000) ret=00456e58
002b:Ret shlwapi.PathFileExistsW() retval=00000000 ret=00456e58
...
--- snip ---
0x8400 = KF_FLAG_CREATE | KF_FLAG_DEFAULT_PATH
Wine doesn't support KF_FLAG_DEFAULT_PATH hence SHGetKnownFolderPath() failure
causes downloaded temp files to get deleted again.
MSDN:
http://msdn.microsoft.com/en-us/library/windows/desktop/dd378447%28v=vs.85%29.aspx
Source:
http://source.winehq.org/git/wine.git/blob/798beb2cb8d07cd76494cd878ecef711ca969d92:/dlls/shell32/shellpath.c#l3036
--- snip ---
3036 HRESULT WINAPI SHGetKnownFolderPath(REFKNOWNFOLDERID rfid, DWORD flags,
HANDLE token, PWSTR *path)
3037 {
3038 HRESULT hr;
3039 WCHAR folder[MAX_PATH];
3040 int index = csidl_from_id( rfid );
3041
3042 TRACE("%s, 0x%08x, %p, %p\n", debugstr_guid(rfid), flags, token,
path);
3043
3044 *path = NULL;
3045
3046 if (index < 0)
3047 return HRESULT_FROM_WIN32( ERROR_FILE_NOT_FOUND );
3048
3049 if (flags & KF_FLAG_CREATE)
3050 index |= CSIDL_FLAG_CREATE;
3051
3052 if (flags & KF_FLAG_DONT_VERIFY)
3053 index |= CSIDL_FLAG_DONT_VERIFY;
3054
3055 if (flags & KF_FLAG_NO_ALIAS)
3056 index |= CSIDL_FLAG_NO_ALIAS;
3057
3058 if (flags & KF_FLAG_INIT)
3059 index |= CSIDL_FLAG_PER_USER_INIT;
3060
3061 if (flags &
~(KF_FLAG_CREATE|KF_FLAG_DONT_VERIFY|KF_FLAG_NO_ALIAS|KF_FLAG_INIT))
3062 {
3063 FIXME("flags 0x%08x not supported\n", flags);
3064 return E_INVALIDARG;
3065 }
3066
3067 hr = SHGetFolderPathW( NULL, index, token, 0, folder );
3068 if (SUCCEEDED(hr))
3069 {
3070 *path = CoTaskMemAlloc( (strlenW( folder ) + 1) * sizeof(WCHAR) );
3071 if (!*path)
3072 return E_OUTOFMEMORY;
3073 strcpyW( *path, folder );
3074 }
3075 return hr;
3076 }
--- snip ---
Regards
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the wine-bugs
mailing list