DWORD WINAPI
ThreadFunc(LPVOID Context)
{
- IBindStatusCallback *dl;
+ IBindStatusCallback *dl = NULL;
WCHAR path[MAX_PATH];
LPWSTR p;
HWND Dlg = (HWND) Context;
BOOL bCab = FALSE;
HINTERNET hOpen = NULL;
HINTERNET hFile = NULL;
- HANDLE hOut = NULL;
+ HANDLE hOut = INVALID_HANDLE_VALUE;
unsigned char lpBuffer[4096];
const LPWSTR lpszAgent = L"RApps/1.0";
/* download it */
bTempfile = TRUE;
dl = CreateDl(Context, &bCancelled);
+ if (dl == NULL) goto end;
hOpen = InternetOpenW(lpszAgent, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
if (!hOpen) goto end;
IBindStatusCallback_OnProgress(dl, dwCurrentBytesRead, dwContentLen, 0, AppInfo->szUrlDownload);
}
while (dwBytesRead);
-
+
CloseHandle(hOut);
- if (dl) IBindStatusCallback_Release(dl);
+ hOut = INVALID_HANDLE_VALUE;
+
if (bCancelled) goto end;
ShowWindow(Dlg, SW_HIDE);
ShellExecuteW( NULL, L"open", path, NULL, NULL, SW_SHOWNORMAL );
}
end:
- CloseHandle(hOut);
+ if (hOut != INVALID_HANDLE_VALUE) CloseHandle(hOut);
InternetCloseHandle(hFile);
InternetCloseHandle(hOpen);
+ if (dl) IBindStatusCallback_Release(dl);
+
if (bTempfile)
{
if (bCancelled || (SettingsInfo.bDelInstaller && !bCab))