mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-11 10:08:41 +00:00
Continuing OS/2 XPINSTALL Wizard work
This commit is contained in:
parent
40c6526d2e
commit
b018a5c2d2
@ -74,9 +74,40 @@ BOOL gbUncompressOnly;
|
||||
ULONG ulMode;
|
||||
static ULONG nTotalBytes = 0; // sum of all the FILE resources
|
||||
|
||||
char szOSTempDir[CCHMAXPATH];
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Utility Functions
|
||||
|
||||
BOOL isFAT(char* szPath)
|
||||
{
|
||||
APIRET rc;
|
||||
ULONG ulSize;
|
||||
PFSQBUFFER2 pfsqbuf2;
|
||||
CHAR szDrive[3];
|
||||
|
||||
ulSize = sizeof(FSQBUFFER2) + 3 * CCHMAXPATH;
|
||||
pfsqbuf2 = (PFSQBUFFER2)malloc(ulSize);
|
||||
strncpy(szDrive, szPath, 2);
|
||||
szDrive[2] = '\0';
|
||||
|
||||
DosError(FERR_DISABLEHARDERR);
|
||||
rc = DosQueryFSAttach(szDrive, 0, FSAIL_QUERYNAME,
|
||||
pfsqbuf2, &ulSize);
|
||||
DosError(FERR_ENABLEHARDERR);
|
||||
|
||||
if (rc == NO_ERROR) {
|
||||
if (strcmp((char*)(pfsqbuf2->szFSDName + pfsqbuf2->cbName), "FAT") == 0) {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
if (rc == NO_ERROR) {
|
||||
return FALSE;
|
||||
} else {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
HWND FindWindow(PCSZ pszAtomString)
|
||||
{
|
||||
ATOM atom;
|
||||
@ -103,39 +134,6 @@ HWND FindWindow(PCSZ pszAtomString)
|
||||
return hwnd;
|
||||
}
|
||||
|
||||
// This function is similar to GetFullPathName except instead of
|
||||
// using the current drive and directory it uses the path of the
|
||||
// directory designated for temporary files
|
||||
// If you don't specify a filename, you just get the temp dir without
|
||||
// a trailing slash
|
||||
static BOOL
|
||||
GetFullTempPathName(PCSZ szFileName, ULONG ulBufferLength, PSZ szBuffer)
|
||||
{
|
||||
ULONG ulLen;
|
||||
char *c = getenv( "TMP");
|
||||
if (c) {
|
||||
strcpy(szBuffer, c);
|
||||
} else {
|
||||
c = getenv("TEMP");
|
||||
if (c) {
|
||||
strcpy(szBuffer, c);
|
||||
}
|
||||
}
|
||||
|
||||
ulLen = strlen(szBuffer);
|
||||
if (szBuffer[ulLen - 1] != '\\')
|
||||
strcat(szBuffer, "\\");
|
||||
strcat(szBuffer, WIZ_TEMP_DIR);
|
||||
|
||||
ulLen = strlen(szBuffer);
|
||||
if ((szBuffer[ulLen - 1] != '\\') && (szFileName)) {
|
||||
strcat(szBuffer, "\\");
|
||||
strcat(szBuffer, szFileName);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// this function appends a backslash at the end of a string,
|
||||
// if one does not already exists.
|
||||
static void AppendBackSlash(PSZ szInput, ULONG ulInputSize)
|
||||
@ -152,6 +150,27 @@ static void AppendBackSlash(PSZ szInput, ULONG ulInputSize)
|
||||
}
|
||||
}
|
||||
|
||||
// This function is similar to GetFullPathName except instead of
|
||||
// using the current drive and directory it uses the path of the
|
||||
// directory designated for temporary files
|
||||
// If you don't specify a filename, you just get the temp dir without
|
||||
// a trailing slash
|
||||
static BOOL
|
||||
GetFullTempPathName(PCSZ szFileName, ULONG ulBufferLength, PSZ szBuffer)
|
||||
{
|
||||
strcpy(szBuffer, szOSTempDir);
|
||||
AppendBackSlash(szBuffer, MAX_BUF);
|
||||
strcat(szBuffer, WIZ_TEMP_DIR);
|
||||
AppendBackSlash(szBuffer, MAX_BUF);
|
||||
|
||||
if (szFileName) {
|
||||
strcat(szBuffer, szFileName);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
static void CreateDirectoriesAll(char* szPath)
|
||||
{
|
||||
int i;
|
||||
@ -550,6 +569,57 @@ main(int argc, char *argv[], char *envp[])
|
||||
hab = WinInitialize(0);
|
||||
hmq = WinCreateMsgQueue(hab,0);
|
||||
|
||||
char *tempEnvVar = NULL;
|
||||
|
||||
// determine the system's TEMP path
|
||||
tempEnvVar = getenv("TMP");
|
||||
if ((tempEnvVar) && (!(isFAT(tempEnvVar)))) {
|
||||
strcpy(szOSTempDir, tempEnvVar);
|
||||
}
|
||||
else
|
||||
{
|
||||
tempEnvVar = getenv("TEMP");
|
||||
if (tempEnvVar)
|
||||
strcpy(szOSTempDir, tempEnvVar);
|
||||
}
|
||||
if ((!tempEnvVar) || (isFAT(tempEnvVar)))
|
||||
{
|
||||
ULONG ulBootDrive = 0;
|
||||
APIRET rc;
|
||||
char buffer[] = " :\\OS2\\";
|
||||
DosQuerySysInfo(QSV_BOOT_DRIVE, QSV_BOOT_DRIVE,
|
||||
&ulBootDrive, sizeof(ulBootDrive));
|
||||
buffer[0] = 'A' - 1 + ulBootDrive;
|
||||
if (isFAT(buffer)) {
|
||||
/* Try current disk if boot drive is FAT */
|
||||
ULONG ulDriveNum;
|
||||
ULONG ulDriveMap;
|
||||
strcpy(buffer, " :\\");
|
||||
DosQueryCurrentDisk(&ulDriveNum, &ulDriveMap);
|
||||
buffer[0] = 'A' - 1 + ulDriveNum;
|
||||
if (isFAT(buffer)) {
|
||||
int i;
|
||||
for (i = 2; i < 26; i++) {
|
||||
if ((ulDriveMap<<(31-i)) >> 31) {
|
||||
buffer[0] = 'A' + i;
|
||||
if (!(isFAT(buffer))) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (i == 26) {
|
||||
char szBuf[MAX_BUF];
|
||||
WinLoadString(0, NULLHANDLE, IDS_ERROR_NO_LONG_FILENAMES, sizeof(szBuf), szBuf);
|
||||
WinMessageBox(HWND_DESKTOP, HWND_DESKTOP, szBuf, NULL, 0, MB_ICONEXCLAMATION);
|
||||
return(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
strcpy(szOSTempDir, buffer);
|
||||
strcat(szOSTempDir, "TEMP");
|
||||
}
|
||||
|
||||
|
||||
WinLoadString(0, NULLHANDLE, IDS_TITLE, MAX_BUF, szTitle);
|
||||
|
||||
#ifdef OLDCODE
|
||||
|
@ -64,6 +64,7 @@ BEGIN
|
||||
IDS_ERROR_FILE_WRITE "Unable to write file %s"
|
||||
IDS_TITLE "Installation"
|
||||
IDS_ERROR_OUT_OF_MEMORY "Out of memory!"
|
||||
IDS_ERROR_NO_LONG_FILENAMES "You must have at least one drive that supports long filenames to install this product."
|
||||
END
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -29,6 +29,7 @@
|
||||
#define IDS_ERROR_FILE_WRITE 4
|
||||
#define IDS_TITLE 5
|
||||
#define IDS_ERROR_OUT_OF_MEMORY 6
|
||||
#define IDS_ERROR_NO_LONG_FILENAMES 7
|
||||
#define IDD_EXTRACTING 101
|
||||
#define IDC_STATUS 1001
|
||||
#define IDC_GAUGE 1002
|
||||
|
@ -291,6 +291,7 @@ MRESULT EXPENTRY DirDialogProc( HWND hwndDlg, ULONG msg, MPARAM mp1, MPARAM mp2)
|
||||
{
|
||||
char szBuf[MAX_BUF];
|
||||
PFILEDLG pfiledlg;
|
||||
HRESULT hresult;
|
||||
|
||||
switch ( msg ) {
|
||||
case WM_INITDLG:
|
||||
@ -401,7 +402,10 @@ MRESULT EXPENTRY DirDialogProc( HWND hwndDlg, ULONG msg, MPARAM mp1, MPARAM mp2)
|
||||
switch ( SHORT1FROMMP( mp1 ) ) {
|
||||
case DID_OK:
|
||||
WinQueryDlgItemText(hwndDlg, 777, MAX_BUF, szBuf);
|
||||
if(*szBuf == '\0')
|
||||
if(*szBuf != '\0')
|
||||
hresult = FileExists(szBuf);
|
||||
|
||||
if ((*szBuf == '\0') || ((hresult == TRUE) && (hresult != FILE_DIRECTORY)))
|
||||
{
|
||||
char szEDestinationPath[MAX_BUF];
|
||||
|
||||
@ -410,7 +414,13 @@ MRESULT EXPENTRY DirDialogProc( HWND hwndDlg, ULONG msg, MPARAM mp1, MPARAM mp2)
|
||||
return (MRESULT)TRUE;
|
||||
}
|
||||
|
||||
if(FileExists(szBuf) == FALSE)
|
||||
if (isFAT(szBuf)) {
|
||||
GetPrivateProfileString("Messages", "ERROR_FILESYSTEM", "", szBuf, sizeof(szBuf), szFileIniInstall);
|
||||
WinMessageBox(HWND_DESKTOP, hwndDlg, szBuf, NULL, 0, MB_OK | MB_ICONEXCLAMATION);
|
||||
return (MRESULT)TRUE;
|
||||
}
|
||||
|
||||
if(hresult == FALSE)
|
||||
{
|
||||
char szMsgCreateDirectory[MAX_BUF];
|
||||
char szStrCreateDirectory[MAX_BUF];
|
||||
@ -437,7 +447,7 @@ MRESULT EXPENTRY DirDialogProc( HWND hwndDlg, ULONG msg, MPARAM mp1, MPARAM mp2)
|
||||
char szECreateDirectory[MAX_BUF];
|
||||
|
||||
strcpy(szBufTemp, "\n\n");
|
||||
strcat(szBufTemp, sgProduct.szPath);
|
||||
strcat(szBufTemp, szBuf);
|
||||
RemoveBackSlash(szBufTemp);
|
||||
strcat(szBufTemp, "\n\n");
|
||||
|
||||
@ -470,6 +480,7 @@ BOOL BrowseForDirectory(HWND hDlg, char *szCurrDir)
|
||||
char szSearchPathBuf[MAX_BUF];
|
||||
char szDlgBrowseTitle[MAX_BUF];
|
||||
BOOL bRet;
|
||||
char* caret;
|
||||
|
||||
memset(szDlgBrowseTitle, 0, sizeof(szDlgBrowseTitle));
|
||||
GetPrivateProfileString("Messages", "DLGBROWSETITLE", "", szDlgBrowseTitle, sizeof(szDlgBrowseTitle), szFileIniInstall);
|
||||
@ -483,7 +494,14 @@ BOOL BrowseForDirectory(HWND hDlg, char *szCurrDir)
|
||||
filedlg.fl = FDS_OPEN_DIALOG | FDS_CENTER;
|
||||
filedlg.pfnDlgProc = DirDialogProc;
|
||||
WinFileDlg(HWND_DESKTOP, hDlg, &filedlg);
|
||||
*(strstr(filedlg.szFullFile, "^")-1) = '\0';
|
||||
caret = strstr(filedlg.szFullFile, "^");
|
||||
if (caret) {
|
||||
*(caret-1) = '\0';
|
||||
} else {
|
||||
/* Something went horribly wrong. Usually this means they typed a filename */
|
||||
/* that actually exists. */
|
||||
/* If this is the case, use the parent directory */
|
||||
}
|
||||
|
||||
if (filedlg.lReturn == DID_OK) {
|
||||
bRet = TRUE;
|
||||
@ -558,6 +576,7 @@ MRESULT EXPENTRY DlgProcSetupType(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2)
|
||||
char szBuf[MAX_BUF];
|
||||
char szBufTemp[MAX_BUF];
|
||||
char szBufTemp2[MAX_BUF];
|
||||
HRESULT hresult;
|
||||
HOBJECT hobject;
|
||||
|
||||
hRadioSt0 = WinWindowFromID(hDlg, IDC_RADIO_ST0);
|
||||
@ -579,6 +598,7 @@ MRESULT EXPENTRY DlgProcSetupType(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2)
|
||||
WinSetWindowText(hDlg, diSetupType.szTitle);
|
||||
|
||||
hDestinationPath = WinWindowFromID(hDlg, IDC_EDIT_DESTINATION); /* handle to the static destination path text window */
|
||||
strcpy(szTempSetupPath, sgProduct.szPath);
|
||||
TruncateString(hDestinationPath, szTempSetupPath, szBuf, sizeof(szBuf));
|
||||
|
||||
WinSetDlgItemText(hDlg, IDC_EDIT_DESTINATION, szBuf);
|
||||
@ -669,7 +689,10 @@ MRESULT EXPENTRY DlgProcSetupType(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2)
|
||||
0,
|
||||
SWP_MOVE);
|
||||
|
||||
if((*diSetupType.szReadmeFilename == '\0') || (FileExists(diSetupType.szReadmeFilename) == FALSE))
|
||||
strcpy(szBuf, szSetupDir);
|
||||
AppendBackSlash(szBuf, sizeof(szBuf));
|
||||
strcat(szBuf, diSetupType.szReadmeFilename);
|
||||
if((*diSetupType.szReadmeFilename == '\0') || (FileExists(szBuf) == FALSE))
|
||||
WinShowWindow(hReadme, FALSE);
|
||||
else
|
||||
WinShowWindow(hReadme, TRUE);
|
||||
@ -715,16 +738,20 @@ MRESULT EXPENTRY DlgProcSetupType(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2)
|
||||
break;
|
||||
|
||||
case IDC_README:
|
||||
#ifdef OLDCODE /* NEeds to be written */
|
||||
// if(*diSetupType.szReadmeApp == '\0') {
|
||||
if(*diSetupType.szReadmeApp != '\0') {
|
||||
STARTDATA startdata;
|
||||
PID pid;
|
||||
ULONG ulSessID;
|
||||
|
||||
memset(&startdata, 0, sizeof(STARTDATA));
|
||||
startdata.Length = sizeof(STARTDATA);
|
||||
startdata.PgmName = diSetupType.szReadmeApp;
|
||||
strcpy(szBuf, szSetupDir);
|
||||
AppendBackSlash(szBuf, sizeof(szBuf));
|
||||
strcat(szBuf, diSetupType.szReadmeFilename);
|
||||
WinOpenObject(WinQueryObject(szBuf), 0, TRUE);
|
||||
// WinOpenObject(WinQueryObject(szBuf), 0, TRUE);
|
||||
// }
|
||||
// else
|
||||
// WinSpawn(diSetupType.szReadmeApp, diSetupType.szReadmeFilename, szSetupDir, TRUENORMAL, FALSE);
|
||||
#endif
|
||||
startdata.PgmInputs = szBuf;
|
||||
DosStartSession(&startdata, &ulSessID, &pid); /* Start the session */
|
||||
}
|
||||
return (MRESULT)TRUE;
|
||||
break;
|
||||
|
||||
@ -733,6 +760,22 @@ MRESULT EXPENTRY DlgProcSetupType(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2)
|
||||
|
||||
strcpy(szBuf, sgProduct.szPath);
|
||||
|
||||
if (isFAT(szBuf)) {
|
||||
GetPrivateProfileString("Messages", "ERROR_FILESYSTEM", "", szBuf, sizeof(szBuf), szFileIniInstall);
|
||||
WinMessageBox(HWND_DESKTOP, hDlg, szBuf, NULL, 0, MB_OK | MB_ICONEXCLAMATION);
|
||||
return (MRESULT)TRUE;
|
||||
}
|
||||
|
||||
hresult = FileExists(szBuf);
|
||||
if ((hresult == TRUE) && (hresult != FILE_DIRECTORY))
|
||||
{
|
||||
char szEDestinationPath[MAX_BUF];
|
||||
|
||||
GetPrivateProfileString("Messages", "ERROR_DESTINATION_PATH", "", szEDestinationPath, sizeof(szEDestinationPath), szFileIniInstall);
|
||||
WinMessageBox(HWND_DESKTOP, hDlg, szEDestinationPath, NULL, 0, MB_OK | MB_ICONEXCLAMATION);
|
||||
return (MRESULT)TRUE;
|
||||
}
|
||||
|
||||
if(FileExists(szBuf) == FALSE)
|
||||
{
|
||||
char szMsgCreateDirectory[MAX_BUF];
|
||||
@ -826,13 +869,12 @@ MRESULT EXPENTRY DlgProcSetupType(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2)
|
||||
|
||||
case IDWIZBACK:
|
||||
ulTempSetupType = ulSetupType;
|
||||
strcpy(szTempSetupPath, sgProduct.szPath);
|
||||
strcpy(sgProduct.szPath, szTempSetupPath);
|
||||
WinDestroyWindow(hDlg);
|
||||
DlgSequence(PREV_DLG);
|
||||
break;
|
||||
|
||||
case IDCANCEL:
|
||||
strcpy(sgProduct.szPath, szTempSetupPath);
|
||||
AskCancelDlg(hDlg);
|
||||
return (MRESULT)TRUE;
|
||||
break;
|
||||
@ -1147,6 +1189,151 @@ MRESULT EXPENTRY DlgProcSelectComponents(HWND hDlg, ULONG msg, MPARAM mp1, MPARA
|
||||
return(WinDefDlgProc(hDlg, msg, mp1, mp2));
|
||||
}
|
||||
|
||||
MRESULT APIENTRY DlgProcOS2Integration(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2)
|
||||
{
|
||||
char szBuf[MAX_BUF];
|
||||
HWND hcbCheck0;
|
||||
HWND hcbCheck1;
|
||||
HWND hcbCheck2;
|
||||
HWND hcbCheck3;
|
||||
HWND hDestinationPath;
|
||||
SWP swpDlg;
|
||||
|
||||
hcbCheck0 = WinWindowFromID(hDlg, IDC_CHECK0);
|
||||
hcbCheck1 = WinWindowFromID(hDlg, IDC_CHECK1);
|
||||
hcbCheck2 = WinWindowFromID(hDlg, IDC_CHECK2);
|
||||
hcbCheck3 = WinWindowFromID(hDlg, IDC_CHECK3);
|
||||
|
||||
switch(msg)
|
||||
{
|
||||
case WM_INITDLG:
|
||||
AdjustDialogSize(hDlg);
|
||||
WinSetPresParam(hDlg, PP_FONTNAMESIZE,
|
||||
strlen(sgInstallGui.szDefinedFont)+1, sgInstallGui.szDefinedFont);
|
||||
WinSetWindowText(hDlg, diOS2Integration.szTitle);
|
||||
|
||||
if (diOS2Integration.szHomeDirectory[0]) {
|
||||
strcpy(szTempSetupPath, diOS2Integration.szHomeDirectory);
|
||||
hDestinationPath = WinWindowFromID(hDlg, IDC_EDIT_DESTINATION); /* handle to the static destination path text window */
|
||||
TruncateString(hDestinationPath, szTempSetupPath, szBuf, sizeof(szBuf));
|
||||
} else {
|
||||
strcpy(szTempSetupPath, sgProduct.szPath);
|
||||
hDestinationPath = WinWindowFromID(hDlg, IDC_EDIT_DESTINATION); /* handle to the static destination path text window */
|
||||
TruncateString(hDestinationPath, szTempSetupPath, szBuf, sizeof(szBuf));
|
||||
}
|
||||
|
||||
WinSetDlgItemText(hDlg, IDC_EDIT_DESTINATION, szBuf);
|
||||
|
||||
WinSetDlgItemText(hDlg, IDC_MESSAGE0, diOS2Integration.szMessage0);
|
||||
WinSetDlgItemText(hDlg, IDC_MESSAGE1, diOS2Integration.szMessage1);
|
||||
|
||||
if(diOS2Integration.oiCBMakeDefaultBrowser.bEnabled)
|
||||
{
|
||||
WinShowWindow(hcbCheck0, TRUE);
|
||||
WinCheckButton(hDlg, IDC_CHECK0, diOS2Integration.oiCBMakeDefaultBrowser.bCheckBoxState);
|
||||
WinSetDlgItemText(hDlg, IDC_CHECK0, diOS2Integration.oiCBMakeDefaultBrowser.szDescription);
|
||||
}
|
||||
else
|
||||
WinShowWindow(hcbCheck0, FALSE);
|
||||
|
||||
if(diOS2Integration.oiCBAssociateHTML.bEnabled)
|
||||
{
|
||||
WinShowWindow(hcbCheck1, TRUE);
|
||||
WinCheckButton(hDlg, IDC_CHECK1, diOS2Integration.oiCBAssociateHTML.bCheckBoxState);
|
||||
WinSetDlgItemText(hDlg, IDC_CHECK1, diOS2Integration.oiCBAssociateHTML.szDescription);
|
||||
}
|
||||
else
|
||||
WinShowWindow(hcbCheck1, FALSE);
|
||||
|
||||
if(diOS2Integration.oiCBUpdateCONFIGSYS.bEnabled)
|
||||
{
|
||||
WinShowWindow(hcbCheck2, TRUE);
|
||||
WinCheckButton(hDlg, IDC_CHECK2, diOS2Integration.oiCBUpdateCONFIGSYS.bCheckBoxState);
|
||||
WinSetDlgItemText(hDlg, IDC_CHECK2, diOS2Integration.oiCBUpdateCONFIGSYS.szDescription);
|
||||
}
|
||||
else
|
||||
WinShowWindow(hcbCheck2, FALSE);
|
||||
|
||||
WinQueryWindowPos(hDlg, &swpDlg);
|
||||
WinSetWindowPos(hDlg,
|
||||
HWND_TOP,
|
||||
(gSystemInfo.lScreenX/2)-(swpDlg.cx/2),
|
||||
(gSystemInfo.lScreenY/2)-(swpDlg.cy/2),
|
||||
0,
|
||||
0,
|
||||
SWP_MOVE);
|
||||
|
||||
WinSetDlgItemText(hDlg, IDC_BUTTON_BROWSE, sgInstallGui.szBrowse_);
|
||||
WinSetDlgItemText(hDlg, IDWIZBACK, sgInstallGui.szBack_);
|
||||
WinSetDlgItemText(hDlg, IDWIZNEXT, sgInstallGui.szNext_);
|
||||
WinSetDlgItemText(hDlg, IDCANCEL, sgInstallGui.szCancel_);
|
||||
break;
|
||||
|
||||
case WM_CLOSE:
|
||||
AskCancelDlg(hDlg);
|
||||
return (MRESULT)TRUE;
|
||||
break;
|
||||
|
||||
case WM_COMMAND:
|
||||
switch ( SHORT1FROMMP( mp1 ) )
|
||||
{
|
||||
case IDC_BUTTON_BROWSE:
|
||||
if (BrowseForDirectory(hDlg, szTempSetupPath)) {
|
||||
strcpy(diOS2Integration.szHomeDirectory, szTempSetupPath);
|
||||
}
|
||||
|
||||
hDestinationPath = WinWindowFromID(hDlg, IDC_EDIT_DESTINATION); /* handle to the static destination path text window */
|
||||
TruncateString(hDestinationPath, szTempSetupPath, szBuf, sizeof(szBuf));
|
||||
WinSetDlgItemText(hDlg, IDC_EDIT_DESTINATION, szBuf);
|
||||
return (MRESULT)TRUE;
|
||||
break;
|
||||
case IDWIZNEXT:
|
||||
if(diOS2Integration.oiCBMakeDefaultBrowser.bEnabled)
|
||||
{
|
||||
if(WinQueryButtonCheckstate(hDlg, IDC_CHECK0) == 1)
|
||||
diOS2Integration.oiCBMakeDefaultBrowser.bCheckBoxState = TRUE;
|
||||
else
|
||||
diOS2Integration.oiCBMakeDefaultBrowser.bCheckBoxState = FALSE;
|
||||
}
|
||||
|
||||
if(diOS2Integration.oiCBAssociateHTML.bEnabled)
|
||||
{
|
||||
if(WinQueryButtonCheckstate(hDlg, IDC_CHECK1) == 1)
|
||||
diOS2Integration.oiCBAssociateHTML.bCheckBoxState = TRUE;
|
||||
else
|
||||
diOS2Integration.oiCBAssociateHTML.bCheckBoxState = FALSE;
|
||||
}
|
||||
|
||||
if(diOS2Integration.oiCBUpdateCONFIGSYS.bEnabled)
|
||||
{
|
||||
if(WinQueryButtonCheckstate(hDlg, IDC_CHECK2) == 1)
|
||||
diOS2Integration.oiCBUpdateCONFIGSYS.bCheckBoxState = TRUE;
|
||||
else
|
||||
diOS2Integration.oiCBUpdateCONFIGSYS.bCheckBoxState = FALSE;
|
||||
}
|
||||
|
||||
WinDestroyWindow(hDlg);
|
||||
DlgSequence(NEXT_DLG);
|
||||
break;
|
||||
|
||||
case IDWIZBACK:
|
||||
WinDestroyWindow(hDlg);
|
||||
DlgSequence(PREV_DLG);
|
||||
break;
|
||||
|
||||
case IDCANCEL:
|
||||
AskCancelDlg(hDlg);
|
||||
return (MRESULT)TRUE;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return(WinDefDlgProc(hDlg, msg, mp1, mp2));
|
||||
}
|
||||
|
||||
void SaveDownloadProtocolOption(HWND hDlg)
|
||||
{
|
||||
if(WinQueryButtonCheckstate(hDlg, IDC_USE_FTP) == 1)
|
||||
@ -2011,6 +2198,9 @@ void DlgSequence(int iDirection)
|
||||
ulWizardState = DLG_SELECT_COMPONENTS;
|
||||
break;
|
||||
case DLG_SELECT_COMPONENTS:
|
||||
ulWizardState = DLG_OS2_INTEGRATION;
|
||||
break;
|
||||
case DLG_OS2_INTEGRATION:
|
||||
ulWizardState = DLG_ADDITIONAL_OPTIONS;
|
||||
break;
|
||||
case DLG_ADDITIONAL_OPTIONS:
|
||||
@ -2041,9 +2231,12 @@ void DlgSequence(int iDirection)
|
||||
case DLG_SELECT_COMPONENTS:
|
||||
ulWizardState = DLG_SETUP_TYPE;
|
||||
break;
|
||||
case DLG_ADDITIONAL_OPTIONS:
|
||||
case DLG_OS2_INTEGRATION:
|
||||
ulWizardState = DLG_SELECT_COMPONENTS;
|
||||
break;
|
||||
case DLG_ADDITIONAL_OPTIONS:
|
||||
ulWizardState = DLG_OS2_INTEGRATION;
|
||||
break;
|
||||
case DLG_START_INSTALL:
|
||||
ulWizardState = DLG_ADDITIONAL_OPTIONS;
|
||||
break;
|
||||
@ -2109,6 +2302,14 @@ void DlgSequence(int iDirection)
|
||||
}
|
||||
break;
|
||||
|
||||
case DLG_OS2_INTEGRATION:
|
||||
if(diOS2Integration.bShowDialog)
|
||||
{
|
||||
hDlgCurrent = InstantiateDialog(hWndMain, ulWizardState, diOS2Integration.szTitle, DlgProcOS2Integration);
|
||||
bDone = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
case DLG_ADVANCED_SETTINGS:
|
||||
if(diAdvancedSettings.bShowDialog)
|
||||
{
|
||||
@ -2117,7 +2318,7 @@ void DlgSequence(int iDirection)
|
||||
}
|
||||
break;
|
||||
|
||||
case DLG_ADDITIONAL_OPTIONS:
|
||||
case DLG_ADDITIONAL_OPTIONS:
|
||||
do
|
||||
{
|
||||
hrValue = VerifyDiskSpace();
|
||||
@ -2281,12 +2482,14 @@ void CommitInstall(void)
|
||||
/* DEPEND_REBOOT process file manipulation functions */
|
||||
ProcessFileOpsForAll(T_DEPEND_REBOOT);
|
||||
|
||||
ProcessOS2Integration();
|
||||
|
||||
UnsetSetupState(); // clear setup state
|
||||
if(!gbIgnoreProgramFolderX)
|
||||
ProcessProgramFolderShowCmd();
|
||||
|
||||
CleanupArgsRegistry();
|
||||
CleanupPreviousVersionRegKeys();
|
||||
// CleanupPreviousVersionRegKeys();
|
||||
if(NeedReboot())
|
||||
{
|
||||
CleanupXpcomFile();
|
||||
|
@ -31,8 +31,7 @@ MRESULT EXPENTRY DlgProcLicense(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2);
|
||||
MRESULT EXPENTRY DlgProcSetupType(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2);
|
||||
MRESULT EXPENTRY DlgProcSelectComponents(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2);
|
||||
MRESULT EXPENTRY DlgProcSelectAdditionalComponents(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2);
|
||||
LRESULT CALLBACK DlgProcWindowsIntegration(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam);
|
||||
LRESULT CALLBACK DlgProcProgramFolder(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam);
|
||||
MRESULT EXPENTRY DlgProcOS2Integration(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2);
|
||||
MRESULT EXPENTRY DlgProcAdditionalOptions(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2);
|
||||
MRESULT EXPENTRY DlgProcAdvancedSettings(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2);
|
||||
LRESULT CALLBACK DlgProcQuickLaunch(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam);
|
||||
|
@ -74,7 +74,7 @@ extern diL diLicense;
|
||||
extern diST diSetupType;
|
||||
extern diSC diSelectComponents;
|
||||
extern diSC diSelectAdditionalComponents;
|
||||
extern diWI diWindowsIntegration;
|
||||
extern diOI diOS2Integration;
|
||||
extern diPF diProgramFolder;
|
||||
extern diDO diAdditionalOptions;
|
||||
extern diAS diAdvancedSettings;
|
||||
|
@ -372,7 +372,7 @@ HRESULT Initialize(HMODULE hInstance, PSZ szAppName)
|
||||
|
||||
// determine the system's TEMP path
|
||||
tempEnvVar = getenv("TMP");
|
||||
if (tempEnvVar) {
|
||||
if ((tempEnvVar) && (!(isFAT(tempEnvVar)))) {
|
||||
strcpy(szTempDir, tempEnvVar);
|
||||
}
|
||||
else
|
||||
@ -381,7 +381,7 @@ HRESULT Initialize(HMODULE hInstance, PSZ szAppName)
|
||||
if (tempEnvVar)
|
||||
strcpy(szTempDir, tempEnvVar);
|
||||
}
|
||||
if (!tempEnvVar)
|
||||
if ((!tempEnvVar) || (isFAT(tempEnvVar)))
|
||||
{
|
||||
ULONG ulBootDrive = 0;
|
||||
APIRET rc;
|
||||
@ -389,6 +389,31 @@ HRESULT Initialize(HMODULE hInstance, PSZ szAppName)
|
||||
DosQuerySysInfo(QSV_BOOT_DRIVE, QSV_BOOT_DRIVE,
|
||||
&ulBootDrive, sizeof(ulBootDrive));
|
||||
buffer[0] = 'A' - 1 + ulBootDrive;
|
||||
if (isFAT(buffer)) {
|
||||
/* Try current disk if boot drive is FAT */
|
||||
ULONG ulDriveNum;
|
||||
ULONG ulDriveMap;
|
||||
strcpy(buffer, " :\\");
|
||||
DosQueryCurrentDisk(&ulDriveNum, &ulDriveMap);
|
||||
buffer[0] = 'A' - 1 + ulDriveNum;
|
||||
if (isFAT(buffer)) {
|
||||
int i;
|
||||
for (i = 2; i < 26; i++) {
|
||||
if ((ulDriveMap<<(31-i)) >> 31) {
|
||||
buffer[0] = 'A' + i;
|
||||
if (!(isFAT(buffer))) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (i == 26) {
|
||||
char szBuf[MAX_BUF];
|
||||
if(NS_LoadString(hSetupRscInst, IDS_ERROR_NO_LONG_FILENAMES, szBuf, MAX_BUF) == WIZ_OK)
|
||||
WinMessageBox(HWND_DESKTOP, HWND_DESKTOP, szBuf, NULL, 0, MB_ICONEXCLAMATION);
|
||||
return(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
strcpy(szTempDir, buffer);
|
||||
strcat(szTempDir, "TEMP");
|
||||
}
|
||||
@ -1750,6 +1775,48 @@ HRESULT LaunchApps()
|
||||
return(0);
|
||||
}
|
||||
|
||||
HRESULT ProcessOS2Integration()
|
||||
{
|
||||
if (diOS2Integration.oiCBMakeDefaultBrowser.bCheckBoxState == TRUE) {
|
||||
HOBJECT hObjURL = NULLHANDLE;
|
||||
CHAR szSetupString[1000];
|
||||
CHAR szTemp[CCHMAXPATH];
|
||||
strcpy(szSetupString, "OBJECTID=<MOZTEMPCONVERSIONURL>");
|
||||
sprintf(szTemp, "%s\\%s", sgProduct.szPath, sgProduct.szProgramName);
|
||||
strcat(szSetupString, ";DEFAULTBROWSER=");
|
||||
strcat(szSetupString, szTemp) ;
|
||||
PrfWriteProfileString(HINI_USER,
|
||||
"WPURLDEFAULTSETTINGS",
|
||||
"DefaultBrowserExe",
|
||||
szTemp ) ;
|
||||
|
||||
strcat(szSetupString, ";DEFAULTWORKINGDIR=");
|
||||
strcat(szSetupString, sgProduct.szPath);
|
||||
PrfWriteProfileString(HINI_USER,
|
||||
"WPURLDEFAULTSETTINGS",
|
||||
"DefaultWorkingDir",
|
||||
sgProduct.szPath);
|
||||
|
||||
#ifdef OLDCODE
|
||||
strcat(szSetupString, ";PARAMETERS=");
|
||||
strcat(szSetupString, pszDefaultParms);
|
||||
PrfWriteProfileString(HINI_USER,
|
||||
"WPURLDEFAULTSETTINGS",
|
||||
"DefaultParameters",
|
||||
pszDefaultParms);
|
||||
#endif
|
||||
if (hObjURL = WinCreateObject("WPUrl",
|
||||
"Temporary URL",
|
||||
szSetupString,
|
||||
"<WP_NOWHERE>",
|
||||
CO_REPLACEIFEXISTS))
|
||||
{
|
||||
WinDestroyObject(hObjURL);
|
||||
}
|
||||
}
|
||||
return(0);
|
||||
}
|
||||
|
||||
char *GetOSTypeString(char *szOSType, ULONG ulOSTypeBufSize)
|
||||
{
|
||||
memset(szOSType, 0, ulOSTypeBufSize);
|
||||
@ -2003,7 +2070,7 @@ void DeInitDlgSelectComponents(diSC *diDialog)
|
||||
FreeMemory(&(diDialog->szMessage0));
|
||||
}
|
||||
|
||||
HRESULT InitDlgWindowsIntegration(diWI *diDialog)
|
||||
HRESULT InitDlgOS2Integration(diOI *diDialog)
|
||||
{
|
||||
diDialog->bShowDialog = FALSE;
|
||||
if((diDialog->szTitle = NS_GlobalAlloc(MAX_BUF)) == NULL)
|
||||
@ -2012,52 +2079,37 @@ HRESULT InitDlgWindowsIntegration(diWI *diDialog)
|
||||
exit(1);
|
||||
if((diDialog->szMessage1 = NS_GlobalAlloc(MAX_BUF)) == NULL)
|
||||
exit(1);
|
||||
if((diDialog->szHomeDirectory = NS_GlobalAlloc(MAX_BUF)) == NULL)
|
||||
exit(1);
|
||||
|
||||
diDialog->wiCB0.bEnabled = FALSE;
|
||||
diDialog->wiCB1.bEnabled = FALSE;
|
||||
diDialog->wiCB2.bEnabled = FALSE;
|
||||
diDialog->wiCB3.bEnabled = FALSE;
|
||||
diDialog->oiCBMakeDefaultBrowser.bEnabled = FALSE;
|
||||
diDialog->oiCBAssociateHTML.bEnabled = FALSE;
|
||||
diDialog->oiCBUpdateCONFIGSYS.bEnabled = FALSE;
|
||||
|
||||
diDialog->wiCB0.bCheckBoxState = FALSE;
|
||||
diDialog->wiCB1.bCheckBoxState = FALSE;
|
||||
diDialog->wiCB2.bCheckBoxState = FALSE;
|
||||
diDialog->wiCB3.bCheckBoxState = FALSE;
|
||||
diDialog->oiCBMakeDefaultBrowser.bCheckBoxState = FALSE;
|
||||
diDialog->oiCBAssociateHTML.bCheckBoxState = FALSE;
|
||||
diDialog->oiCBUpdateCONFIGSYS.bCheckBoxState = FALSE;
|
||||
|
||||
if((diDialog->wiCB0.szDescription = NS_GlobalAlloc(MAX_BUF)) == NULL)
|
||||
if((diDialog->oiCBMakeDefaultBrowser.szDescription = NS_GlobalAlloc(MAX_BUF)) == NULL)
|
||||
return(1);
|
||||
if((diDialog->wiCB1.szDescription = NS_GlobalAlloc(MAX_BUF)) == NULL)
|
||||
if((diDialog->oiCBAssociateHTML.szDescription = NS_GlobalAlloc(MAX_BUF)) == NULL)
|
||||
return(1);
|
||||
if((diDialog->wiCB2.szDescription = NS_GlobalAlloc(MAX_BUF)) == NULL)
|
||||
return(1);
|
||||
if((diDialog->wiCB3.szDescription = NS_GlobalAlloc(MAX_BUF)) == NULL)
|
||||
return(1);
|
||||
|
||||
if((diDialog->wiCB0.szArchive = NS_GlobalAlloc(MAX_BUF)) == NULL)
|
||||
return(1);
|
||||
if((diDialog->wiCB1.szArchive = NS_GlobalAlloc(MAX_BUF)) == NULL)
|
||||
return(1);
|
||||
if((diDialog->wiCB2.szArchive = NS_GlobalAlloc(MAX_BUF)) == NULL)
|
||||
return(1);
|
||||
if((diDialog->wiCB3.szArchive = NS_GlobalAlloc(MAX_BUF)) == NULL)
|
||||
if((diDialog->oiCBUpdateCONFIGSYS.szDescription = NS_GlobalAlloc(MAX_BUF)) == NULL)
|
||||
return(1);
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
void DeInitDlgWindowsIntegration(diWI *diDialog)
|
||||
void DeInitDlgOS2Integration(diOI *diDialog)
|
||||
{
|
||||
FreeMemory(&(diDialog->szTitle));
|
||||
FreeMemory(&(diDialog->szMessage0));
|
||||
FreeMemory(&(diDialog->szMessage1));
|
||||
FreeMemory(&(diDialog->szHomeDirectory));
|
||||
|
||||
FreeMemory(&(diDialog->wiCB0.szDescription));
|
||||
FreeMemory(&(diDialog->wiCB1.szDescription));
|
||||
FreeMemory(&(diDialog->wiCB2.szDescription));
|
||||
FreeMemory(&(diDialog->wiCB3.szDescription));
|
||||
FreeMemory(&(diDialog->wiCB0.szArchive));
|
||||
FreeMemory(&(diDialog->wiCB1.szArchive));
|
||||
FreeMemory(&(diDialog->wiCB2.szArchive));
|
||||
FreeMemory(&(diDialog->wiCB3.szArchive));
|
||||
FreeMemory(&(diDialog->oiCBMakeDefaultBrowser.szDescription));
|
||||
FreeMemory(&(diDialog->oiCBAssociateHTML.szDescription));
|
||||
FreeMemory(&(diDialog->oiCBUpdateCONFIGSYS.szDescription));
|
||||
}
|
||||
|
||||
HRESULT InitDlgProgramFolder(diPF *diDialog)
|
||||
@ -4969,7 +5021,7 @@ HRESULT ParseConfigIni(int argc, char *argv[])
|
||||
return(1);
|
||||
if(InitDlgSelectComponents(&diSelectAdditionalComponents, SM_SINGLE))
|
||||
return(1);
|
||||
if(InitDlgWindowsIntegration(&diWindowsIntegration))
|
||||
if(InitDlgOS2Integration(&diOS2Integration))
|
||||
return(1);
|
||||
if(InitDlgProgramFolder(&diProgramFolder))
|
||||
return(1);
|
||||
@ -5152,20 +5204,13 @@ HRESULT ParseConfigIni(int argc, char *argv[])
|
||||
if(strcmpi(szShowDialog, "TRUE") == 0)
|
||||
diSelectAdditionalComponents.bShowDialog = TRUE;
|
||||
|
||||
/* Windows Integration dialog */
|
||||
GetPrivateProfileString("Dialog Windows Integration", "Show Dialog", "", szShowDialog, sizeof(szShowDialog), szFileIniConfig);
|
||||
GetPrivateProfileString("Dialog Windows Integration", "Title", "", diWindowsIntegration.szTitle, MAX_BUF, szFileIniConfig);
|
||||
GetPrivateProfileString("Dialog Windows Integration", "Message0", "", diWindowsIntegration.szMessage0, MAX_BUF, szFileIniConfig);
|
||||
GetPrivateProfileString("Dialog Windows Integration", "Message1", "", diWindowsIntegration.szMessage1, MAX_BUF, szFileIniConfig);
|
||||
/* OS/2 Integration dialog */
|
||||
GetPrivateProfileString("Dialog OS/2 Integration", "Show Dialog", "", szShowDialog, sizeof(szShowDialog), szFileIniConfig);
|
||||
GetPrivateProfileString("Dialog OS/2 Integration", "Title", "", diOS2Integration.szTitle, MAX_BUF, szFileIniConfig);
|
||||
GetPrivateProfileString("Dialog OS/2 Integration", "Message0", "", diOS2Integration.szMessage0, MAX_BUF, szFileIniConfig);
|
||||
GetPrivateProfileString("Dialog OS/2 Integration", "Message1", "", diOS2Integration.szMessage1, MAX_BUF, szFileIniConfig);
|
||||
if(strcmpi(szShowDialog, "TRUE") == 0)
|
||||
diWindowsIntegration.bShowDialog = TRUE;
|
||||
|
||||
/* Program Folder dialog */
|
||||
GetPrivateProfileString("Dialog Program Folder", "Show Dialog", "", szShowDialog, sizeof(szShowDialog), szFileIniConfig);
|
||||
GetPrivateProfileString("Dialog Program Folder", "Title", "", diProgramFolder.szTitle, MAX_BUF, szFileIniConfig);
|
||||
GetPrivateProfileString("Dialog Program Folder", "Message0", "", diProgramFolder.szMessage0, MAX_BUF, szFileIniConfig);
|
||||
if(strcmpi(szShowDialog, "TRUE") == 0)
|
||||
diProgramFolder.bShowDialog = TRUE;
|
||||
diOS2Integration.bShowDialog = TRUE;
|
||||
|
||||
/* Additional Options dialog */
|
||||
GetPrivateProfileString("Dialog Additional Options", "Show Dialog", "", szShowDialog, sizeof(szShowDialog), szFileIniConfig);
|
||||
@ -5221,7 +5266,7 @@ HRESULT ParseConfigIni(int argc, char *argv[])
|
||||
else
|
||||
diAdditionalOptions.bShowProtocols = TRUE;
|
||||
|
||||
/* Program Folder dialog */
|
||||
/* Quick Launch dialog */
|
||||
GetPrivateProfileString("Dialog Quick Launch", "Show Dialog", "", szShowDialog, sizeof(szShowDialog), szFileIniConfig);
|
||||
GetPrivateProfileString("Dialog Quick Launch", "Title", "", diQuickLaunch.szTitle, MAX_BUF, szFileIniConfig);
|
||||
GetPrivateProfileString("Dialog Quick Launch", "Message0", "", diQuickLaunch.szMessage0, MAX_BUF, szFileIniConfig);
|
||||
@ -5262,45 +5307,32 @@ HRESULT ParseConfigIni(int argc, char *argv[])
|
||||
else if(strcmpi(szShowDialog, "AUTO") == 0)
|
||||
diReboot.dwShowDialog = AUTO;
|
||||
|
||||
GetPrivateProfileString("Windows Integration-Item0", "CheckBoxState", "", szBuf, sizeof(szBuf), szFileIniConfig);
|
||||
GetPrivateProfileString("Windows Integration-Item0", "Description", "", diWindowsIntegration.wiCB0.szDescription, MAX_BUF, szFileIniConfig);
|
||||
GetPrivateProfileString("Windows Integration-Item0", "Archive", "", diWindowsIntegration.wiCB0.szArchive, MAX_BUF, szFileIniConfig);
|
||||
GetPrivateProfileString("OS/2 Integration-Item0", "CheckBoxState", "", szBuf, sizeof(szBuf), szFileIniConfig);
|
||||
GetPrivateProfileString("OS/2 Integration-Item0", "Description", "", diOS2Integration.oiCBMakeDefaultBrowser.szDescription, MAX_BUF, szFileIniConfig);
|
||||
/* Check to see if the checkbox need to be shown at all or not */
|
||||
if(*diWindowsIntegration.wiCB0.szDescription != '\0')
|
||||
diWindowsIntegration.wiCB0.bEnabled = TRUE;
|
||||
if(*diOS2Integration.oiCBMakeDefaultBrowser.szDescription != '\0')
|
||||
diOS2Integration.oiCBMakeDefaultBrowser.bEnabled = TRUE;
|
||||
/* check to see if the checkbox needs to be checked by default or not */
|
||||
if(strcmpi(szBuf, "TRUE") == 0)
|
||||
diWindowsIntegration.wiCB0.bCheckBoxState = TRUE;
|
||||
diOS2Integration.oiCBMakeDefaultBrowser.bCheckBoxState = TRUE;
|
||||
|
||||
GetPrivateProfileString("Windows Integration-Item1", "CheckBoxState", "", szBuf, sizeof(szBuf), szFileIniConfig);
|
||||
GetPrivateProfileString("Windows Integration-Item1", "Description", "", diWindowsIntegration.wiCB1.szDescription, MAX_BUF, szFileIniConfig);
|
||||
GetPrivateProfileString("Windows Integration-Item1", "Archive", "", diWindowsIntegration.wiCB1.szArchive, MAX_BUF, szFileIniConfig);
|
||||
GetPrivateProfileString("OS/2 Integration-Item1", "CheckBoxState", "", szBuf, sizeof(szBuf), szFileIniConfig);
|
||||
GetPrivateProfileString("OS/2 Integration-Item1", "Description", "", diOS2Integration.oiCBAssociateHTML.szDescription, MAX_BUF, szFileIniConfig);
|
||||
/* Check to see if the checkbox need to be shown at all or not */
|
||||
if(*diWindowsIntegration.wiCB1.szDescription != '\0')
|
||||
diWindowsIntegration.wiCB1.bEnabled = TRUE;
|
||||
if(*diOS2Integration.oiCBAssociateHTML.szDescription != '\0')
|
||||
diOS2Integration.oiCBAssociateHTML.bEnabled = TRUE;
|
||||
/* check to see if the checkbox needs to be checked by default or not */
|
||||
if(strcmpi(szBuf, "TRUE") == 0)
|
||||
diWindowsIntegration.wiCB1.bCheckBoxState = TRUE;
|
||||
diOS2Integration.oiCBAssociateHTML.bCheckBoxState = TRUE;
|
||||
|
||||
GetPrivateProfileString("Windows Integration-Item2", "CheckBoxState", "", szBuf, sizeof(szBuf), szFileIniConfig);
|
||||
GetPrivateProfileString("Windows Integration-Item2", "Description", "", diWindowsIntegration.wiCB2.szDescription, MAX_BUF, szFileIniConfig);
|
||||
GetPrivateProfileString("Windows Integration-Item2", "Archive", "", diWindowsIntegration.wiCB2.szArchive, MAX_BUF, szFileIniConfig);
|
||||
GetPrivateProfileString("OS/2 Integration-Item2", "CheckBoxState", "", szBuf, sizeof(szBuf), szFileIniConfig);
|
||||
GetPrivateProfileString("OS/2 Integration-Item2", "Description", "", diOS2Integration.oiCBUpdateCONFIGSYS.szDescription, MAX_BUF, szFileIniConfig);
|
||||
/* Check to see if the checkbox need to be shown at all or not */
|
||||
if(*diWindowsIntegration.wiCB2.szDescription != '\0')
|
||||
diWindowsIntegration.wiCB2.bEnabled = TRUE;
|
||||
if(*diOS2Integration.oiCBUpdateCONFIGSYS.szDescription != '\0')
|
||||
diOS2Integration.oiCBUpdateCONFIGSYS.bEnabled = TRUE;
|
||||
/* check to see if the checkbox needs to be checked by default or not */
|
||||
if(strcmpi(szBuf, "TRUE") == 0)
|
||||
diWindowsIntegration.wiCB2.bCheckBoxState = TRUE;
|
||||
|
||||
GetPrivateProfileString("Windows Integration-Item3", "CheckBoxState", "", szBuf, sizeof(szBuf), szFileIniConfig);
|
||||
GetPrivateProfileString("Windows Integration-Item3", "Description", "", diWindowsIntegration.wiCB3.szDescription, MAX_BUF, szFileIniConfig);
|
||||
GetPrivateProfileString("Windows Integration-Item3", "Archive", "", diWindowsIntegration.wiCB3.szArchive, MAX_BUF, szFileIniConfig);
|
||||
/* Check to see if the checkbox need to be shown at all or not */
|
||||
if(*diWindowsIntegration.wiCB3.szDescription != '\0')
|
||||
diWindowsIntegration.wiCB3.bEnabled = TRUE;
|
||||
/* check to see if the checkbox needs to be checked by default or not */
|
||||
if(strcmpi(szBuf, "TRUE") == 0)
|
||||
diWindowsIntegration.wiCB3.bCheckBoxState = TRUE;
|
||||
diOS2Integration.oiCBUpdateCONFIGSYS.bCheckBoxState = TRUE;
|
||||
|
||||
/* Read in the Site Selector Status */
|
||||
GetPrivateProfileString("Site Selector", "Status", "", szBuf, sizeof(szBuf), szFileIniConfig);
|
||||
@ -5316,7 +5348,7 @@ HRESULT ParseConfigIni(int argc, char *argv[])
|
||||
diSetupType.bShowDialog = FALSE;
|
||||
diSelectComponents.bShowDialog = FALSE;
|
||||
diSelectAdditionalComponents.bShowDialog = FALSE;
|
||||
diWindowsIntegration.bShowDialog = FALSE;
|
||||
diOS2Integration.bShowDialog = FALSE;
|
||||
diProgramFolder.bShowDialog = FALSE;
|
||||
diQuickLaunch.bShowDialog = FALSE;
|
||||
diAdditionalOptions.bShowDialog = FALSE;
|
||||
@ -6117,6 +6149,35 @@ HRESULT FileExists(PSZ szFile)
|
||||
return (FALSE);
|
||||
}
|
||||
|
||||
BOOL isFAT(char* szPath)
|
||||
{
|
||||
APIRET rc;
|
||||
ULONG ulSize;
|
||||
PFSQBUFFER2 pfsqbuf2;
|
||||
CHAR szDrive[3];
|
||||
|
||||
ulSize = sizeof(FSQBUFFER2) + 3 * CCHMAXPATH;
|
||||
pfsqbuf2 = (PFSQBUFFER2)malloc(ulSize);
|
||||
strncpy(szDrive, szPath, 2);
|
||||
szDrive[2] = '\0';
|
||||
|
||||
DosError(FERR_DISABLEHARDERR);
|
||||
rc = DosQueryFSAttach(szDrive, 0, FSAIL_QUERYNAME,
|
||||
pfsqbuf2, &ulSize);
|
||||
DosError(FERR_ENABLEHARDERR);
|
||||
|
||||
if (rc == NO_ERROR) {
|
||||
if (strcmp(pfsqbuf2->szFSDName + pfsqbuf2->cbName, "FAT") == 0) {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
if (rc == NO_ERROR) {
|
||||
return FALSE;
|
||||
} else {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
BOOL NeedReboot()
|
||||
{
|
||||
if(diReboot.dwShowDialog == AUTO)
|
||||
@ -6440,7 +6501,7 @@ void DeInitialize()
|
||||
DeInitDlgAdditionalOptions(&diAdditionalOptions);
|
||||
DeInitDlgAdvancedSettings(&diAdvancedSettings);
|
||||
DeInitDlgProgramFolder(&diProgramFolder);
|
||||
DeInitDlgWindowsIntegration(&diWindowsIntegration);
|
||||
DeInitDlgOS2Integration(&diOS2Integration);
|
||||
DeInitDlgSelectComponents(&diSelectAdditionalComponents);
|
||||
DeInitDlgSelectComponents(&diSelectComponents);
|
||||
DeInitDlgSetupType(&diSetupType);
|
||||
|
@ -47,7 +47,7 @@ HRESULT InitDlgLicense(diL *diDialog);
|
||||
HRESULT InitDlgQuickLaunch(diQL *diDialog);
|
||||
HRESULT InitDlgSetupType(diST *diDialog);
|
||||
HRESULT InitDlgSelectComponents(diSC *diDialog, DWORD dwSM);
|
||||
HRESULT InitDlgWindowsIntegration(diWI *diDialog);
|
||||
HRESULT InitDlgOS2Integration(diOI *diDialog);
|
||||
HRESULT InitDlgProgramFolder(diPF *diDialog);
|
||||
HRESULT InitDlgStartInstall(diSI *diDialog);
|
||||
HRESULT InitDlgSiteSelector(diAS *diDialog);
|
||||
@ -88,7 +88,7 @@ void DeInitDlgLicense(diL *diDialog);
|
||||
void DeInitDlgQuickLaunch(diQL *diDialog);
|
||||
void DeInitDlgSetupType(diST *diDialog);
|
||||
void DeInitDlgSelectComponents(diSC *diDialog);
|
||||
void DeInitDlgWindowsIntegration(diWI *diDialog);
|
||||
void DeInitDlgOS2Integration(diOI *diDialog);
|
||||
void DeInitDlgProgramFolder(diPF *diDialog);
|
||||
void DeInitDlgStartInstall(diSI *diDialog);
|
||||
void DeInitDlgSiteSelector(diAS *diDialog);
|
||||
@ -115,7 +115,9 @@ BOOL DeleteIdiFileIniInstall(void);
|
||||
void DeleteArchives(DWORD dwDeleteCheck);
|
||||
BOOL DeleteIniRedirect(void);
|
||||
HRESULT LaunchApps(void);
|
||||
HRESULT ProcessOS2Integration(void);
|
||||
HRESULT FileExists(PSZ szFile);
|
||||
BOOL isFAT(char* szPath);
|
||||
int ExtractDirEntries(char* directory,void* vZip);
|
||||
int LocateJar(siC *siCObject, LPSTR szPath, int dwPathSize, BOOL bIncludeTempDir);
|
||||
HRESULT AddArchiveToIdiFile(siC *siCObject,
|
||||
|
@ -1436,6 +1436,7 @@ HRESULT ProcessProgramFolder(DWORD dwTiming, char *szSectionPrefix)
|
||||
DWORD dwIndex1;
|
||||
char szIndex1[MAX_BUF];
|
||||
char szBuf[MAX_BUF];
|
||||
char szBuf2[MAX_BUF];
|
||||
char szSection0[MAX_BUF];
|
||||
char szSection1[MAX_BUF];
|
||||
char szProgramFolder[MAX_BUF];
|
||||
@ -1444,6 +1445,8 @@ HRESULT ProcessProgramFolder(DWORD dwTiming, char *szSectionPrefix)
|
||||
char szTitle[MAX_BUF];
|
||||
char szSetupString[MAX_BUF];
|
||||
char szLocation[MAX_BUF];
|
||||
char szAssocFilters[MAX_BUF];
|
||||
char szAssocTypes[MAX_BUF];
|
||||
|
||||
|
||||
dwIndex0 = 0;
|
||||
@ -1469,14 +1472,81 @@ HRESULT ProcessProgramFolder(DWORD dwTiming, char *szSectionPrefix)
|
||||
GetPrivateProfileString(szSection1, "ClassName", "", szClassName, sizeof(szClassName), szFileIniConfig);
|
||||
while(*szBuf != '\0')
|
||||
{
|
||||
*szSetupString = '\0';
|
||||
GetPrivateProfileString(szSection1, "Title", "", szBuf, sizeof(szBuf), szFileIniConfig);
|
||||
DecryptString(szTitle, szBuf);
|
||||
GetPrivateProfileString(szSection1, "SetupString", "", szBuf, sizeof(szBuf), szFileIniConfig);
|
||||
DecryptString(szSetupString, szBuf);
|
||||
GetPrivateProfileString(szSection1, "Location", "", szBuf, sizeof(szBuf), szFileIniConfig);
|
||||
DecryptString(szLocation, szBuf);
|
||||
GetPrivateProfileString(szSection1, "File", "", szBuf, sizeof(szBuf), szFileIniConfig);
|
||||
DecryptString(szBuf2, szBuf);
|
||||
if (szBuf2[0]) {
|
||||
if (szSetupString[0]) {
|
||||
strcat(szSetupString, ";");
|
||||
}
|
||||
strcat(szSetupString, "EXENAME=");
|
||||
strcat(szSetupString, szBuf2);
|
||||
}
|
||||
GetPrivateProfileString(szSection1, "Parameters", "", szBuf, sizeof(szBuf), szFileIniConfig);
|
||||
DecryptString(szBuf2, szBuf);
|
||||
if (szBuf2[0]) {
|
||||
if (szSetupString[0]) {
|
||||
strcat(szSetupString, ";");
|
||||
}
|
||||
strcat(szSetupString, "PARAMETERS=");
|
||||
strcat(szSetupString, szBuf2);
|
||||
}
|
||||
GetPrivateProfileString(szSection1, "Working Dir", "", szBuf, sizeof(szBuf), szFileIniConfig);
|
||||
DecryptString(szBuf2, szBuf);
|
||||
if (szBuf2[0]) {
|
||||
if (szSetupString[0]) {
|
||||
strcat(szSetupString, ";");
|
||||
}
|
||||
strcat(szSetupString, "STARTUPDIR=");
|
||||
strcat(szSetupString, szBuf2);
|
||||
}
|
||||
GetPrivateProfileString(szSection1, "Object ID", "", szBuf, sizeof(szBuf), szFileIniConfig);
|
||||
if (szBuf[0]) {
|
||||
if (szSetupString[0]) {
|
||||
strcat(szSetupString, ";");
|
||||
}
|
||||
strcat(szSetupString, "OBJECTID=");
|
||||
strcat(szSetupString, szBuf);
|
||||
}
|
||||
GetPrivateProfileString(szSection1, "Association Filters", "", szBuf, sizeof(szBuf), szFileIniConfig);
|
||||
if (szBuf[0]) {
|
||||
if (diOS2Integration.oiCBAssociateHTML.bCheckBoxState == TRUE) {
|
||||
if (szSetupString[0]) {
|
||||
strcat(szSetupString, ";");
|
||||
}
|
||||
strcat(szSetupString, "ASSOCFILTER=");
|
||||
strcat(szSetupString, szBuf);
|
||||
}
|
||||
}
|
||||
GetPrivateProfileString(szSection1, "Association Types", "", szBuf, sizeof(szBuf), szFileIniConfig);
|
||||
if (szBuf[0]) {
|
||||
if (diOS2Integration.oiCBAssociateHTML.bCheckBoxState == TRUE) {
|
||||
if (szSetupString[0]) {
|
||||
strcat(szSetupString, ";");
|
||||
}
|
||||
strcat(szSetupString, "ASSOCTYPE=");
|
||||
strcat(szSetupString, szBuf);
|
||||
}
|
||||
}
|
||||
GetPrivateProfileString(szSection1, "Setup String", "", szBuf, sizeof(szBuf), szFileIniConfig);
|
||||
DecryptString(szBuf2, szBuf);
|
||||
if (szBuf2[0]) {
|
||||
if (szSetupString[0]) {
|
||||
strcat(szSetupString, ";");
|
||||
}
|
||||
strcat(szSetupString, szBuf2);
|
||||
}
|
||||
|
||||
WinCreateObject(szClassName, szTitle, szSetupString, szLocation, CO_REPLACEIFEXISTS);
|
||||
|
||||
if (diOS2Integration.oiCBMakeDefaultBrowser.bCheckBoxState == TRUE) {
|
||||
|
||||
}
|
||||
|
||||
#ifdef OLDCODE
|
||||
strcpy(szBuf, szProgramFolder);
|
||||
AppendBackSlash(szBuf, sizeof(szBuf));
|
||||
|
@ -77,7 +77,7 @@ diQL diQuickLaunch;
|
||||
diST diSetupType;
|
||||
diSC diSelectComponents;
|
||||
diSC diSelectAdditionalComponents;
|
||||
diWI diWindowsIntegration;
|
||||
diOI diOS2Integration;
|
||||
diPF diProgramFolder;
|
||||
diDO diAdditionalOptions;
|
||||
diAS diAdvancedSettings;
|
||||
|
@ -299,25 +299,24 @@ typedef struct dlgSelectComponents
|
||||
LPSTR szMessage0;
|
||||
} diSC;
|
||||
|
||||
typedef struct wiCBstruct
|
||||
typedef struct oiCBstruct
|
||||
{
|
||||
BOOL bEnabled;
|
||||
BOOL bCheckBoxState;
|
||||
LPSTR szDescription;
|
||||
LPSTR szArchive;
|
||||
} wiCBs;
|
||||
} oiCBs;
|
||||
|
||||
typedef struct dlgWindowsIntegration
|
||||
typedef struct dlgOS2Integration
|
||||
{
|
||||
BOOL bShowDialog;
|
||||
LPSTR szTitle;
|
||||
LPSTR szMessage0;
|
||||
LPSTR szMessage1;
|
||||
wiCBs wiCB0;
|
||||
wiCBs wiCB1;
|
||||
wiCBs wiCB2;
|
||||
wiCBs wiCB3;
|
||||
} diWI;
|
||||
oiCBs oiCBMakeDefaultBrowser;
|
||||
oiCBs oiCBAssociateHTML;
|
||||
oiCBs oiCBUpdateCONFIGSYS;
|
||||
LPSTR szHomeDirectory;
|
||||
} diOI;
|
||||
|
||||
typedef struct dlgProgramFolder
|
||||
{
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 3.3 KiB |
@ -330,26 +330,12 @@ void cbXPIStart(const char *URL, const char *UIName)
|
||||
|
||||
void cbXPIProgress(const char* msg, PRInt32 val, PRInt32 max)
|
||||
{
|
||||
char szFilename[MAX_BUF];
|
||||
char szStrProcessingFileBuf[MAX_BUF];
|
||||
char szStrCopyingFileBuf[MAX_BUF];
|
||||
char szBuf[MAX_BUF];
|
||||
|
||||
if(sgProduct.ulMode != SILENT)
|
||||
{
|
||||
ParsePath((char *)msg, szFilename, sizeof(szFilename), FALSE, PP_FILENAME_ONLY);
|
||||
|
||||
if(max == 0)
|
||||
{
|
||||
/* Processing file */
|
||||
sprintf(szStrProcessingFileBuf, szStrProcessingFile, szFilename);
|
||||
WinSetDlgItemText(dlgInfo.hWndDlg, IDC_STATUS3, szStrProcessingFileBuf);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Copying file */
|
||||
sprintf(szStrCopyingFileBuf, szStrCopyingFile, szFilename);
|
||||
WinSetDlgItemText(dlgInfo.hWndDlg, IDC_STATUS3, szStrCopyingFileBuf);
|
||||
}
|
||||
TruncateString(WinWindowFromID(dlgInfo.hWndDlg, IDC_STATUS3), msg, szBuf, sizeof(szBuf));
|
||||
WinSetDlgItemText(dlgInfo.hWndDlg, IDC_STATUS3, szBuf);
|
||||
}
|
||||
|
||||
ProcessWindowsMessages();
|
||||
|
@ -1,4 +1,5 @@
|
||||
#define IDS_ERROR_FILE_NOT_FOUND 3
|
||||
#define IDS_ERROR_NO_LONG_FILENAMES 5
|
||||
#define IDRESUME 3
|
||||
#define IDPAUSE 4
|
||||
#define IDS_MSG_RETRIEVE_INSTALLINI 11
|
||||
@ -93,7 +94,7 @@
|
||||
#define DLG_SELECT_COMPONENTS_SINGLE 2004
|
||||
#define DLG_SELECT_COMPONENTS 2004
|
||||
#define DLG_SELECT_COMPONENTS_MULTI 2005
|
||||
#define DLG_WINDOWS_INTEGRATION 2006
|
||||
#define DLG_OS2_INTEGRATION 2006
|
||||
#define DLG_PROGRAM_FOLDER 2007
|
||||
#define DLG_START_INSTALL 2008
|
||||
#define DLG_EXTRACTING 2009
|
||||
|
@ -93,31 +93,32 @@ BEGIN
|
||||
END
|
||||
END
|
||||
|
||||
#if 0 /* Not used right now */
|
||||
DLGTEMPLATE DLG_WINDOWS_INTEGRATION DISCARDABLE
|
||||
DLGTEMPLATE DLG_OS2_INTEGRATION DISCARDABLE
|
||||
BEGIN
|
||||
DIALOG "", DLG_WINDOWS_INTEGRATION, 64, -69, 394, 205,
|
||||
DIALOG "", DLG_OS2_INTEGRATION, 0, 0, 470, 336
|
||||
WS_VISIBLE | FS_DLGBORDER | FS_SCREENALIGN,
|
||||
FCF_TITLEBAR | FCF_SYSMENU | FCF_NOMOVEWITHOWNER | FCF_TASKLIST
|
||||
BEGIN
|
||||
CONTROL "", IDC_CHECK0, 127, 156, 257, 17, WC_BUTTON, BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP | BS_PUSHBUTTON | WS_VISIBLE
|
||||
CONTROL "", IDC_CHECK1, 127, 135, 257, 17, WC_BUTTON, BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP | BS_PUSHBUTTON | WS_VISIBLE
|
||||
CONTROL "", IDC_CHECK2, 127, 115, 257, 17, WC_BUTTON, BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP | BS_PUSHBUTTON | WS_VISIBLE
|
||||
CONTROL "", IDC_CHECK3, 127, 94, 257, 17, WC_BUTTON, BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP | BS_PUSHBUTTON | WS_VISIBLE
|
||||
LTEXT "", IDC_MESSAGE1, 127, 34, 257, 54, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
|
||||
PUSHBUTTON "", IDWIZBACK, 168, 5, 67, 14
|
||||
DEFPUSHBUTTON "", IDWIZNEXT, 235, 5, 67, 14
|
||||
PUSHBUTTON "", DID_CANCEL, 315, 5, 67, 14
|
||||
LTEXT "", IDC_MESSAGE0, 127, 177, 255, 17, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
|
||||
CONTROL 108, IDC_PICT0, 0, 0, 1, 1, WC_STATIC, SS_BITMAP | WS_VISIBLE
|
||||
CONTROL "", IDC_STATIC0, 14, 25, 369, 1, WC_STATIC, SS_TEXT | DT_WORDBREAK | DT_MNEMONIC | WS_VISIBLE
|
||||
// LTEXT "", IDC_MESSAGE1, 127, 34, 257, 54, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
|
||||
// LTEXT "", IDC_MESSAGE0, 127, 177, 255, 17, NOT WS_GROUP | SS_TEXT | DT_WORDBREAK | DT_MNEMONIC
|
||||
AUTOCHECKBOX "", IDC_CHECK0, 145, 294, 315, 32, WS_TABSTOP
|
||||
AUTOCHECKBOX "", IDC_CHECK1, 145, 252, 315, 32, WS_TABSTOP
|
||||
#ifdef OLDCODE
|
||||
AUTOCHECKBOX "", IDC_CHECK2, 145, 210, 315, 32, WS_TABSTOP
|
||||
GROUPBOX "", IDC_DESTINATION, 145, 62, 315, 60, DT_MNEMONIC
|
||||
LTEXT "", IDC_EDIT_DESTINATION, 155, 72, 200, 30, DT_VCENTER
|
||||
PUSHBUTTON "", IDC_BUTTON_BROWSE, 370, 72, 80, 30
|
||||
#endif
|
||||
CONTROL 108, IDC_MOZILLA, 12, 64, 1, 1, WC_STATIC, SS_BITMAP | WS_VISIBLE
|
||||
CONTROL "", IDC_STATIC3, 10, 62, 125, 264, WC_STATIC, SS_FGNDFRAME | WS_VISIBLE
|
||||
CONTROL "", IDC_STATIC, 10, 50, 450, 2, WC_STATIC, SS_FGNDRECT | WS_VISIBLE
|
||||
PUSHBUTTON "", IDWIZBACK, 200, 10, 80, 30, WS_GROUP
|
||||
DEFPUSHBUTTON "", IDWIZNEXT, 290, 10, 80, 30
|
||||
PUSHBUTTON "", DID_CANCEL, 380, 10, 80, 30
|
||||
END
|
||||
END
|
||||
|
||||
#if 0 /* Not used right now */
|
||||
DLGTEMPLATE DLG_QUICK_LAUNCH DISCARDABLE
|
||||
BEGIN
|
||||
DIALOG "", DLG_QUICK_LAUNCH, 64, -69, 394, 205,
|
||||
@ -275,8 +276,8 @@ BEGIN
|
||||
WS_VISIBLE | FS_DLGBORDER | FS_SCREENALIGN,
|
||||
FCF_TITLEBAR | FCF_SYSMENU | FCF_NOMOVEWITHOWNER | FCF_TASKLIST
|
||||
BEGIN
|
||||
LTEXT "", IDC_MESSAGE0, 145, 262, 315, 64, SS_TEXT | DT_WORDBREAK
|
||||
MLE "", IDC_CURRENT_SETTINGS, 145, 62, 315, 190, MLS_WORDWRAP | MLS_READONLY | MLS_VSCROLL | MLS_HSCROLL
|
||||
LTEXT "", IDC_MESSAGE0, 145, 230, 315, 96, SS_TEXT | DT_WORDBREAK
|
||||
MLE "", IDC_CURRENT_SETTINGS, 145, 62, 315, 158, MLS_WORDWRAP | MLS_READONLY | MLS_VSCROLL | MLS_HSCROLL
|
||||
CONTROL 108, IDC_STATIC, 12, 64, 1, 1, WC_STATIC, SS_BITMAP | WS_VISIBLE
|
||||
CONTROL "", IDC_STATIC3, 10, 62, 125, 264, WC_STATIC, SS_FGNDFRAME | WS_VISIBLE
|
||||
CONTROL "", IDC_STATIC, 10, 50, 450, 2, WC_STATIC, SS_FGNDRECT | WS_VISIBLE
|
||||
@ -315,6 +316,7 @@ BITMAP IDB_BITMAP_DOWNLOAD_LOGO DISCARDABLE "downloadLogo.bmp"
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_ERROR_FILE_NOT_FOUND "File not found: %s"
|
||||
IDS_ERROR_NO_LONG_FILENAMES "You must have at least one drive that supports long filenames to install this product."
|
||||
IDS_MSG_RETRIEVE_INSTALLINI "Please wait while Setup is attempting to retrieve install.ini, required by Setup, from the Web..."
|
||||
END
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user