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