Allow file:/// protocol to be used to download the Mozilla ActiveX

control.
This commit is contained in:
Vincent Béron 2005-10-20 13:20:03 +00:00 committed by Alexandre Julliard
parent c02356b835
commit 18e909e650
1 changed files with 21 additions and 15 deletions

View File

@ -307,6 +307,7 @@ static DWORD WINAPI ThreadFunc( LPVOID info )
{
IBindStatusCallback *dl;
static const WCHAR szUrlVal[] = {'M','o','z','i','l','l','a','U','r','l',0};
static const WCHAR szFileProtocol[] = {'f','i','l','e',':','/','/','/',0};
WCHAR path[MAX_PATH], szUrl[MAX_PATH];
LPWSTR p;
STARTUPINFOW si;
@ -330,22 +331,27 @@ static DWORD WINAPI ThreadFunc( LPVOID info )
if( r != ERROR_SUCCESS )
goto end;
/* built the path for the download */
p = strrchrW( szUrl, '/' );
if (!p)
goto end;
if (!GetTempPathW( MAX_PATH, path ))
goto end;
strcatW( path, p+1 );
if( !strncmpW(szUrl, szFileProtocol, strlenW(szFileProtocol)) )
lstrcpynW( path, szUrl+strlenW(szFileProtocol), MAX_PATH );
else
{
/* built the path for the download */
p = strrchrW( szUrl, '/' );
if (!p)
goto end;
if (!GetTempPathW( MAX_PATH, path ))
goto end;
strcatW( path, p+1 );
/* download it */
bTempfile = TRUE;
dl = create_dl(info, &bCancelled);
r = URLDownloadToFileW( NULL, szUrl, path, 0, dl );
if( dl )
IBindStatusCallback_Release( dl );
if( (r != S_OK) || bCancelled )
goto end;
/* download it */
bTempfile = TRUE;
dl = create_dl(info, &bCancelled);
r = URLDownloadToFileW( NULL, szUrl, path, 0, dl );
if( dl )
IBindStatusCallback_Release( dl );
if( (r != S_OK) || bCancelled )
goto end;
}
/* run it */
memset( &si, 0, sizeof si );