You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.9 KiB
57 lines
1.9 KiB
#include "precomp.h"
|
|
|
|
#define NSUBGRPS 10
|
|
#define CSOF_FAILIFTHERE 0x80000000L // dependent on shellp.h value
|
|
|
|
extern TCHAR g_szDestCif[];
|
|
extern TCHAR g_szBuildTemp[];
|
|
extern TCHAR g_szCustIns[];
|
|
extern TCHAR g_szBuildRoot[];
|
|
extern BOOL g_fBatch, g_fIntranet;
|
|
extern PROPSHEETPAGE g_psp[];
|
|
extern int g_iCurPage;
|
|
|
|
void SetCompSize(LPTSTR szCab, LPTSTR szSect, DWORD dwInstallSize)
|
|
{
|
|
DWORD dwDownloadSize, dwTolerance, dwsHi, dwLowSize, dwHighSize;
|
|
HANDLE hCab = CreateFile(szCab, GENERIC_READ, 0, NULL, OPEN_EXISTING, NULL, NULL);
|
|
TCHAR szSize[32];
|
|
|
|
if (hCab == INVALID_HANDLE_VALUE)
|
|
return;
|
|
|
|
dwDownloadSize = GetFileSize( hCab, &dwsHi ) >> 10;
|
|
if (dwInstallSize ==0)
|
|
dwInstallSize = dwDownloadSize << 1;
|
|
CloseHandle(hCab);
|
|
wnsprintf(szSize, countof(szSize), TEXT("%i,%i"), dwDownloadSize, dwInstallSize);
|
|
|
|
ICifRWComponent * pCifRWComponent;
|
|
|
|
if (SUCCEEDED(g_lpCifRWFileDest->CreateComponent(szSect, &pCifRWComponent)))
|
|
{
|
|
pCifRWComponent->SetDownloadSize(dwDownloadSize);
|
|
pCifRWComponent->SetExtractSize(dwInstallSize);
|
|
pCifRWComponent->SetInstalledSize(0, dwInstallSize);
|
|
return;
|
|
}
|
|
|
|
if (dwDownloadSize <= 7)
|
|
dwTolerance = 100;
|
|
else
|
|
{
|
|
if (dwDownloadSize > 60)
|
|
dwTolerance = 10;
|
|
else
|
|
dwTolerance = (600 / dwDownloadSize);
|
|
}
|
|
|
|
wnsprintf(szSize, countof(szSize), TEXT("0,%i"), dwInstallSize);
|
|
WritePrivateProfileString( szSect, TEXT("InstalledSize"), szSize, g_szDestCif );
|
|
dwTolerance = (dwDownloadSize * dwTolerance) / 100;
|
|
dwLowSize = dwDownloadSize - dwTolerance;
|
|
dwHighSize = dwDownloadSize + dwTolerance;
|
|
wnsprintf(szSize, countof(szSize), TEXT("%i,%i"), dwLowSize, dwHighSize);
|
|
WritePrivateProfileString( szSect, TEXT("Size1"), szSize, g_szDestCif );
|
|
}
|
|
|