Changeset 37289 in vbox for trunk/src/VBox/Installer
- Timestamp:
- Jun 1, 2011 11:59:23 AM (14 years ago)
- svn:sync-xref-src-repo-rev:
- 72032
- Location:
- trunk/src/VBox/Installer/win
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Installer/win/InstallHelper/VBoxCommon.cpp
r32112 r37289 52 52 uiRet = MsiGetProperty(a_hModule, a_pszName, a_pValue, &dwBuffer); 53 53 } 54 55 54 return uiRet; 56 55 } -
trunk/src/VBox/Installer/win/InstallHelper/VBoxInstallHelper.cpp
r36487 r37289 5 5 6 6 /* 7 * Copyright (C) 2008-201 0Oracle Corporation7 * Copyright (C) 2008-2011 Oracle Corporation 8 8 * 9 9 * This file is part of VirtualBox Open Source Edition (OSE), as … … 61 61 } 62 62 63 void LogString(MSIHANDLE hInstall, TCHAR*szString, ...)63 static void LogString(MSIHANDLE hInstall, LPCSTR szString, ...) 64 64 { 65 65 PMSIHANDLE newHandle = ::MsiCreateRecord(2); 66 66 67 TCHARszBuffer[1024] = {0};67 char szBuffer[1024] = {0}; 68 68 va_list pArgList; 69 69 va_start(pArgList, szString); 70 _vsn tprintf(szBuffer, sizeof(szBuffer) / sizeof(TCHAR), szString, pArgList);70 _vsnprintf(szBuffer, sizeof(szBuffer) / sizeof(char), szString, pArgList); 71 71 va_end(pArgList); 72 72 73 MsiRecordSetString (newHandle, 0, szBuffer);73 MsiRecordSetStringA(newHandle, 0, szBuffer); 74 74 MsiProcessMessage(hInstall, INSTALLMESSAGE(INSTALLMESSAGE_INFO), newHandle); 75 75 MsiCloseHandle(newHandle); … … 95 95 } 96 96 97 UINT __stdcall IsSerialCheckNeeded(MSIHANDLE a_hModule)97 UINT __stdcall IsSerialCheckNeeded(MSIHANDLE hModule) 98 98 { 99 99 #ifndef VBOX_OSE 100 /*BOOL bRet =*/ serialCheckNeeded( a_hModule);100 /*BOOL bRet =*/ serialCheckNeeded(hModule); 101 101 #endif 102 102 return ERROR_SUCCESS; 103 103 } 104 104 105 UINT __stdcall CheckSerial(MSIHANDLE a_hModule)105 UINT __stdcall CheckSerial(MSIHANDLE hModule) 106 106 { 107 107 #ifndef VBOX_OSE 108 /*BOOL bRet =*/ serialIsValid( a_hModule);108 /*BOOL bRet =*/ serialIsValid(hModule); 109 109 #endif 110 110 return ERROR_SUCCESS; … … 126 126 ::ZeroMemory(&pi, sizeof(pi)); 127 127 128 LogString(hModule, TEXT("Executing command line: %s %s (Working Dir: %s)"), szAppName, szCmdLine, szWorkDir == NULL ? L"Current" : szWorkDir); 128 LogStringW(hModule, TEXT("Executing command line: %s %s (Working Dir: %s)"), 129 szAppName, szCmdLine, szWorkDir == NULL ? L"Current" : szWorkDir); 129 130 130 131 ::SetLastError(0); … … 141 142 { 142 143 rc = ::GetLastError(); 143 LogString (hModule, TEXT("Executing command line: CreateProcess() failed! Error: %ld"), rc);144 LogStringW(hModule, TEXT("Executing command line: CreateProcess() failed! Error: %ld"), rc); 144 145 return rc; 145 146 } … … 149 150 { 150 151 rc = ::GetLastError(); 151 LogString (hModule, TEXT("Executing command line: WaitForSingleObject() failed! Error: %ld"), rc);152 LogStringW(hModule, TEXT("Executing command line: WaitForSingleObject() failed! Error: %ld"), rc); 152 153 } 153 154 else … … 156 157 { 157 158 rc = ::GetLastError(); 158 LogString (hModule, TEXT("Executing command line: GetExitCodeProcess() failed! Error: %ld"), rc);159 LogStringW(hModule, TEXT("Executing command line: GetExitCodeProcess() failed! Error: %ld"), rc); 159 160 } 160 161 } … … 164 165 ::CloseHandle(pi.hThread); 165 166 166 LogString (hModule, TEXT("Executing command returned: %ld (exit code %ld)"), rc, *dwExitCode);167 LogStringW(hModule, TEXT("Executing command returned: %ld (exit code %ld)"), rc, *dwExitCode); 167 168 return rc; 168 169 } … … 170 171 UINT __stdcall InstallPythonAPI(MSIHANDLE hModule) 171 172 { 172 LogString (hModule, TEXT("InstallPythonAPI: Checking for installed Python environment ..."));173 LogStringW(hModule, TEXT("InstallPythonAPI: Checking for installed Python environment ...")); 173 174 174 175 HKEY hkPythonCore = NULL; 175 BOOL b Installed = FALSE;176 BOOL bFound = FALSE; 176 177 LONG rc = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Python\\PythonCore", 0, KEY_READ, &hkPythonCore); 177 178 if (rc != ERROR_SUCCESS) 178 179 { 179 LogString (hModule, TEXT("InstallPythonAPI: No environment seemsto be installed."));180 LogStringW(hModule, TEXT("InstallPythonAPI: Python seems not to be installed.")); 180 181 return ERROR_SUCCESS; 181 182 } … … 203 204 204 205 rc = ::RegQueryValueEx(hkPythonInstPath, L"", NULL, &dwKeyType, (LPBYTE)szVal, &dwLen); 205 if (rc == ERROR_SUCCESS)206 LogString (hModule, TEXT("InstallPythonAPI: Path \"%s\" detected."), szVal);206 if (rc == ERROR_SUCCESS) 207 LogStringW(hModule, TEXT("InstallPythonAPI: Path \"%s\" detected."), szVal); 207 208 208 209 ::RegCloseKey(hkPythonInstPath); … … 217 218 { 218 219 /* Cool, check for installed Win32 extensions. */ 219 LogString (hModule, TEXT("InstallPythonAPI: Python installed. Checking for Win32 extensions ..."));220 LogStringW(hModule, TEXT("InstallPythonAPI: Python installed. Checking for Win32 extensions ...")); 220 221 _stprintf_s(szExec, sizeof(szExec) / sizeof(TCHAR), L"%s\\python.exe", szVal); 221 222 _stprintf_s(szCmdLine, sizeof(szCmdLine) / sizeof(TCHAR), L"%s\\python.exe -c \"import win32api\"", szVal); … … 225 226 { 226 227 /* Did we get the correct error level (=0)? */ 227 LogString(hModule, TEXT("InstallPythonAPI: Win32 extensions installed.")); 228 bInstalled = TRUE; 229 } 230 else LogString(hModule, TEXT("InstallPythonAPI: Win32 extensions not found.")); 231 } 232 233 if (bInstalled) /* Is Python and all required stuff installed? */ 228 LogStringW(hModule, TEXT("InstallPythonAPI: Win32 extensions installed.")); 229 bFound = TRUE; 230 } 231 else LogStringW(hModule, TEXT("InstallPythonAPI: Win32 extensions not found.")); 232 } 233 234 BOOL bInstalled = FALSE; 235 if (bFound) /* Is Python and all required stuff installed? */ 234 236 { 235 237 /* Get the VBoxAPI setup string. */ … … 246 248 if (!SetEnvironmentVariable(L"VBOX_INSTALL_PATH", szVBoxAPISetupPath)) 247 249 { 248 LogString(hModule, TEXT("InstallPythonAPI: Cannot set environment variable VBOX_INSTALL_PATH!")); 249 return FALSE; 250 LogStringW(hModule, TEXT("InstallPythonAPI: Could set environment variable VBOX_INSTALL_PATH!")); 250 251 } 251 252 else … … 255 256 { 256 257 /* All done! */ 257 LogString (hModule, TEXT("InstallPythonAPI: VBoxAPI for Python successfully installed."));258 return ERROR_SUCCESS;258 LogStringW(hModule, TEXT("InstallPythonAPI: VBoxAPI for Python successfully installed.")); 259 bInstalled = TRUE; 259 260 } 260 else LogString(hModule, TEXT("InstallPythonAPI: Error while installing VBoxAPI: %ld"), dwExitCode); 261 } 262 } 263 264 LogString(hModule, TEXT("InstallPythonAPI: VBoxAPI not installed.")); 261 else 262 LogStringW(hModule, TEXT("InstallPythonAPI: Error while installing VBox API: %ld"), dwExitCode); 263 } 264 } 265 266 VBoxSetProperty(hModule, L"PYTHON_INSTALLED", bInstalled ? L"1" : L"0"); 267 268 if (!bInstalled) 269 LogStringW(hModule, TEXT("InstallPythonAPI: VBox API not installed.")); 265 270 return ERROR_SUCCESS; /* Do not fail here. */ 266 271 } … … 295 300 (DWORD)wcslen(szValue)); 296 301 if (rc != ERROR_SUCCESS) 297 LogString (hModule, TEXT("InstallBranding: Could not write value %s! Error %ld"), pszValue, rc);302 LogStringW(hModule, TEXT("InstallBranding: Could not write value %s! Error %ld"), pszValue, rc); 298 303 RegCloseKey (hkBranding); 299 304 } … … 323 328 FOF_NOERRORUI; 324 329 325 LogString (hModule, TEXT("CopyDir: DestDir=%s, SourceDir=%s"),330 LogStringW(hModule, TEXT("CopyDir: DestDir=%s, SourceDir=%s"), 326 331 szDest, szSource); 327 332 int r = SHFileOperation(&s); 328 333 if (r != 0) 329 334 { 330 LogString (hModule, TEXT("CopyDir: Copy operation returned status 0x%x"), r);335 LogStringW(hModule, TEXT("CopyDir: Copy operation returned status 0x%x"), r); 331 336 rc = ERROR_GEN_FAILURE; 332 337 } … … 352 357 FOF_NOERRORUI; 353 358 354 LogString (hModule, TEXT("RemoveDir: DestDir=%s"), szDest);359 LogStringW(hModule, TEXT("RemoveDir: DestDir=%s"), szDest); 355 360 int r = SHFileOperation(&s); 356 361 if (r != 0) 357 362 { 358 LogString (hModule, TEXT("RemoveDir: Remove operation returned status 0x%x"), r);363 LogStringW(hModule, TEXT("RemoveDir: Remove operation returned status 0x%x"), r); 359 364 rc = ERROR_GEN_FAILURE; 360 365 } … … 383 388 FOF_NOERRORUI; 384 389 385 LogString (hModule, TEXT("RenameDir: DestDir=%s, SourceDir=%s"),390 LogStringW(hModule, TEXT("RenameDir: DestDir=%s, SourceDir=%s"), 386 391 szDest, szSource); 387 392 int r = SHFileOperation(&s); 388 393 if (r != 0) 389 394 { 390 LogString (hModule, TEXT("RenameDir: Rename operation returned status 0x%x"), r);395 LogStringW(hModule, TEXT("RenameDir: Rename operation returned status 0x%x"), r); 391 396 rc = ERROR_GEN_FAILURE; 392 397 } … … 399 404 { 400 405 UINT rc; 401 LogString (hModule, TEXT("UninstallBranding: Handling branding file ..."));406 LogStringW(hModule, TEXT("UninstallBranding: Handling branding file ...")); 402 407 403 408 TCHAR szPathTargetDir[_MAX_PATH]; … … 418 423 } 419 424 420 LogString (hModule, TEXT("UninstallBranding: Handling done."));425 LogStringW(hModule, TEXT("UninstallBranding: Handling done.")); 421 426 return ERROR_SUCCESS; /* Do not fail here. */ 422 427 } … … 425 430 { 426 431 UINT rc; 427 LogString (hModule, TEXT("InstallBranding: Handling branding file ..."));432 LogStringW(hModule, TEXT("InstallBranding: Handling branding file ...")); 428 433 429 434 TCHAR szPathMSI[_MAX_PATH]; … … 434 439 435 440 rc = VBoxGetProperty(hModule, L"SOURCEDIR", szPathMSI, sizeof(szPathMSI)); 436 rc = VBoxGetProperty(hModule, L"INSTALLDIR", szPathTargetDir, sizeof(szPathTargetDir));437 441 if (rc == ERROR_SUCCESS) 438 442 { 439 /** @todo Check for trailing slash after %s. */ 440 _stprintf_s(szPathDest, sizeof(szPathDest) / sizeof(TCHAR), L"%s", szPathTargetDir); 441 _stprintf_s(szPathSource, sizeof(szPathSource) / sizeof(TCHAR), L"%s.custom", szPathMSI); 442 rc = CopyDir(hModule, szPathDest, szPathSource); 443 rc = VBoxGetProperty(hModule, L"INSTALLDIR", szPathTargetDir, sizeof(szPathTargetDir)); 443 444 if (rc == ERROR_SUCCESS) 444 445 { 445 _stprintf_s(szPathDest, sizeof(szPathDest) / sizeof(TCHAR), L"%scustom", szPathTargetDir); 446 _stprintf_s(szPathSource, sizeof(szPathSource) / sizeof(TCHAR), L"%s.custom", szPathTargetDir); 447 rc = RenameDir(hModule, szPathDest, szPathSource); 448 } 449 } 450 451 LogString(hModule, TEXT("InstallBranding: Handling done.")); 446 /** @todo Check for trailing slash after %s. */ 447 _stprintf_s(szPathDest, sizeof(szPathDest) / sizeof(TCHAR), L"%s", szPathTargetDir); 448 _stprintf_s(szPathSource, sizeof(szPathSource) / sizeof(TCHAR), L"%s.custom", szPathMSI); 449 rc = CopyDir(hModule, szPathDest, szPathSource); 450 if (rc == ERROR_SUCCESS) 451 { 452 _stprintf_s(szPathDest, sizeof(szPathDest) / sizeof(TCHAR), L"%scustom", szPathTargetDir); 453 _stprintf_s(szPathSource, sizeof(szPathSource) / sizeof(TCHAR), L"%s.custom", szPathTargetDir); 454 rc = RenameDir(hModule, szPathDest, szPathSource); 455 } 456 } 457 } 458 459 LogStringW(hModule, TEXT("InstallBranding: Handling done.")); 452 460 return ERROR_SUCCESS; /* Do not fail here. */ 453 461 } … … 464 472 465 473 static MSIHANDLE g_hCurrentModule = NULL; 466 static VOID winNetCfgLogger(LPCWSTR szString) 467 { 468 Assert(g_hCurrentModule); 469 if(g_hCurrentModule) 470 { 471 LogStringW(g_hCurrentModule, szString); 472 } 473 } 474 475 static VOID inintWinNetCfgLogger(MSIHANDLE hModule) 476 { 477 Assert(!g_hCurrentModule); 474 475 static VOID netCfgLoggerCallback(LPCSTR szString) 476 { 477 if (g_hCurrentModule) 478 LogString(g_hCurrentModule, szString); 479 } 480 481 static VOID netCfgLoggerDisable() 482 { 483 if (g_hCurrentModule) 484 { 485 VBoxNetCfgWinSetLogging((LOG_ROUTINE)NULL); 486 g_hCurrentModule = NULL; 487 } 488 } 489 490 static VOID netCfgLoggerEnable(MSIHANDLE hModule) 491 { 478 492 Assert(hModule); 479 493 494 if (g_hCurrentModule) 495 netCfgLoggerDisable(); 496 480 497 g_hCurrentModule = hModule; 481 498 482 VBoxNetCfgWinSetLogging((LOG_ROUTINE)winNetCfgLogger); 483 } 484 485 static VOID finiWinNetCfgLogger() 486 { 487 Assert(g_hCurrentModule); 488 489 VBoxNetCfgWinSetLogging((LOG_ROUTINE)NULL); 490 491 g_hCurrentModule = NULL; 492 } 493 494 static UINT Hresult2Error(MSIHANDLE hModule, HRESULT hr) 495 { 496 switch(hr) 499 VBoxNetCfgWinSetLogging((LOG_ROUTINE)netCfgLoggerCallback); 500 } 501 502 static UINT ErrorConvertFromHResult(MSIHANDLE hModule, HRESULT hr) 503 { 504 UINT uRet; 505 switch (hr) 497 506 { 498 507 case S_OK: 499 return ERROR_SUCCESS; 508 uRet = ERROR_SUCCESS; 509 break; 510 500 511 case NETCFG_S_REBOOT: 501 LogString(hModule, TEXT("Reboot required, setting REBOOT property to Force")); 502 if(MsiSetProperty(hModule, TEXT("REBOOT"), TEXT("Force")) != ERROR_SUCCESS) 503 { 504 LogString(hModule, TEXT("Failed to set REBOOT property")); 505 return ERROR_GEN_FAILURE; 506 } 507 return ERROR_SUCCESS; 512 { 513 LogStringW(hModule, TEXT("Reboot required, setting REBOOT property to Force")); 514 HRESULT hr2 = MsiSetProperty(hModule, TEXT("REBOOT"), TEXT("Force")); 515 if (hr2 != ERROR_SUCCESS) 516 LogStringW(hModule, TEXT("Failed to set REBOOT property, error = 0x%x"), hr2); 517 uRet = ERROR_SUCCESS; /* Never fail here. */ 518 break; 519 } 520 508 521 default: 509 LogString(hModule, TEXT("converting hresult (0x%x) to ERROR_GEN_FAILURE"), hr); 510 return ERROR_GEN_FAILURE; 511 } 522 LogStringW(hModule, TEXT("Converting unhandled HRESULT (0x%x) to ERROR_GEN_FAILURE"), hr); 523 uRet = ERROR_GEN_FAILURE; 524 } 525 return uRet; 512 526 } 513 527 … … 515 529 { 516 530 MSIHANDLE hRecord = MsiCreateRecord(2); 517 Assert(hRecord); 518 if(hRecord) 519 { 520 do 521 { 522 UINT r = MsiRecordSetInteger(hRecord, 1, 25001); 523 Assert(r == ERROR_SUCCESS); 524 if(r != ERROR_SUCCESS) 525 { 526 LogString(hModule, TEXT("createNetCfgLockedMsgRecord: MsiRecordSetInteger failed, r (0x%x)"), r); 527 MsiCloseHandle(hRecord); 528 hRecord = NULL; 529 break; 530 } 531 }while(0); 531 if (hRecord) 532 { 533 UINT uErr = MsiRecordSetInteger(hRecord, 1, 25001); 534 if (uErr != ERROR_SUCCESS) 535 { 536 LogStringW(hModule, TEXT("createNetCfgLockedMsgRecord: MsiRecordSetInteger failed, error = 0x%x"), uErr); 537 MsiCloseHandle(hRecord); 538 hRecord = NULL; 539 } 532 540 } 533 541 else 534 { 535 LogString(hModule, TEXT("createNetCfgLockedMsgRecord: failed to create a record")); 536 } 542 LogStringW(hModule, TEXT("createNetCfgLockedMsgRecord: Failed to create a record")); 537 543 538 544 return hRecord; … … 542 548 { 543 549 MSIHANDLE hMsg = NULL; 544 UINT r = ERROR_GEN_FAILURE;550 UINT uErr = ERROR_GEN_FAILURE; 545 551 int MsgResult; 546 552 int cRetries = 0; … … 550 556 LPWSTR lpszLockedBy; 551 557 HRESULT hr = VBoxNetCfgWinQueryINetCfg(ppnc, bWrite, VBOX_NETCFG_APP_NAME, 10000, &lpszLockedBy); 552 if(hr != NETCFG_E_NO_WRITE_LOCK) 553 { 554 Assert(hr == S_OK); 555 if(hr != S_OK) 556 { 557 LogString(hModule, TEXT("doNetCfgInit: VBoxNetCfgWinQueryINetCfg failed, hr (0x%x)"), hr); 558 } 559 r = Hresult2Error(hModule, hr); 558 if (hr != NETCFG_E_NO_WRITE_LOCK) 559 { 560 if (FAILED(hr)) 561 LogStringW(hModule, TEXT("doNetCfgInit: VBoxNetCfgWinQueryINetCfg failed, error = 0x%x"), hr); 562 uErr = ErrorConvertFromHResult(hModule, hr); 560 563 break; 561 564 } … … 563 566 /* hr == NETCFG_E_NO_WRITE_LOCK */ 564 567 565 Assert(lpszLockedBy); 566 if(!lpszLockedBy) 567 { 568 LogString(hModule, TEXT("doNetCfgInit: lpszLockedBy == NULL, breaking")); 568 if (!lpszLockedBy) 569 { 570 LogStringW(hModule, TEXT("doNetCfgInit: lpszLockedBy == NULL, breaking")); 569 571 break; 570 572 } … … 576 578 * dialog is opened, it would be better to post a notification to the user as soon as possible 577 579 * rather than waiting for a longer period of time before displaying it */ 578 if (cRetries < VBOX_NETCFG_MAX_RETRIES579 580 if ( cRetries < VBOX_NETCFG_MAX_RETRIES 581 && !wcscmp(lpszLockedBy, L"6to4svc.dll")) 580 582 { 581 583 cRetries++; 582 LogString (hModule, TEXT("doNetCfgInit: lpszLockedBy is 6to4svc.dll, retrying %d out of %d"), cRetries, VBOX_NETCFG_MAX_RETRIES);584 LogStringW(hModule, TEXT("doNetCfgInit: lpszLockedBy is 6to4svc.dll, retrying %d out of %d"), cRetries, VBOX_NETCFG_MAX_RETRIES); 583 585 MsgResult = IDRETRY; 584 586 } 585 587 else 586 588 { 587 if (!hMsg)589 if (!hMsg) 588 590 { 589 591 hMsg = createNetCfgLockedMsgRecord(hModule); 590 if (!hMsg)592 if (!hMsg) 591 593 { 592 LogString (hModule, TEXT("doNetCfgInit: failed to create a message record, breaking"));594 LogStringW(hModule, TEXT("doNetCfgInit: Failed to create a message record, breaking")); 593 595 CoTaskMemFree(lpszLockedBy); 594 596 break; … … 598 600 UINT rTmp = MsiRecordSetStringW(hMsg, 2, lpszLockedBy); 599 601 Assert(rTmp == ERROR_SUCCESS); 600 if (rTmp != ERROR_SUCCESS)602 if (rTmp != ERROR_SUCCESS) 601 603 { 602 LogString (hModule, TEXT("doNetCfgInit: MsiRecordSetStringW failed, r (0x%x)"), rTmp);604 LogStringW(hModule, TEXT("doNetCfgInit: MsiRecordSetStringW failed, error = 0x%x"), rTmp); 603 605 CoTaskMemFree(lpszLockedBy); 604 606 break; … … 607 609 MsgResult = MsiProcessMessage(hModule, (INSTALLMESSAGE)(INSTALLMESSAGE_USER | MB_RETRYCANCEL), hMsg); 608 610 Assert(MsgResult == IDRETRY || MsgResult == IDCANCEL); 609 LogString (hModule, TEXT("doNetCfgInit: MsiProcessMessage returned (0x%x)"), MsgResult);611 LogStringW(hModule, TEXT("doNetCfgInit: MsiProcessMessage returned (0x%x)"), MsgResult); 610 612 } 611 613 CoTaskMemFree(lpszLockedBy); 612 614 } while(MsgResult == IDRETRY); 613 615 614 if(hMsg) 615 { 616 if (hMsg) 616 617 MsiCloseHandle(hMsg); 617 } 618 619 return r; 620 } 621 622 static UINT vboxNetFltQueryInfArray(MSIHANDLE hModule, OUT LPWSTR *apInfFullPaths, PUINT pcInfs, DWORD cSize) 623 { 624 UINT r; 625 Assert(*pcInfs >= 2); 626 if(*pcInfs >= 2) 618 619 return uErr; 620 } 621 622 static UINT vboxNetFltQueryInfArray(MSIHANDLE hModule, OUT LPWSTR *apInfFullPaths, PUINT pcInfs, DWORD dwSize) 623 { 624 UINT uErr; 625 if (*pcInfs >= 2) 627 626 { 628 627 *pcInfs = 2; 629 r = MsiGetPropertyW(hModule, L"CustomActionData", apInfFullPaths[0], &cSize); 630 Assert(r == ERROR_SUCCESS); 631 if(r == ERROR_SUCCESS) 632 { 628 629 DWORD dwBuf = dwSize; 630 uErr = MsiGetPropertyW(hModule, L"CustomActionData", apInfFullPaths[0], &dwBuf); 631 if ( uErr == ERROR_SUCCESS 632 && dwBuf) 633 { 634 /** @todo r=andy Avoid wcscpy and wcsncat, can cause buffer overruns! */ 633 635 wcscpy(apInfFullPaths[1], apInfFullPaths[0]); 634 636 635 637 wcsncat(apInfFullPaths[0], NETFLT_PT_INF_REL_PATH, sizeof(NETFLT_PT_INF_REL_PATH)); 638 LogStringW(hModule, TEXT("vboxNetFltQueryInfArray: INF 1: %s"), apInfFullPaths[0]); 639 636 640 wcsncat(apInfFullPaths[1], NETFLT_MP_INF_REL_PATH, sizeof(NETFLT_MP_INF_REL_PATH)); 641 LogStringW(hModule, TEXT("vboxNetFltQueryInfArray: INF 2: %s"), apInfFullPaths[1]); 637 642 } 638 643 else 639 644 { 640 LogString(hModule, TEXT("vboxNetFltQueryInfArray: MsiGetPropertyW failes, r (%d)"), r); 645 if (uErr != ERROR_SUCCESS) 646 LogStringW(hModule, TEXT("vboxNetFltQueryInfArray: MsiGetPropertyW failed, error = 0x%x"), uErr); 647 else 648 LogStringW(hModule, TEXT("vboxNetFltQueryInfArray: Empty installation directory")); 641 649 } 642 650 } 643 651 else 644 652 { 645 r = ERROR_GEN_FAILURE; 646 LogString(hModule, TEXT("vboxNetFltQueryInfArray: buffer array size is < 2 : (%d)"), *pcInfs); 647 *pcInfs = 2; 648 } 649 650 return r; 653 uErr = ERROR_BUFFER_OVERFLOW; 654 LogStringW(hModule, TEXT("vboxNetFltQueryInfArray: Buffer array size is < 2 (%u)"), *pcInfs); 655 } 656 657 return uErr; 651 658 } 652 659 … … 656 663 { 657 664 #ifdef VBOX_WITH_NETFLT 658 INetCfg *p nc;659 UINT r;660 661 inintWinNetCfgLogger(hModule);665 INetCfg *pNetCfg; 666 UINT uErr; 667 668 netCfgLoggerEnable(hModule); 662 669 663 670 BOOL bOldIntMode = SetupSetNonInteractiveMode(FALSE); … … 665 672 __try 666 673 { 667 LogString(hModule, TEXT("Uninstalling NetFlt")); 668 669 r = doNetCfgInit(hModule, &pnc, TRUE); 670 Assert(r == ERROR_SUCCESS); 671 if(r == ERROR_SUCCESS) 672 { 673 HRESULT hr = VBoxNetCfgWinNetFltUninstall(pnc); 674 Assert(hr == S_OK); 675 if(hr != S_OK) 676 { 677 LogString(hModule, TEXT("UninstallNetFlt: VBoxNetCfgWinUninstallComponent failed, hr (0x%x)"), hr); 678 } 679 680 r = Hresult2Error(hModule, hr); 681 682 VBoxNetCfgWinReleaseINetCfg(pnc, TRUE); 683 684 /* Never fail the uninstall */ 685 r = ERROR_SUCCESS; 674 LogStringW(hModule, TEXT("Uninstalling NetFlt")); 675 676 uErr = doNetCfgInit(hModule, &pNetCfg, TRUE); 677 if (uErr == ERROR_SUCCESS) 678 { 679 HRESULT hr = VBoxNetCfgWinNetFltUninstall(pNetCfg); 680 if (hr != S_OK) 681 LogStringW(hModule, TEXT("UninstallNetFlt: VBoxNetCfgWinUninstallComponent failed, error = 0x%x"), hr); 682 683 uErr = ErrorConvertFromHResult(hModule, hr); 684 685 VBoxNetCfgWinReleaseINetCfg(pNetCfg, TRUE); 686 687 LogStringW(hModule, TEXT("Uninstalling NetFlt done, error = 0x%x"), uErr); 688 689 /* Never fail on uninstall. */ 690 uErr = ERROR_SUCCESS; 686 691 } 687 692 else 688 { 689 LogString(hModule, TEXT("UninstallNetFlt: doNetCfgInit failed, r (0x%x)"), r); 690 } 691 692 LogString(hModule, TEXT("Uninstalling NetFlt done, r (0x%x)"), r); 693 LogStringW(hModule, TEXT("UninstallNetFlt: doNetCfgInit failed, error = 0x%x"), uErr); 693 694 } 694 695 __finally 695 696 { 696 if (bOldIntMode)697 { 698 /* the prev mode != FALSE, i.e. non-interactive*/697 if (bOldIntMode) 698 { 699 /* The prev mode != FALSE, i.e. non-interactive. */ 699 700 SetupSetNonInteractiveMode(bOldIntMode); 700 701 } 701 finiWinNetCfgLogger(); 702 } 703 702 netCfgLoggerDisable(); 703 } 704 #endif /* VBOX_WITH_NETFLT */ 705 706 /* Never fail the install even if we did not succeed. */ 704 707 return ERROR_SUCCESS; 705 #else /* not defined VBOX_WITH_NETFLT */706 return ERROR_SUCCESS;707 #endif /* VBOX_WITH_NETFLT */708 708 } 709 709 … … 711 711 { 712 712 #ifdef VBOX_WITH_NETFLT 713 UINT r;714 INetCfg *p nc;715 716 inintWinNetCfgLogger(hModule);713 UINT uErr; 714 INetCfg *pNetCfg; 715 716 netCfgLoggerEnable(hModule); 717 717 718 718 BOOL bOldIntMode = SetupSetNonInteractiveMode(FALSE); … … 721 721 { 722 722 723 LogString(hModule, TEXT("Installing NetFlt")); 724 725 r = doNetCfgInit(hModule, &pnc, TRUE); 726 Assert(r == ERROR_SUCCESS); 727 if(r == ERROR_SUCCESS) 723 LogStringW(hModule, TEXT("Installing NetFlt")); 724 725 uErr = doNetCfgInit(hModule, &pNetCfg, TRUE); 726 if (uErr == ERROR_SUCCESS) 728 727 { 729 728 WCHAR PtInf[MAX_PATH]; … … 732 731 LPWSTR aInfs[] = {PtInf, MpInf}; 733 732 UINT cInfs = 2; 734 735 r = vboxNetFltQueryInfArray(hModule, aInfs, &cInfs, sz); 736 Assert(r == ERROR_SUCCESS); 737 Assert(cInfs == 2); 738 if(r == ERROR_SUCCESS) 733 uErr = vboxNetFltQueryInfArray(hModule, aInfs, &cInfs, sz); 734 if (uErr == ERROR_SUCCESS) 739 735 { 740 // HRESULT hr = VBoxNetCfgWinInstallSpecifiedComponent ( 741 // pnc, 742 // (LPCWSTR*)aInfs, 743 // cInfs, 744 // NETFLT_ID, 745 // &GUID_DEVCLASS_NETSERVICE, 746 // true); 747 HRESULT hr = VBoxNetCfgWinNetFltInstall(pnc, (LPCWSTR*)aInfs, cInfs); 748 Assert(hr == S_OK); 749 if(hr != S_OK) 750 { 751 LogString(hModule, TEXT("InstallNetFlt: VBoxNetCfgWinInstallSpecifiedComponent failed, hr (0x%x)"), hr); 752 } 753 754 r = Hresult2Error(hModule, hr); 736 HRESULT hr = VBoxNetCfgWinNetFltInstall(pNetCfg, (LPCWSTR*)aInfs, cInfs); 737 if (FAILED(hr)) 738 LogStringW(hModule, TEXT("InstallNetFlt: VBoxNetCfgWinNetFltInstall failed, error = 0x%x"), hr); 739 740 uErr = ErrorConvertFromHResult(hModule, hr); 755 741 } 756 742 else 757 { 758 LogString(hModule, TEXT("InstallNetFlt: vboxNetFltQueryInfArray failed, r (0x%x)"), r); 759 } 760 761 VBoxNetCfgWinReleaseINetCfg(pnc, TRUE); 762 763 /* Never fail the uninstall */ 764 r = ERROR_SUCCESS; 743 LogStringW(hModule, TEXT("InstallNetFlt: vboxNetFltQueryInfArray failed, error = 0x%x"), uErr); 744 745 VBoxNetCfgWinReleaseINetCfg(pNetCfg, TRUE); 746 747 LogStringW(hModule, TEXT("Installing NetFlt done")); 765 748 } 766 749 else 767 { 768 LogString(hModule, TEXT("InstallNetFlt: doNetCfgInit failed, r (0x%x)"), r); 769 } 770 771 LogString(hModule, TEXT("Installing NetFlt done, r (0x%x)"), r); 750 LogStringW(hModule, TEXT("InstallNetFlt: doNetCfgInit failed, error = 0x%x"), uErr); 772 751 } 773 752 __finally 774 753 { 775 if (bOldIntMode)776 { 777 /* the prev mode != FALSE, i.e. non-interactive*/754 if (bOldIntMode) 755 { 756 /* The prev mode != FALSE, i.e. non-interactive. */ 778 757 SetupSetNonInteractiveMode(bOldIntMode); 779 758 } 780 finiWinNetCfgLogger(); 781 } 782 759 netCfgLoggerDisable(); 760 } 761 #endif /* VBOX_WITH_NETFLT */ 762 763 /* Never fail the install even if we did not succeed. */ 783 764 return ERROR_SUCCESS; 784 #else /* not defined VBOX_WITH_NETFLT */785 return ERROR_SUCCESS;786 #endif /* VBOX_WITH_NETFLT */787 765 } 788 766 … … 793 771 DWORD winEr; 794 772 795 if (SetupDiGetDeviceRegistryPropertyW(hDevInfo, pDev,773 if (SetupDiGetDeviceRegistryPropertyW(hDevInfo, pDev, 796 774 SPDRP_FRIENDLYNAME , /* IN DWORD Property,*/ 797 775 NULL, /*OUT PDWORD PropertyRegDataType, OPTIONAL*/ … … 820 798 ); 821 799 Assert(winEr == ERROR_SUCCESS); 822 if (winEr == ERROR_SUCCESS)800 if (winEr == ERROR_SUCCESS) 823 801 { 824 802 WCHAR ConnectoinName[128]; … … 827 805 HRESULT hr = VBoxNetCfgWinGenHostonlyConnectionName (DevName, ConnectoinName, &cbName); 828 806 Assert(hr == S_OK); 829 if (hr == S_OK)807 if (SUCCEEDED(hr)) 830 808 { 831 809 hr = VBoxNetCfgWinRenameConnection (guid, ConnectoinName); … … 848 826 { 849 827 #ifdef VBOX_WITH_NETFLT 850 inintWinNetCfgLogger(hModule);851 852 BOOL b PrevMode = SetupSetNonInteractiveMode(FALSE);828 netCfgLoggerEnable(hModule); 829 830 BOOL bSetupModeInteractive = SetupSetNonInteractiveMode(FALSE); 853 831 bool bSetStaticIp = true; 854 832 855 LogString (hModule, TEXT("Creating Host-Only Interface"));833 LogStringW(hModule, TEXT("Creating host-only interface")); 856 834 857 835 HRESULT hr = VBoxNetCfgWinRemoveAllNetDevicesOfId(NETADP_ID); 858 Assert(hr == S_OK); 859 if(hr != S_OK) 860 { 861 LogString(hModule, TEXT("CreateHostOnlyInterface: VBoxNetCfgWinRemoveAllNetDevicesOfId failed, hr (0x%x)"), hr); 836 if (FAILED(hr)) 837 { 838 LogStringW(hModule, TEXT("CreateHostOnlyInterface: VBoxNetCfgWinRemoveAllNetDevicesOfId failed, error = 0x%x"), hr); 862 839 bSetStaticIp = false; 863 840 } … … 868 845 LPCWSTR pInfPath = NULL; 869 846 bool bIsFile = false; 870 UINT r = MsiGetPropertyW(hModule, L"CustomActionData", MpInf, &cSize); 871 Assert(r == ERROR_SUCCESS); 872 if(r == ERROR_SUCCESS) 873 { 874 LogString(hModule, TEXT("NetAdpDir property: (%s)"), MpInf); 875 if(cSize) 876 { 877 if(MpInf[cSize-1] != L'\\') 847 UINT uErr = MsiGetPropertyW(hModule, L"CustomActionData", MpInf, &cSize); 848 if (uErr == ERROR_SUCCESS) 849 { 850 if (cSize) 851 { 852 LogStringW(hModule, TEXT("CreateHostOnlyInterface: NetAdpDir property = %s"), MpInf); 853 if (MpInf[cSize-1] != L'\\') 878 854 { 879 855 MpInf[cSize] = L'\\'; … … 881 857 MpInf[cSize] = L'\0'; 882 858 } 883 // wcscat(MpInf, L"VBoxNetFlt.inf"); 859 860 /** @todo r=andy Avoid wcscat, can cause buffer overruns! */ 884 861 wcscat(MpInf, L"drivers\\network\\netadp\\VBoxNetAdp.inf"); 885 862 pInfPath = MpInf; 886 863 bIsFile = true; 887 LogString(hModule, TEXT("Resulting inf path is: (%s)"), pInfPath); 864 865 LogStringW(hModule, TEXT("CreateHostOnlyInterface: Resulting INF path = %s"), pInfPath); 888 866 } 889 867 else 890 { 891 LogString(hModule, TEXT("CreateHostOnlyInterface: NetAdpDir property value is empty")); 892 } 868 LogStringW(hModule, TEXT("CreateHostOnlyInterface: NetAdpDir property value is empty")); 893 869 } 894 870 else 895 { 896 LogString(hModule, TEXT("CreateHostOnlyInterface: failed to get NetAdpDir property, r(%d)"), r); 897 } 898 899 /* make sure the inf file is installed */ 900 if(!!pInfPath && bIsFile) 901 { 902 HRESULT tmpHr = VBoxDrvCfgInfInstall(pInfPath); 903 Assert(tmpHr == S_OK); 904 } 905 906 hr = VBoxNetCfgWinCreateHostOnlyNetworkInterface (pInfPath, bIsFile, &guid, NULL, NULL); 907 Assert(hr == S_OK); 908 if(hr == S_OK) 909 { 910 ULONG ip = inet_addr("192.168.56.1"); 911 ULONG mask = inet_addr("255.255.255.0"); 912 913 hr = VBoxNetCfgWinEnableStaticIpConfig(&guid, ip, mask); 914 Assert(hr == S_OK); 915 if(hr != S_OK) 916 { 917 LogString(hModule, TEXT("CreateHostOnlyInterface: VBoxNetCfgWinEnableStaticIpConfig failed, hr (0x%x)"), hr); 871 LogStringW(hModule, TEXT("CreateHostOnlyInterface: Failed to get NetAdpDir property, error = 0x%x"), uErr); 872 873 /* Make sure the inf file is installed. */ 874 if (!!pInfPath && bIsFile) 875 { 876 hr = VBoxDrvCfgInfInstall(pInfPath); 877 if (FAILED(hr)) 878 LogStringW(hModule, TEXT("CreateHostOnlyInterface: Failed to install INF file, error = 0x%x"), hr); 879 } 880 881 if (SUCCEEDED(hr)) 882 { 883 hr = VBoxNetCfgWinCreateHostOnlyNetworkInterface(pInfPath, bIsFile, &guid, NULL, NULL); 884 if (SUCCEEDED(hr)) 885 { 886 ULONG ip = inet_addr("192.168.56.1"); 887 ULONG mask = inet_addr("255.255.255.0"); 888 hr = VBoxNetCfgWinEnableStaticIpConfig(&guid, ip, mask); 889 if (FAILED(hr)) 890 LogStringW(hModule, TEXT("CreateHostOnlyInterface: VBoxNetCfgWinEnableStaticIpConfig failed, error = 0x%x"), hr); 891 } 892 else 893 LogStringW(hModule, TEXT("CreateHostOnlyInterface: VBoxNetCfgWinCreateHostOnlyNetworkInterface failed, error = 0x%x"), hr); 894 } 895 896 if (SUCCEEDED(hr)) 897 LogStringW(hModule, TEXT("Creating host-only interface done")); 898 899 /* Restore original setup mode. */ 900 if (bSetupModeInteractive) 901 SetupSetNonInteractiveMode(bSetupModeInteractive); 902 903 netCfgLoggerDisable(); 904 905 #endif /* VBOX_WITH_NETFLT */ 906 907 /* Never fail the install even if we did not succeed. */ 908 return ERROR_SUCCESS; 909 } 910 911 UINT __stdcall RemoveHostOnlyInterfaces(MSIHANDLE hModule) 912 { 913 #ifdef VBOX_WITH_NETFLT 914 netCfgLoggerEnable(hModule); 915 916 LogStringW(hModule, TEXT("RemoveHostOnlyInterfaces: Removing All Host-Only Interface")); 917 918 BOOL bSetupModeInteractive = SetupSetNonInteractiveMode(FALSE); 919 920 HRESULT hr = VBoxNetCfgWinRemoveAllNetDevicesOfId(NETADP_ID); 921 if (SUCCEEDED(hr)) 922 { 923 hr = VBoxDrvCfgInfUninstallAllSetupDi(&GUID_DEVCLASS_NET, NETADP_ID, L"Net", 0/* could be SUOI_FORCEDELETE */); 924 if (FAILED(hr)) 925 { 926 LogStringW(hModule, TEXT("RemoveHostOnlyInterfaces: NetAdp uninstalled successfully, but failed to remove infs\n")); 918 927 } 919 928 } 920 929 else 921 { 922 LogString(hModule, TEXT("CreateHostOnlyInterface: VBoxNetCfgWinCreateHostOnlyNetworkInterface failed, hr (0x%x)"), hr); 923 } 924 925 if(bPrevMode) 926 { 927 /* the prev mode != FALSE, i.e. non-interactive */ 928 SetupSetNonInteractiveMode(bPrevMode); 929 } 930 931 finiWinNetCfgLogger(); 932 933 /* never fail the install even if we are not succeeded */ 930 LogStringW(hModule, TEXT("RemoveHostOnlyInterfaces: NetAdp uninstall failed, hr = 0x%x\n"), hr); 931 932 /* Restore original setup mode. */ 933 if (bSetupModeInteractive) 934 SetupSetNonInteractiveMode(bSetupModeInteractive); 935 936 netCfgLoggerDisable(); 937 #endif /* VBOX_WITH_NETFLT */ 938 939 /* Never fail the install even if we did not succeed. */ 934 940 return ERROR_SUCCESS; 935 #else /* not defined VBOX_WITH_NETFLT */ 936 return ERROR_SUCCESS; 937 #endif /* VBOX_WITH_NETFLT */ 938 } 939 940 UINT __stdcall RemoveHostOnlyInterfaces(MSIHANDLE hModule) 941 { 942 #ifdef VBOX_WITH_NETFLT 943 inintWinNetCfgLogger(hModule); 944 945 LogString(hModule, TEXT("Removing All Host-Only Interface")); 946 947 BOOL bPrevMode = SetupSetNonInteractiveMode(FALSE); 948 949 HRESULT hr = VBoxNetCfgWinRemoveAllNetDevicesOfId(NETADP_ID); 950 if(hr == S_OK) 951 { 952 hr = VBoxDrvCfgInfUninstallAllSetupDi(&GUID_DEVCLASS_NET, NETADP_ID, L"Net", 0/* could be SUOI_FORCEDELETE */); 953 if(hr != S_OK) 954 { 955 LogString(hModule, TEXT("NetAdp uninstalled successfully, but failed to remove infs\n")); 956 } 957 } 958 else 959 { 960 LogString(hModule, TEXT("NetAdp uninstall failed, hr = 0x%x\n"), hr); 961 } 962 963 if(bPrevMode) 964 { 965 /* the prev mode != FALSE, i.e. non-interactive */ 966 SetupSetNonInteractiveMode(bPrevMode); 967 } 968 969 finiWinNetCfgLogger(); 970 971 return ERROR_SUCCESS; 972 #else /* not defined VBOX_WITH_NETFLT */ 973 return ERROR_SUCCESS; 974 #endif /* VBOX_WITH_NETFLT */ 975 } 976 977 static bool IsTAPDevice (const TCHAR *a_pcGUID) 941 } 942 943 static bool IsTAPDevice(const TCHAR *pcGUID) 978 944 { 979 945 HKEY hNetcard; 980 LONG status; 981 DWORD len; 946 bool bIsTapDevice = false; 947 LONG lStatus = RegOpenKeyEx(HKEY_LOCAL_MACHINE, 948 TEXT("SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002BE10318}"), 949 0, KEY_READ, &hNetcard); 950 if (lStatus != ERROR_SUCCESS) 951 return false; 952 982 953 int i = 0; 983 bool ret = false; 984 985 status = RegOpenKeyEx (HKEY_LOCAL_MACHINE, 986 TEXT("SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E972-E325-11CE-BFC1-08002BE10318}"), 987 0, KEY_READ, &hNetcard); 988 989 if (status != ERROR_SUCCESS) 990 return false; 991 992 while(true) 954 while (true) 993 955 { 994 956 TCHAR szEnumName[256]; … … 997 959 HKEY hNetCardGUID; 998 960 999 len = sizeof(szEnumName);1000 status = RegEnumKeyEx (hNetcard, i, szEnumName, &len, NULL, NULL, NULL, NULL);1001 if ( status != ERROR_SUCCESS)961 DWORD dwLen = sizeof(szEnumName); 962 lStatus = RegEnumKeyEx(hNetcard, i, szEnumName, &dwLen, NULL, NULL, NULL, NULL); 963 if (lStatus != ERROR_SUCCESS) 1002 964 break; 1003 965 1004 status = RegOpenKeyEx (hNetcard, szEnumName, 0, KEY_READ, &hNetCardGUID); 1005 if (status == ERROR_SUCCESS) 1006 { 1007 len = sizeof (szNetCfgInstanceId); 1008 status = RegQueryValueEx (hNetCardGUID, TEXT("NetCfgInstanceId"), NULL, &dwKeyType, (LPBYTE)szNetCfgInstanceId, &len); 1009 if (status == ERROR_SUCCESS && dwKeyType == REG_SZ) 966 lStatus = RegOpenKeyEx(hNetcard, szEnumName, 0, KEY_READ, &hNetCardGUID); 967 if (lStatus == ERROR_SUCCESS) 968 { 969 dwLen = sizeof(szNetCfgInstanceId); 970 lStatus = RegQueryValueEx(hNetCardGUID, TEXT("NetCfgInstanceId"), NULL, &dwKeyType, (LPBYTE)szNetCfgInstanceId, &dwLen); 971 if ( lStatus == ERROR_SUCCESS 972 && dwKeyType == REG_SZ) 1010 973 { 1011 974 TCHAR szNetProductName[256]; … … 1013 976 1014 977 szNetProductName[0] = 0; 1015 len = sizeof(szNetProductName);1016 status = RegQueryValueEx (hNetCardGUID, TEXT("ProductName"), NULL, &dwKeyType, (LPBYTE)szNetProductName, &len);978 dwLen = sizeof(szNetProductName); 979 lStatus = RegQueryValueEx(hNetCardGUID, TEXT("ProductName"), NULL, &dwKeyType, (LPBYTE)szNetProductName, &dwLen); 1017 980 1018 981 szNetProviderName[0] = 0; 1019 len = sizeof(szNetProviderName);1020 status = RegQueryValueEx (hNetCardGUID, TEXT("ProviderName"), NULL, &dwKeyType, (LPBYTE)szNetProviderName, &len);1021 1022 if ( !wcscmp(szNetCfgInstanceId, a_pcGUID)982 dwLen = sizeof(szNetProviderName); 983 lStatus = RegQueryValueEx(hNetCardGUID, TEXT("ProviderName"), NULL, &dwKeyType, (LPBYTE)szNetProviderName, &dwLen); 984 985 if ( !wcscmp(szNetCfgInstanceId, pcGUID) 1023 986 && !wcscmp(szNetProductName, TEXT("VirtualBox TAP Adapter")) 1024 987 && ( (!wcscmp(szNetProviderName, TEXT("innotek GmbH"))) /* Legacy stuff. */ … … 1028 991 ) 1029 992 { 1030 ret= true;993 bIsTapDevice = true; 1031 994 RegCloseKey(hNetCardGUID); 1032 995 break; … … 1039 1002 1040 1003 RegCloseKey (hNetcard); 1041 return ret;1004 return bIsTapDevice; 1042 1005 } 1043 1006 … … 1047 1010 if (1) { \ 1048 1011 rc = 0; \ 1049 LogString (a_hModule, strAndArgs); \1012 LogStringW(hModule, strAndArgs); \ 1050 1013 break; \ 1051 1014 } else do {} while (0) 1052 1015 1053 int removeNetworkInterface (MSIHANDLE a_hModule, const TCHAR* pcGUID)1016 int removeNetworkInterface(MSIHANDLE hModule, const TCHAR* pcGUID) 1054 1017 { 1055 1018 int rc = 1; … … 1070 1033 TEXT("{4D36E972-E325-11CE-BFC1-08002BE10318}\\%s"), 1071 1034 pcGUID); 1072 LONG status;1073 status = RegOpenKeyEx(HKEY_LOCAL_MACHINE, strRegLocation, 0,1035 LONG lStatus; 1036 lStatus = RegOpenKeyEx(HKEY_LOCAL_MACHINE, strRegLocation, 0, 1074 1037 KEY_READ, &hkeyNetwork); 1075 if (( status != ERROR_SUCCESS) || !hkeyNetwork)1076 SetErrBreak 1077 1078 status = RegOpenKeyExA(hkeyNetwork, "Connection", 0,1038 if ((lStatus != ERROR_SUCCESS) || !hkeyNetwork) 1039 SetErrBreak((TEXT("VBox HostInterfaces: Host interface network was not found in registry (%s)! [1]"), strRegLocation)); 1040 1041 lStatus = RegOpenKeyExA(hkeyNetwork, "Connection", 0, 1079 1042 KEY_READ, &hkeyConnection); 1080 if (( status != ERROR_SUCCESS) || !hkeyConnection)1081 SetErrBreak 1043 if ((lStatus != ERROR_SUCCESS) || !hkeyConnection) 1044 SetErrBreak((TEXT("VBox HostInterfaces: Host interface network was not found in registry (%s)! [2]"), strRegLocation)); 1082 1045 1083 1046 DWORD len = sizeof (lszPnPInstanceId); 1084 1047 DWORD dwKeyType; 1085 status = RegQueryValueExW(hkeyConnection, L"PnPInstanceID", NULL,1048 lStatus = RegQueryValueExW(hkeyConnection, L"PnPInstanceID", NULL, 1086 1049 &dwKeyType, (LPBYTE) lszPnPInstanceId, &len); 1087 if (( status != ERROR_SUCCESS) || (dwKeyType != REG_SZ))1088 SetErrBreak 1050 if ((lStatus != ERROR_SUCCESS) || (dwKeyType != REG_SZ)) 1051 SetErrBreak((TEXT("VBox HostInterfaces: Host interface network was not found in registry (%s)! [3]"), strRegLocation)); 1089 1052 } 1090 1053 while (0); 1091 1054 1092 1055 if (hkeyConnection) 1093 RegCloseKey 1056 RegCloseKey(hkeyConnection); 1094 1057 if (hkeyNetwork) 1095 RegCloseKey 1058 RegCloseKey(hkeyNetwork); 1096 1059 1097 1060 /* … … 1101 1064 1102 1065 HDEVINFO hDeviceInfo = INVALID_HANDLE_VALUE; 1066 BOOL fResult; 1103 1067 1104 1068 do 1105 1069 { 1106 BOOL ok;1107 1070 DWORD ret = 0; 1108 1071 GUID netGuid; 1109 1072 SP_DEVINFO_DATA DeviceInfoData; 1110 1073 DWORD index = 0; 1111 BOOL found = FALSE;1112 1074 DWORD size = 0; 1113 1075 1114 1076 /* initialize the structure size */ 1115 DeviceInfoData.cbSize = sizeof 1077 DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA); 1116 1078 1117 1079 /* copy the net class GUID */ 1118 memcpy 1080 memcpy(&netGuid, &GUID_DEVCLASS_NET, sizeof (GUID_DEVCLASS_NET)); 1119 1081 1120 1082 /* return a device info set contains all installed devices of the Net class */ 1121 hDeviceInfo = SetupDiGetClassDevs (&netGuid, NULL, NULL, DIGCF_PRESENT); 1122 1083 hDeviceInfo = SetupDiGetClassDevs(&netGuid, NULL, NULL, DIGCF_PRESENT); 1123 1084 if (hDeviceInfo == INVALID_HANDLE_VALUE) 1124 1085 { 1125 LogString (a_hModule, TEXT("VBox HostInterfaces: SetupDiGetClassDevs failed (0x%08X)!"), GetLastError());1126 SetErrBreak 1086 LogStringW(hModule, TEXT("VBox HostInterfaces: SetupDiGetClassDevs failed (0x%08X)!"), GetLastError()); 1087 SetErrBreak(TEXT("VBox HostInterfaces: Uninstallation failed!")); 1127 1088 } 1089 1090 BOOL fFoundDevice = FALSE; 1128 1091 1129 1092 /* enumerate the driver info list */ 1130 1093 while (TRUE) 1131 1094 { 1132 TCHAR *deviceHwid; 1133 1134 ok = SetupDiEnumDeviceInfo (hDeviceInfo, index, &DeviceInfoData); 1135 1136 if (!ok) 1095 TCHAR *pszDeviceHwid; 1096 1097 fResult = SetupDiEnumDeviceInfo(hDeviceInfo, index, &DeviceInfoData); 1098 if (!fResult) 1137 1099 { 1138 1100 if (GetLastError() == ERROR_NO_MORE_ITEMS) … … 1146 1108 1147 1109 /* try to get the hardware ID registry property */ 1148 ok = SetupDiGetDeviceRegistryProperty(hDeviceInfo,1149 &DeviceInfoData,1150 SPDRP_HARDWAREID,1151 NULL,1152 NULL,1153 0,1154 &size);1155 if (! ok)1110 fResult = SetupDiGetDeviceRegistryProperty(hDeviceInfo, 1111 &DeviceInfoData, 1112 SPDRP_HARDWAREID, 1113 NULL, 1114 NULL, 1115 0, 1116 &size); 1117 if (!fResult) 1156 1118 { 1157 1119 if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) … … 1161 1123 } 1162 1124 1163 deviceHwid = (TCHAR *) malloc (size); 1164 ok = SetupDiGetDeviceRegistryProperty (hDeviceInfo, 1165 &DeviceInfoData, 1166 SPDRP_HARDWAREID, 1167 NULL, 1168 (PBYTE)deviceHwid, 1169 size, 1170 NULL); 1171 if (!ok) 1125 pszDeviceHwid = (TCHAR *)malloc(size); 1126 if (pszDeviceHwid) 1172 1127 { 1173 free (deviceHwid); 1174 deviceHwid = NULL; 1175 index++; 1176 continue; 1128 fResult = SetupDiGetDeviceRegistryProperty(hDeviceInfo, 1129 &DeviceInfoData, 1130 SPDRP_HARDWAREID, 1131 NULL, 1132 (PBYTE)pszDeviceHwid, 1133 size, 1134 NULL); 1135 if (!fResult) 1136 { 1137 free(pszDeviceHwid); 1138 pszDeviceHwid = NULL; 1139 index++; 1140 continue; 1141 } 1177 1142 } 1178 1143 } … … 1184 1149 } 1185 1150 1186 for (TCHAR *t = deviceHwid;1187 t && *t && t < & deviceHwid[size / sizeof(TCHAR)];1151 for (TCHAR *t = pszDeviceHwid; 1152 t && *t && t < &pszDeviceHwid[size / sizeof(TCHAR)]; 1188 1153 t += _tcslen (t) + 1) 1189 1154 { 1190 if (!_tcsicmp 1155 if (!_tcsicmp(VBOX_TAP_HWID, t)) 1191 1156 { 1192 1157 /* get the device instance ID */ … … 1196 1161 { 1197 1162 /* compare to what we determined before */ 1198 if ( wcscmp(devID, lszPnPInstanceId) == 0)1163 if (!wcscmp(devID, lszPnPInstanceId)) 1199 1164 { 1200 f ound= TRUE;1165 fFoundDevice = TRUE; 1201 1166 break; 1202 1167 } … … 1205 1170 } 1206 1171 1207 if ( deviceHwid)1172 if (pszDeviceHwid) 1208 1173 { 1209 free (deviceHwid);1210 deviceHwid = NULL;1174 free(pszDeviceHwid); 1175 pszDeviceHwid = NULL; 1211 1176 } 1212 1177 1213 if (f ound)1178 if (fFoundDevice) 1214 1179 break; 1215 1180 … … 1217 1182 } 1218 1183 1219 if (found == FALSE) 1220 SetErrBreak (TEXT("VBox HostInterfaces: Host Interface Network driver not found!")); 1221 1222 ok = SetupDiSetSelectedDevice (hDeviceInfo, &DeviceInfoData); 1223 if (!ok) 1184 if (fFoundDevice) 1224 1185 { 1225 LogString (a_hModule, TEXT("VBox HostInterfaces: SetupDiSetSelectedDevice failed (0x%08X)!"), GetLastError()); 1226 SetErrBreak (TEXT("VBox HostInterfaces: Uninstallation failed!")); 1186 fResult = SetupDiSetSelectedDevice(hDeviceInfo, &DeviceInfoData); 1187 if (!fResult) 1188 { 1189 LogStringW(hModule, TEXT("VBox HostInterfaces: SetupDiSetSelectedDevice failed (0x%08X)!"), GetLastError()); 1190 SetErrBreak(TEXT("VBox HostInterfaces: Uninstallation failed!")); 1191 } 1192 1193 fResult = SetupDiCallClassInstaller(DIF_REMOVE, hDeviceInfo, &DeviceInfoData); 1194 if (!fResult) 1195 { 1196 LogStringW(hModule, TEXT("VBox HostInterfaces: SetupDiCallClassInstaller (DIF_REMOVE) failed (0x%08X)!"), GetLastError()); 1197 SetErrBreak(TEXT("VBox HostInterfaces: Uninstallation failed!")); 1198 } 1227 1199 } 1228 1229 ok = SetupDiCallClassInstaller (DIF_REMOVE, hDeviceInfo, &DeviceInfoData); 1230 if (!ok) 1231 { 1232 LogString (a_hModule, TEXT("VBox HostInterfaces: SetupDiCallClassInstaller (DIF_REMOVE) failed (0x%08X)!"), GetLastError()); 1233 SetErrBreak (TEXT("VBox HostInterfaces: Uninstallation failed!")); 1234 } 1200 else 1201 SetErrBreak(TEXT("VBox HostInterfaces: Host interface network device not found!")); 1235 1202 } 1236 1203 while (0); … … 1238 1205 /* clean up the device info set */ 1239 1206 if (hDeviceInfo != INVALID_HANDLE_VALUE) 1240 SetupDiDestroyDeviceInfoList 1207 SetupDiDestroyDeviceInfoList(hDeviceInfo); 1241 1208 } 1242 1209 while (0); … … 1244 1211 } 1245 1212 1246 UINT __stdcall UninstallTAPInstances (MSIHANDLE a_hModule)1213 UINT __stdcall UninstallTAPInstances(MSIHANDLE hModule) 1247 1214 { 1248 1215 static const TCHAR *NetworkKey = TEXT("SYSTEM\\CurrentControlSet\\Control\\Network\\") 1249 1216 TEXT("{4D36E972-E325-11CE-BFC1-08002BE10318}"); 1250 1217 HKEY hCtrlNet; 1251 LONG status = 0; 1252 DWORD len = 0; 1253 LONG cnt = 0; 1254 1255 status = RegOpenKeyEx (HKEY_LOCAL_MACHINE, NetworkKey, 0, KEY_READ, &hCtrlNet); 1256 if (status == ERROR_SUCCESS) 1257 { 1258 LogString(a_hModule, TEXT("VBox HostInterfaces: Enumerating interfaces ...")); 1218 1219 LONG lStatus = RegOpenKeyEx(HKEY_LOCAL_MACHINE, NetworkKey, 0, KEY_READ, &hCtrlNet); 1220 if (lStatus == ERROR_SUCCESS) 1221 { 1222 LogStringW(hModule, TEXT("VBox HostInterfaces: Enumerating interfaces ...")); 1259 1223 for (int i = 0;; ++ i) 1260 1224 { … … 1262 1226 TCHAR szNetworkConnection [256] = { 0 }; 1263 1227 1264 len = sizeof(szNetworkGUID);1265 status = RegEnumKeyEx (hCtrlNet, i, szNetworkGUID, &len, NULL, NULL, NULL, NULL);1266 if ( status != ERROR_SUCCESS)1228 DWORD dwLen = (DWORD)sizeof(szNetworkGUID); 1229 lStatus = RegEnumKeyEx(hCtrlNet, i, szNetworkGUID, &dwLen, NULL, NULL, NULL, NULL); 1230 if (lStatus != ERROR_SUCCESS) 1267 1231 { 1268 switch ( status)1232 switch (lStatus) 1269 1233 { 1270 1234 case ERROR_NO_MORE_ITEMS: 1271 LogString (a_hModule, TEXT("VBox HostInterfaces: No interfaces found."));1235 LogStringW(hModule, TEXT("VBox HostInterfaces: No interfaces found.")); 1272 1236 break; 1273 1237 default: 1274 LogString (a_hModule, TEXT("VBox HostInterfaces: Enumeration failed: %ld"), status);1238 LogStringW(hModule, TEXT("VBox HostInterfaces: Enumeration failed: %ld"), lStatus); 1275 1239 break; 1276 1240 }; … … 1280 1244 if (IsTAPDevice(szNetworkGUID)) 1281 1245 { 1282 LogString (a_hModule, TEXT("VBox HostInterfaces: Removing interface \"%s\" ..."), szNetworkGUID);1283 removeNetworkInterface ( a_hModule, szNetworkGUID);1284 status = RegDeleteKey (hCtrlNet, szNetworkGUID);1246 LogStringW(hModule, TEXT("VBox HostInterfaces: Removing interface \"%s\" ..."), szNetworkGUID); 1247 removeNetworkInterface (hModule, szNetworkGUID); 1248 lStatus = RegDeleteKey (hCtrlNet, szNetworkGUID); 1285 1249 } 1286 1250 } 1287 1251 RegCloseKey (hCtrlNet); 1288 LogString (a_hModule, TEXT("VBox HostInterfaces: Removing interfaces done."));1252 LogStringW(hModule, TEXT("VBox HostInterfaces: Removing interfaces done.")); 1289 1253 } 1290 1254 return ERROR_SUCCESS; -
trunk/src/VBox/Installer/win/Languages/de_DE.wxl
r32394 r37289 1 <?xml version="1.0" encoding="utf-8"?>2 <WixLocalization xmlns="http://schemas.microsoft.com/wix/2003/11/localization" Codepage= '1252'>1 <?xml version="1.0" encoding="utf-8"?> 2 <WixLocalization xmlns="http://schemas.microsoft.com/wix/2003/11/localization" Codepage="1252" Culture="de_DE"> 3 3 4 4 <!-- 5 5 Language Definition Include for VirtualBox WiX script. 6 6 7 Copyright (C) 201 0Oracle Corporation7 Copyright (C) 2011 Oracle Corporation 8 8 9 9 All rights reserved. -
trunk/src/VBox/Installer/win/Languages/en_US.wxl
r32394 r37289 1 1 <?xml version="1.0" encoding="utf-8"?> 2 <WixLocalization xmlns="http://schemas.microsoft.com/wix/2003/11/localization" Codepage= '1252'>2 <WixLocalization xmlns="http://schemas.microsoft.com/wix/2003/11/localization" Codepage="1252" Culture="en_US"> 3 3 4 4 <!-- 5 5 Language Definition Include for VirtualBox WiX script. 6 6 7 Copyright (C) 201 0Oracle Corporation7 Copyright (C) 2011 Oracle Corporation 8 8 9 9 All rights reserved. -
trunk/src/VBox/Installer/win/Languages/fr_FR.wxl
r32394 r37289 1 1 <?xml version="1.0" encoding="utf-8"?> 2 <WixLocalization xmlns="http://schemas.microsoft.com/wix/2003/11/localization" Codepage= '1252'>2 <WixLocalization xmlns="http://schemas.microsoft.com/wix/2003/11/localization" Codepage="1252" Culture="fr_FR"> 3 3 4 4 <!-- -
trunk/src/VBox/Installer/win/Makefile.kmk
r37016 r37289 107 107 $(VBOX_WIN_INST_OUT_DIR)/$(PACKAGE_NAME_LANG)_$(lang).msi) \ 108 108 $(VBOX_WIN_INST_OUT_DIR)/Files_Doc.wxi \ 109 $(VBOX_WIN_INST_OUT_DIR)/Files_License.wxi 109 $(VBOX_WIN_INST_OUT_DIR)/Files_License.wxi \ 110 $(VBOX_WIN_INST_OUT_DIR)/Shortcuts_StartMenu.wxi 110 111 111 112 ifdef VBOX_WITH_COMBINED_PACKAGE … … 146 147 endif 147 148 149 # 150 # Surpress/skip the following ICE (internal consistency evaluators): 151 # - ICE64: Checks that new directories in the user profile are removed correctly in roaming scenarios. 152 # -> We don't want to remove system folders (like "Microsoft/Internet Explorer/Quick Launch"). 153 # 154 VBOX_MSI_ICE_IGNORE := \ 155 -ice:64 148 156 149 157 # … … 182 190 $$(call MSG_GENERATE,,$$@,$$<) 183 191 $(APPEND) -t $$@ '<?xml version="1.0" encoding="utf-8"?>' 184 $(APPEND) $$@ '<WixLocalization xmlns="http://schemas.microsoft.com/wix/200 3/11/localization" Codepage="1252">'192 $(APPEND) $$@ '<WixLocalization xmlns="http://schemas.microsoft.com/wix/2006/localization" Codepage="1252" Culture="$(lang)">' 185 193 186 194 $(REDIRECT) -a+to $$@ -- $(ECHO_EXT) -n '<String Id=\"LicenseText\">' … … 210 218 $(call MSG_GENERATE,,$@,$<) 211 219 $(APPEND) -t $@ '<?xml version="1.0" ?>' 212 $(APPEND) $@ '<Include >'220 $(APPEND) $@ '<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">' 213 221 ifdef VBOX_WITH_DOCS_CHM 214 $(APPEND) $@ ' <File Id=" VirtualBox.chm" Name="VBox.chm" LongName="VirtualBox.chm" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(PATH_BIN)/VirtualBox.chm"></File>'222 $(APPEND) $@ ' <File Id="file_VirtualBox.chm" Name="VirtualBox.chm" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(PATH_BIN)/VirtualBox.chm"></File>' 215 223 $(APPEND) -n $@ $(foreach lang,$(VBOX_MANUAL_ADD_LANGUAGES), \ 216 ' <File Id=" VirtualBox_$(lang).chm" Name="VB_$(lang).chm" LongName="VirtualBox_$(lang).chm" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(PATH_BIN)/VirtualBox_$(lang).chm"></File>')224 ' <File Id="file_VirtualBox_$(lang).chm" Name="VirtualBox_$(lang).chm" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(PATH_BIN)/VirtualBox_$(lang).chm"></File>') 217 225 endif 218 226 $(APPEND) $@ '</Include>' … … 221 229 $(call MSG_GENERATE,,$@,$<) 222 230 $(APPEND) -t $@ '<?xml version="1.0" ?>' 223 $(APPEND) $@ '<Include>' 224 $(APPEND) $@ ' <File Id="UserManual.pdf" Name="Manual.pdf" LongName="UserManual.pdf" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(PATH_BIN)/UserManual.pdf">' 225 $(APPEND) $@ ' <Shortcut Id="startmenuManPDF_en_US" Directory="ProgramMenuDir" Name="M_en_US" LongName="$$(loc.StartMenu_UserManual) (English)" WorkingDirectory="INSTALLDIR"/>' 231 $(APPEND) $@ '<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">' 232 $(APPEND) $@ ' <File Id="file_UserManual.pdf" Name="UserManual.pdf" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(PATH_BIN)/UserManual.pdf">' 226 233 $(APPEND) $@ ' </File>' 227 234 $(APPEND) -n $@ $(foreach lang,$(VBOX_MANUAL_ADD_LANGUAGES), \ 228 ' <File Id="UserManual_$(lang).pdf" Name="Mn_$(lang).pdf" LongName="UserManual_$(lang).pdf" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(PATH_BIN)/UserManual_$(lang).pdf">' \ 229 ' <Shortcut Id="startmenuManPDF_$(lang)" Directory="ProgramMenuDir" Name="M_$(lang)" LongName="$$(loc.StartMenu_UserManual) ($(VBOX_BRAND_$(lang)_LANG_NAME))" WorkingDirectory="INSTALLDIR"/>' \ 235 ' <File Id="file_UserManual_$(lang).pdf" Name="UserManual_$(lang).pdf" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(PATH_BIN)/UserManual_$(lang).pdf">' \ 230 236 ' </File>') 231 237 $(APPEND) $@ '</Include>' … … 234 240 $(call MSG_GENERATE,,$@,$<) 235 241 $(APPEND) -t $@ '<?xml version="1.0" ?>' 236 $(APPEND) $@ '<Include>' 237 $(APPEND) $@ ' <File Id="License_en_US.rtf" Name="Li_en_US.rtf" LongName="License_en_US.rtf" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(VBOX_BRAND_LICENSE_RTF)">' 238 $(APPEND) $@ ' <Shortcut Id="startmenuLicRTF_en_US" Directory="ProgramMenuDir" Name="L_en_US" LongName="$$(loc.StartMenu_License) (English)" WorkingDirectory="INSTALLDIR"/>' 239 $(APPEND) $@ ' </File>' 242 $(APPEND) $@ '<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">' 243 $(APPEND) $@ ' <File Id="file_License_en_US.rtf" Name="License_en_US.rtf" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(VBOX_BRAND_LICENSE_RTF)">' \ 244 ' </File>' 240 245 $(APPEND) -n $@ $(foreach lang,$(VBOX_MANUAL_ADD_LANGUAGES), \ 241 ' <File Id="License_$(lang).rtf" Name="Li_$(lang).rtf" LongName="License_$(lang).rtf" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(VBOX_BRAND_$(lang)_LICENSE_RTF)">' \ 242 ' <Shortcut Id="startmenuLicRTF_$(lang)" Directory="ProgramMenuDir" Name="L_$(lang)" LongName="$$(loc.StartMenu_License) ($(VBOX_BRAND_$(lang)_LANG_NAME))" WorkingDirectory="INSTALLDIR"/>' \ 246 ' <File Id="file_License_$(lang).rtf" Name="License_$(lang).rtf" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$(VBOX_BRAND_$(lang)_LICENSE_RTF)"/>' \ 243 247 ' </File>') 244 248 $(APPEND) $@ '</Include>' 245 249 250 $(VBOX_WIN_INST_OUT_DIR)/Shortcuts_StartMenu.wxi: $(MAKEFILE_CURRENT) | $$(dir $$@) 251 $(call MSG_GENERATE,,$@,$<) 252 $(APPEND) -t $@ '<?xml version="1.0" ?>' 253 $(APPEND) $@ '<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">' 254 # 255 # Documentation (PDF/CHM) 256 # 257 ifdef VBOX_WITH_DOCS_CHM 258 $(APPEND) $@ ' <Shortcut Id="sc_StartMenu_ManualCHM_en_US" Directory="dir_StartMenuVBox" Name="!(loc.StartMenu_UserManual) (CHM, English)" Description="!(loc.StartMenu_UserManual)"' \ 259 ' Target="[INSTALLDIR]VirtualBox.chm" WorkingDirectory="INSTALLDIR" Advertise="no"/>' 260 $(APPEND) -n $@ $(foreach lang,$(VBOX_MANUAL_ADD_LANGUAGES), \ 261 ' <Shortcut Id="sc_StartMenu_ManualCHM_$(lang)" Directory="dir_StartMenuVBox" Name="$!(loc.StartMenu_UserManual) (CHM, $(VBOX_BRAND_$(lang)_LANG_NAME))"' \ 262 ' Description="$!(loc.StartMenu_UserManual) ($(VBOX_BRAND_$(lang)_LANG_NAME))" Target="VirtualBox_$(lang).chm" WorkingDirectory="INSTALLDIR"/>') 263 endif 264 $(APPEND) $@ ' <Shortcut Id="sc_StartMenu_ManualPDF_en_US" Directory="dir_StartMenuVBox" Name="!(loc.StartMenu_UserManual) (PDF, English)" Description="!(loc.StartMenu_UserManual)"' \ 265 ' Target="[INSTALLDIR]UserManual.pdf" WorkingDirectory="INSTALLDIR" Advertise="no"/>' 266 $(APPEND) -n $@ $(foreach lang,$(VBOX_MANUAL_ADD_LANGUAGES), \ 267 ' <Shortcut Id="sc_StartMenu_ManualPDF_$(lang)" Directory="dir_StartMenuVBox" Name="$!(loc.StartMenu_UserManual) (PDF, $(VBOX_BRAND_$(lang)_LANG_NAME))"' \ 268 ' Description="$!(loc.StartMenu_UserManual) ($(VBOX_BRAND_$(lang)_LANG_NAME))" Target="UserManual_$(lang).pdf" WorkingDirectory="INSTALLDIR"/>') 269 # 270 # License(s) (RTF) 271 # 272 $(APPEND) $@ ' <Shortcut Id="sc_StartMenu_License_en_US" Directory="dir_StartMenuVBox" Name="!(loc.StartMenu_License) (English)" Description="!(loc.StartMenu_License)"' \ 273 ' Target="[INSTALLDIR]License_en_US.rtf" WorkingDirectory="INSTALLDIR" Advertise="no"/>' 274 $(APPEND) -n $@ $(foreach lang,$(VBOX_MANUAL_ADD_LANGUAGES), \ 275 ' <Shortcut Id="sc_StartMenu_License_$(lang)" Directory="dir_StartMenuVBox" Name="$!(loc.StartMenu_License) ($(VBOX_BRAND_$(lang)_LANG_NAME))"' \ 276 ' Description="$!(loc.StartMenu_License) ($(VBOX_BRAND_$(lang)_LANG_NAME))" Target="License_$(lang).rtf" WorkingDirectory="INSTALLDIR"/>') 277 $(APPEND) $@ '</Include>' 246 278 247 279 # … … 264 296 -loc $(VBOX_WIN_INST_OUT_DIR)/Languages/Language_$(lang).wxl \ 265 297 -loc $(VBOX_WIN_INST_OUT_DIR)/Languages/License_$(lang).wxl \ 298 -ext $(VBOX_PATH_WIX)/WixUIExtension.dll \ 299 -ext $(VBOX_PATH_WIX)/WixDifxAppExtension.dll \ 300 $(VBOX_MSI_ICE_IGNORE) \ 266 301 -out $$@ \ 267 302 $$< \ 268 $(VBOX_PATH_WIX)/wixca.wixlib \ 269 $(VBOX_PATH_DIFX)/DIFxApp.wixlib 303 $(if-expr "$(KBUILD_TARGET_ARCH)" == "x86", \ 304 $(VBOX_PATH_WIX)/difxapp_x86.wixlib, \ 305 $(VBOX_PATH_WIX)/difxapp_x64.wixlib) 270 306 $(RM) -f $(VBOX_WIN_INST_OUT_DIR)/Languages/$(lang).mst 271 307 $(call VBOX_SIGN_FILE_FN,$$@) … … 281 317 282 318 # Filter out some files depending on build type and compiler. 283 VBOX_MSI_DEPENDENCIES := $(filter-out wixca.dll, $(VBOX_MSI_DEPENDENCIES))284 319 ifeq ($(KBUILD_TYPE),release) 285 320 VBOX_MSI_DEPENDENCIES := $(filer-out $(PATH_OUT)/bin/VBoxDbg3.dll, $(VBOX_MSI_DEPENDENCIES)) … … 303 338 , $(VBOX_MSI_DEPENDENCIES)) 304 339 endif 340 # TODO: Add filtering out more dependencies here! 341 ifndef VBOX_WITH_QTGUI 342 $(PATH_OUT)/bin/VirtualBox.exe \ 343 $(PATH_OUT)/bin/VBoxTestOGL.exe \ 344 $(PATH_OUT)/bin/QtCoreVBox4.dll \ 345 $(PATH_OUT)/bin/QtGuiVBox4.dll \ 346 $(PATH_OUT)/bin/QtNetworkVBox4.dll \ 347 $(PATH_OUT)/bin/QtOpenGLVBox4.dll \ 348 $(PATH_OUT)/bin/accessible/qtaccessiblewidgets4.dll \ 349 , $(VBOX_MSI_DEPENDENCIES)) 350 endif 351 ifndef VBOX_WITH_PYTHON 352 VBOX_MSI_DEPENDENCIES := $(filer-out $ \ 353 $(PATH_OUT)/bin/sdk/installer/vboxapisetup.py \ 354 $(PATH_OUT)/bin/sdk/installer/vboxapi/__init__.py \ 355 $(PATH_OUT)/bin/sdk/installer/vboxapi/VirtualBox_constants.py \ 356 , $(VBOX_MSI_DEPENDENCIES)) 357 endif 358 ifndef VBOX_WITH_CROGL 359 VBOX_MSI_DEPENDENCIES := $(filer-out $ \ 360 $(PATH_OUT)/bin/VBoxOGLhostcrutil.dll \ 361 $(PATH_OUT)/bin/VBoxOGLhosterrorspu.dll \ 362 $(PATH_OUT)/bin/VBoxOGLrenderspu.dll \ 363 $(PATH_OUT)/bin/VBoxSharedCrOpenGL.dll \ 364 , $(VBOX_MSI_DEPENDENCIES)) 365 endif 366 ifndef VBOX_WITH_SECURELABEL 367 VBOX_MSI_DEPENDENCIES := $(filer-out $(PATH_OUT)/bin/SDL_ttf.dll, $(VBOX_MSI_DEPENDENCIES)) 368 endif 369 ifndef VBOX_WITH_WEBSERVICES 370 VBOX_MSI_DEPENDENCIES := $(filer-out $(PATH_OUT)/bin/vboxwebsrv.exe, $(VBOX_MSI_DEPENDENCIES)) 371 endif 372 305 373 ifneq ($(KBUILD_TARGET_ARCH),amd64) 306 374 VBOX_MSI_DEPENDENCIES := $(filter-out \ … … 384 452 -E 'VBOX_USE_VCC80=$(if $(VBOX_USE_VCC80),yes,no)' \ 385 453 -- \ 386 $(VBOX_PATH_WIX)/candle.exe $(filter-out $(VBOX_VERSION_STAMP),$$<) -out $$@ 454 $(VBOX_PATH_WIX)/candle.exe $(filter-out $(VBOX_VERSION_STAMP),$$<) \ 455 -ext $(VBOX_PATH_WIX)/WixUIExtension.dll \ 456 -ext $(VBOX_PATH_WIX)/WixDifxAppExtension.dll \ 457 -out $$@ 387 458 ifeq ($(lang),en_US) 388 459 # … … 420 491 $(APPEND) $@ '<Include>' 421 492 $(APPEND) -n $@ $(foreach lang,$(VBOX_APPROVED_GUI_LANGUAGES), \ 422 ' <File Id="nlsqt${lang}" Name="qt_${lang}.qm" LongName="qt_${lang}.qm" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" src="$$(env.PATH_OUT)\bin\nls\qt_${lang}.qm" />' \423 ' <File Id="nlsgui${lang}" Name=" vb_${lang}.qm" LongName="VirtualBox_${lang}.qm" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" src="$$(env.PATH_OUT)\bin\nls\VirtualBox_${lang}.qm" />')493 ' <File Id="nlsqt${lang}" Name="qt_${lang}.qm" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$$(env.PATH_OUT)\bin\nls\qt_${lang}.qm" />' \ 494 ' <File Id="nlsgui${lang}" Name="VirtualBox_${lang}.qm" DiskId="$(VBOX_INSTALLER_COMMON_DISKID)" Vital="yes" Source="$$(env.PATH_OUT)\bin\nls\VirtualBox_${lang}.qm" />') 424 495 $(APPEND) $@ '</Include>' 425 496 … … 476 547 $(VBOX_WIN_INST_OUT_DIR)/Files_Doc.wxi \ 477 548 $(VBOX_WIN_INST_OUT_DIR)/Files_License.wxi \ 549 $(VBOX_WIN_INST_OUT_DIR)/Shortcuts_StartMenu.wxi \ 478 550 $(foreach lang,$(VBOX_INSTALLER_LANGUAGES), $(VBOX_WIN_INST_OUT_DIR)/$(PACKAGE_NAME_LANG)_$(lang).msi) \ 479 551 $(foreach lang,$(VBOX_INSTALLER_ADD_LANGUAGES), $(VBOX_WIN_INST_OUT_DIR)/Languages/$(lang).mst) \ -
trunk/src/VBox/Installer/win/UserInterface.wxi
r35166 r37289 1 <?xml version="1.0" ?>1 <?xml version="1.0" encoding="UTF-8"?> 2 2 <!-- 3 User Interface Include for VirtualBox WiX script4 5 Copyright (C) 2006-201 0Oracle Corporation3 User interface include for VirtualBox WiX script. 4 5 Copyright (C) 2006-2011 Oracle Corporation 6 6 7 7 This file is part of VirtualBox Open Source Edition (OSE), as … … 14 14 --> 15 15 16 <Include> 17 16 <Include xmlns="http://schemas.microsoft.com/wix/2006/wi"> 18 17 <UI> 19 <Property Id="DefaultUIFont">DlgFont8</Property>20 <!-- <Property Id="ErrorDialog">ErrorDlg</Property> -->21 22 18 <!-- This dialog will be shown when the user cancels the installation --> 23 <Dialog Id=" CancelDlg" Width="260" Height="85" Title="[ProductName] $(loc.Setup)" NoMinimize="yes">24 <Control Id="No" Type="PushButton" X="132" Y="57" Width="56" Height="17" Default="yes" Cancel="yes" Text=" $(loc.ButtonText_No)">19 <Dialog Id="VBoxCancelDlg" Width="260" Height="85" Title="[ProductName] !(loc.Setup)" NoMinimize="yes"> 20 <Control Id="No" Type="PushButton" X="132" Y="57" Width="56" Height="17" Default="yes" Cancel="yes" Text="!(loc.ButtonText_No)"> 25 21 <Publish Event="EndDialog" Value="Return">1</Publish> 26 22 </Control> 27 <Control Id="Yes" Type="PushButton" X="72" Y="57" Width="56" Height="17" Text=" $(loc.ButtonText_Yes)">23 <Control Id="Yes" Type="PushButton" X="72" Y="57" Width="56" Height="17" Text="!(loc.ButtonText_Yes)"> 28 24 <Publish Event="EndDialog" Value="Exit">1</Publish> 29 25 </Control> 30 26 <Control Id="Text" Type="Text" X="48" Y="15" Width="194" Height="30"> 31 <Text> $(loc.CancelDlg_Question)</Text>27 <Text>!(loc.CancelDlg_Question)</Text> 32 28 </Control> 33 29 <Control Id="Icon" Type="Icon" X="15" Y="15" Width="24" Height="24" ToolTip="Information icon" FixedSize="yes" IconSize="32" Text="[InfoIcon]" /> … … 35 31 36 32 <!-- This is the very first page the user will see --> 37 <Dialog Id=" WelcomeDlg" Width="370" Height="270" Title="[ProductName] $(loc.Setup)" NoMinimize="yes">33 <Dialog Id="VBoxWelcomeDlg" Width="370" Height="270" Title="[ProductName] !(loc.Setup)" NoMinimize="yes"> 38 34 <!-- The wizard has a bitmap as background. The source is defined as a property below. --> 39 35 <Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" TabSkip="no" Text="[DialogBitmap]" /> … … 41 37 <!-- Title text drawn on the background --> 42 38 <Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes"> 43 <Text>{\DlgVerdanaBold13} $(loc.WelcomeDlg_Header)</Text>39 <Text>{\DlgVerdanaBold13}!(loc.WelcomeDlg_Header)</Text> 44 40 </Control> 45 41 46 42 <!-- Text saying what we gonna do --> 47 43 <Control Id="Description" Type="Text" X="135" Y="70" Width="220" Height="130" Transparent="yes" NoPrefix="yes"> 48 <Text> $(loc.WelcomeDlg_Body)</Text>44 <Text>!(loc.WelcomeDlg_Body)</Text> 49 45 </Control> 50 46 … … 57 53 </Control> 58 54 59 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text=" $(loc.ButtonText_Next)">55 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.ButtonText_Next)"> 60 56 <?if $(env.VBOX_WITH_LICENSE_DISPLAY) = "yes" ?> 61 57 <!-- Next dialog is the license agreement --> 62 <Publish Event="NewDialog" Value=" LicenseAgreementDlg">1</Publish>58 <Publish Event="NewDialog" Value="VBoxLicenseAgreementDlg">1</Publish> 63 59 <?else ?> 64 60 <!-- Decide which dialog to show next: The serial number dialog (if this is a branded build) 65 61 or directly proceed to the customization dialog (Vbox not installed yet) --> 66 62 <?if $(env.VBOX_WITH_SERIALNUMBER_INSTALL) = "yes" ?> 67 <Publish Event="NewDialog" Value=" CheckSerialDlg">1</Publish>63 <Publish Event="NewDialog" Value="VBoxCheckSerialDlg">1</Publish> 68 64 <?else ?> 69 <Publish Event="NewDialog" Value=" CustomizeDlg"><![CDATA[(PREVIOUSVERSIONSINSTALLED OR NEWERVERSIONDETECTED)]]></Publish>70 <Publish Event="NewDialog" Value=" CustomizeDlg"><![CDATA[(NOT PREVIOUSVERSIONSINSTALLED) AND (NOT NEWERVERSIONDETECTED)]]></Publish>65 <Publish Event="NewDialog" Value="VBoxCustomizeDlg"><![CDATA[(PREVIOUSVERSIONSINSTALLED OR NEWERVERSIONDETECTED)]]></Publish> 66 <Publish Event="NewDialog" Value="VBoxCustomizeDlg"><![CDATA[(NOT PREVIOUSVERSIONSINSTALLED) AND (NOT NEWERVERSIONDETECTED)]]></Publish> 71 67 <?endif ?> 72 68 <?endif ?> … … 74 70 75 71 <!-- Canceling will bring up a confirmation dialog ('SpawnDialog' attribute) --> 76 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text=" $(loc.ButtonText_Cancel)">77 <Publish Event="SpawnDialog" Value=" CancelDlg">1</Publish>72 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.ButtonText_Cancel)"> 73 <Publish Event="SpawnDialog" Value="VBoxCancelDlg">1</Publish> 78 74 </Control> 79 75 80 76 <!-- Uncomment if we need a 'back' button 81 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Disabled="yes" Text=" $(loc.ButtonText_Back)" />77 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.ButtonText_Back)" /> 82 78 --> 83 79 </Dialog> … … 85 81 <!-- The radio button group used for the license agreement page --> 86 82 <RadioButtonGroup Property="IAgree"> 87 <RadioButton Text="{\DlgFont8} $(loc.LicenseAgreementDlg_Accept)" Value="Yes" X="5" Y="0" Width="250" Height="15" />88 <RadioButton Text="{\DlgFont8} $(loc.LicenseAgreementDlg_Decline)" Value="No" X="5" Y="20" Width="250" Height="15" />83 <RadioButton Text="{\DlgFont8}!(loc.LicenseAgreementDlg_Accept)" Value="Yes" X="5" Y="0" Width="250" Height="15" /> 84 <RadioButton Text="{\DlgFont8}!(loc.LicenseAgreementDlg_Decline)" Value="No" X="5" Y="20" Width="250" Height="15" /> 89 85 </RadioButtonGroup> 90 86 91 87 <!-- The dialog page showing the license. The user has to set the appropriate check box to proceed --> 92 <Dialog Id=" LicenseAgreementDlg" Width="370" Height="270" Title="[ProductName] License Agreement" NoMinimize="yes">88 <Dialog Id="VBoxLicenseAgreementDlg" Width="370" Height="270" Title="[ProductName] License Agreement" NoMinimize="yes"> 93 89 <!-- The bitmap at the top of the dialog. This dialog doesn't have a background --> 94 90 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" /> … … 96 92 <!-- The font used here is defined below --> 97 93 <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes"> 98 <Text>[DlgTitleFont] $(loc.LicenseAgreementDlg_Header)</Text>94 <Text>[DlgTitleFont]!(loc.LicenseAgreementDlg_Header)</Text> 99 95 </Control> 100 96 101 97 <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes"> 102 <Text> $(loc.LicenseAgreementDlg_Body)</Text>98 <Text>!(loc.LicenseAgreementDlg_Body)</Text> 103 99 </Control> 104 100 … … 107 103 108 104 <!-- The license text should be a RTF text so we have formatting --> 109 <Control Id="AgreementText" Type="ScrollableText" X="20" Y="60" Width="330" Height="120" Sunken="yes" TabSkip="no" Text=" $(loc.LicenseText)"/>105 <Control Id="AgreementText" Type="ScrollableText" X="20" Y="60" Width="330" Height="120" Sunken="yes" TabSkip="no" Text="!(loc.LicenseText)"/> 110 106 111 107 <!-- This radio button group is defined below --> … … 120 116 </Control> 121 117 122 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text=" $(loc.ButtonText_Back)">123 <Publish Event="NewDialog" Value=" WelcomeDlg">1</Publish>124 </Control> 125 126 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text=" $(loc.ButtonText_Next)">118 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.ButtonText_Back)"> 119 <Publish Event="NewDialog" Value="VBoxWelcomeDlg">1</Publish> 120 </Control> 121 122 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.ButtonText_Next)"> 127 123 <!-- 'Next' button is only enabled when 'I agree' radio button is selected --> 128 124 <Condition Action="disable"><![CDATA[IAgree <> "Yes"]]></Condition> 129 125 <Condition Action="enable">IAgree = "Yes"</Condition> 130 <Publish Property="InstallMode" Value=" $(loc.InstallModeCustom)">1</Publish>126 <Publish Property="InstallMode" Value="!(loc.InstallModeCustom)">1</Publish> 131 127 132 128 <!-- Decide which dialog to show next: The serial number dialog (if this is a branded build) 133 129 or directly proceed to the customization dialog (Vbox not installed yet) --> 134 130 <?if $(env.VBOX_WITH_SERIALNUMBER_INSTALL) = "yes" ?> 135 <Publish Event="NewDialog" Value=" CheckSerialDlg">1</Publish>131 <Publish Event="NewDialog" Value="VBoxCheckSerialDlg">1</Publish> 136 132 <?else ?> 137 <Publish Event="NewDialog" Value=" CustomizeDlg"><![CDATA[(PREVIOUSVERSIONSINSTALLED OR NEWERVERSIONDETECTED)]]></Publish>138 <Publish Event="NewDialog" Value=" CustomizeDlg"><![CDATA[(NOT PREVIOUSVERSIONSINSTALLED) AND (NOT NEWERVERSIONDETECTED)]]></Publish>133 <Publish Event="NewDialog" Value="VBoxCustomizeDlg"><![CDATA[(PREVIOUSVERSIONSINSTALLED OR NEWERVERSIONDETECTED)]]></Publish> 134 <Publish Event="NewDialog" Value="VBoxCustomizeDlg"><![CDATA[(NOT PREVIOUSVERSIONSINSTALLED) AND (NOT NEWERVERSIONDETECTED)]]></Publish> 139 135 <?endif ?> 140 136 </Control> 141 137 142 138 <!-- Canceling will bring up a confirmation dialog ('SpawnDialog' attribute) --> 143 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text=" $(loc.ButtonText_Cancel)">144 <Publish Event="SpawnDialog" Value=" CancelDlg">1</Publish>145 </Control> 146 </Dialog> 147 148 <Dialog Id=" CheckSerialDlg" Width="370" Height="270" Title="[ProductName] $(loc.Setup)" NoMinimize="yes">139 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.ButtonText_Cancel)"> 140 <Publish Event="SpawnDialog" Value="VBoxCancelDlg">1</Publish> 141 </Control> 142 </Dialog> 143 144 <Dialog Id="VBoxCheckSerialDlg" Width="370" Height="270" Title="[ProductName] !(loc.Setup)" NoMinimize="yes"> 149 145 <!-- The wizard has a bitmap as background. The source is defined as a property below. --> 150 146 <Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" TabSkip="no" Text="[DialogBitmap]" /> 151 147 152 148 <Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes"> 153 <Text>{\DlgVerdanaBold13} $(loc.CheckSerialDlg_Header)</Text>149 <Text>{\DlgVerdanaBold13}!(loc.CheckSerialDlg_Header)</Text> 154 150 </Control> 155 151 156 152 <!-- Text saying what we gonna do --> 157 153 <Control Id="Description" Type="Text" X="135" Y="50" Width="220" Height="130" Transparent="yes" NoPrefix="yes"> 158 <Text> $(loc.CheckSerialDlg_Body)</Text>154 <Text>!(loc.CheckSerialDlg_Body)</Text> 159 155 </Control> 160 156 … … 176 172 177 173 <Control Id="Description3" Type="Text" X="135" Y="120" Width="220" Height="130" Transparent="yes" NoPrefix="yes"> 178 <Text> $(loc.CheckSerialDlg_Footer)</Text>174 <Text>!(loc.CheckSerialDlg_Footer)</Text> 179 175 </Control> 180 176 … … 187 183 </Control> 188 184 189 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text=" $(loc.ButtonText_Back)">185 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.ButtonText_Back)"> 190 186 <?if $(env.VBOX_WITH_LICENSE_DISPLAY) = "yes" ?> 191 <Publish Event="NewDialog" Value=" LicenseAgreementDlg">1</Publish>187 <Publish Event="NewDialog" Value="VBoxLicenseAgreementDlg">1</Publish> 192 188 <?else ?> 193 <Publish Event="NewDialog" Value=" WelcomeDlg">1</Publish>189 <Publish Event="NewDialog" Value="VBoxWelcomeDlg">1</Publish> 194 190 <?endif ?> 195 191 </Control> 196 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text=" $(loc.ButtonText_Check)">197 <Publish Event="DoAction" Value=" CheckSerial">1</Publish>198 <Publish Event="NewDialog" Value=" CustomizeDlg"><![CDATA[(PREVIOUSVERSIONSINSTALLED OR NEWERVERSIONDETECTED) AND (SERIALVALID = "1")]]></Publish>199 <Publish Event="NewDialog" Value=" CustomizeDlg"><![CDATA[(NOT PREVIOUSVERSIONSINSTALLED) AND (NOT NEWERVERSIONDETECTED) AND (SERIALVALID = "1")]]></Publish>200 <Publish Event="NewDialog" Value=" WrongSerialDlg"><![CDATA[SERIALVALID = "0"]]></Publish>201 </Control> 202 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text=" $(loc.ButtonText_Cancel)">203 <Publish Event="SpawnDialog" Value=" CancelDlg">1</Publish>204 </Control> 205 206 </Dialog> 207 208 <Dialog Id=" WrongSerialDlg" Width="370" Height="270" Title="[ProductName] $(loc.Setup)" NoMinimize="yes">192 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.ButtonText_Check)"> 193 <Publish Event="DoAction" Value="ca_CheckSerial">1</Publish> 194 <Publish Event="NewDialog" Value="VBoxCustomizeDlg"><![CDATA[(PREVIOUSVERSIONSINSTALLED OR NEWERVERSIONDETECTED) AND (SERIALVALID = "1")]]></Publish> 195 <Publish Event="NewDialog" Value="VBoxCustomizeDlg"><![CDATA[(NOT PREVIOUSVERSIONSINSTALLED) AND (NOT NEWERVERSIONDETECTED) AND (SERIALVALID = "1")]]></Publish> 196 <Publish Event="NewDialog" Value="VBoxWrongSerialDlg"><![CDATA[SERIALVALID = "0"]]></Publish> 197 </Control> 198 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.ButtonText_Cancel)"> 199 <Publish Event="SpawnDialog" Value="VBoxCancelDlg">1</Publish> 200 </Control> 201 202 </Dialog> 203 204 <Dialog Id="VBoxWrongSerialDlg" Width="370" Height="270" Title="[ProductName] !(loc.Setup)" NoMinimize="yes"> 209 205 210 206 <!-- The wizard has a bitmap as background. The source is defined as a property below. --> … … 213 209 <!-- Title text drawn on the background --> 214 210 <Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes"> 215 <Text>{\DlgInvalidSerial} $(loc.WrongSerialDlg_Header)</Text>211 <Text>{\DlgInvalidSerial}!(loc.WrongSerialDlg_Header)</Text> 216 212 </Control> 217 213 218 214 <!-- Text saying what we gonna do --> 219 215 <Control Id="Description" Type="Text" X="135" Y="70" Width="220" Height="130" Transparent="yes" NoPrefix="yes"> 220 <Text> $(loc.WrongSerialDlg_Desc1)</Text>216 <Text>!(loc.WrongSerialDlg_Desc1)</Text> 221 217 </Control> 222 218 223 219 <Control Id="Description2" Type="Text" X="135" Y="95" Width="220" Height="130" Transparent="yes" NoPrefix="yes"> 224 <Text> $(loc.WrongSerialDlg_Desc2)</Text>220 <Text>!(loc.WrongSerialDlg_Desc2)</Text> 225 221 </Control> 226 222 … … 233 229 </Control> 234 230 235 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text=" $(loc.ButtonText_Back)">236 <Publish Event="NewDialog" Value=" CheckSerialDlg">1</Publish>231 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.ButtonText_Back)"> 232 <Publish Event="NewDialog" Value="VBoxCheckSerialDlg">1</Publish> 237 233 </Control> 238 234 239 235 <!-- Canceling will bring up a confirmation dialog ('SpawnDialog' attribute) --> 240 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text=" $(loc.ButtonText_Cancel)">241 <Publish Event="SpawnDialog" Value=" CancelDlg">1</Publish>236 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.ButtonText_Cancel)"> 237 <Publish Event="SpawnDialog" Value="VBoxCancelDlg">1</Publish> 242 238 </Control> 243 239 … … 246 242 <!-- Dialog used to set another installation path. This is taken from the tutorial template on the web and can also be 247 243 used for package selection etc. if necessary after some tweaking. --> 248 <Dialog Id=" CustomizeDlg" Width="370" Height="270" Title="[ProductName] $(loc.Setup)" NoMinimize="yes" TrackDiskSpace="yes">244 <Dialog Id="VBoxCustomizeDlg" Width="370" Height="270" Title="[ProductName] !(loc.Setup)" NoMinimize="yes" TrackDiskSpace="yes"> 249 245 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" /> 250 246 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> 251 247 <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes"> 252 <Text>[DlgTitleFont] $(loc.CustomizeDlg_CustomSetup)</Text>248 <Text>[DlgTitleFont]!(loc.CustomizeDlg_CustomSetup)</Text> 253 249 </Control> 254 250 <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes"> 255 <Text> $(loc.CustomizeDlg_SelFeatures)</Text>251 <Text>!(loc.CustomizeDlg_SelFeatures)</Text> 256 252 </Control> 257 253 <Control Id="Text" Type="Text" X="25" Y="55" Width="320" Height="20"> 258 <Text> $(loc.CustomizeDlg_IconTree)</Text>254 <Text>!(loc.CustomizeDlg_IconTree)</Text> 259 255 </Control> 260 256 <Control Id="Tree" Type="SelectionTree" X="25" Y="85" Width="175" Height="95" Property="_BrowseProperty" 261 257 Sunken="yes" TabSkip="no" Text="Tree of selections" /> 262 <Control Id="Browse" Type="PushButton" X="304" Y="200" Width="56" Height="17" Text=" $(loc.ButtonText_Browse)">263 <Publish Event="SelectionBrowse" Value=" BrowseDlg">1</Publish>258 <Control Id="Browse" Type="PushButton" X="304" Y="200" Width="56" Height="17" Text="!(loc.ButtonText_Browse)"> 259 <Publish Event="SelectionBrowse" Value="VBoxBrowseDlg">1</Publish> 264 260 <Condition Action="hide">Installed</Condition> 265 261 </Control> 266 262 <Control Id="DiskCost" Type="PushButton" X="111" Y="243" Width="56" Height="17"> 267 <Text> $(loc.CustomizeDlg_DiskUsage)</Text>268 <Publish Event="SpawnDialog" Value=" DiskCostDlg">1</Publish>263 <Text>!(loc.CustomizeDlg_DiskUsage)</Text> 264 <Publish Event="SpawnDialog" Value="VBoxDiskCostDlg">1</Publish> 269 265 <Subscribe Event="SelectionNoItems" Attribute="Enabled" /> 270 266 </Control> 271 267 <Control Id="Box" Type="GroupBox" X="210" Y="81" Width="140" Height="98" /> 272 268 <Control Id="ItemDescription" Type="Text" X="215" Y="90" Width="131" Height="30"> 273 <Text> $(loc.CustomizeDlg_SelItemDesc)</Text>269 <Text>!(loc.CustomizeDlg_SelItemDesc)</Text> 274 270 <Subscribe Event="SelectionDescription" Attribute="Text" /> 275 271 </Control> 276 272 <Control Id="ItemSize" Type="Text" X="215" Y="130" Width="131" Height="45"> 277 <Text> $(loc.CustomizeDlg_SelItemSize)</Text>273 <Text>!(loc.CustomizeDlg_SelItemSize)</Text> 278 274 <Subscribe Event="SelectionSize" Attribute="Text" /> 279 275 </Control> 280 276 <Control Id="Location" Type="Text" X="75" Y="200" Width="215" Height="20"> 281 <Text> $(loc.CustomizeDlg_SelItemPath)</Text>277 <Text>!(loc.CustomizeDlg_SelItemPath)</Text> 282 278 <Subscribe Event="SelectionPath" Attribute="Text" /> 283 279 <Subscribe Event="SelectionPathOn" Attribute="Visible" /> 284 280 <Condition Action="hide">Installed</Condition> 285 281 </Control> 286 <Control Id="LocationLabel" Type="Text" X="25" Y="200" Width="50" Height="10" Text=" $(loc.CustomizeDlg_Location)">282 <Control Id="LocationLabel" Type="Text" X="25" Y="200" Width="50" Height="10" Text="!(loc.CustomizeDlg_Location)"> 287 283 <Subscribe Event="SelectionPathOn" Attribute="Visible" /> 288 284 <Condition Action="hide">Installed</Condition> 289 285 </Control> 290 286 291 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text=" $(loc.ButtonText_Back)">287 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.ButtonText_Back)"> 292 288 <?if $(env.VBOX_WITH_LICENSE_DISPLAY) = "yes" ?> 293 <Publish Event="NewDialog" Value=" LicenseAgreementDlg"><![CDATA[(NOT CHECKSERIAL) AND (InstallMode = "$(loc.InstallModeCustom)")]]></Publish>294 <Publish Event="NewDialog" Value=" CheckSerialDlg"><![CDATA[CHECKSERIAL]]></Publish>289 <Publish Event="NewDialog" Value="VBoxLicenseAgreementDlg"><![CDATA[(NOT CHECKSERIAL) AND (InstallMode = "!(loc.InstallModeCustom)")]]></Publish> 290 <Publish Event="NewDialog" Value="VBoxCheckSerialDlg"><![CDATA[CHECKSERIAL]]></Publish> 295 291 <?else ?> 296 <Publish Event="NewDialog" Value=" WelcomeDlg">1</Publish>292 <Publish Event="NewDialog" Value="VBoxWelcomeDlg">1</Publish> 297 293 <?endif ?> 298 294 </Control> 299 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text=" $(loc.ButtonText_Next)">300 <Publish Event="NewDialog" Value=" Customize2Dlg">1</Publish>295 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.ButtonText_Next)"> 296 <Publish Event="NewDialog" Value="VBoxCustomize2Dlg">1</Publish> 301 297 <Subscribe Event="SelectionNoItems" Attribute="Enabled" /> 302 298 </Control> 303 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text=" $(loc.ButtonText_Cancel)">304 <Publish Event="SpawnDialog" Value=" CancelDlg">1</Publish>305 </Control> 306 307 <!-- Build number text drawn left bottom --> 308 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> 309 <Control Id="Build" Type="Text" X="20" Y="247" Width="220" Height="10" Transparent="yes" NoPrefix="yes"> 310 <Text>[Version_text] $(var.Property_Version)</Text> 311 </Control> 312 </Dialog> 313 314 <Dialog Id=" Customize2Dlg" Width="370" Height="270" Title="[ProductName] $(loc.Setup)" NoMinimize="yes">299 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.ButtonText_Cancel)"> 300 <Publish Event="SpawnDialog" Value="VBoxCancelDlg">1</Publish> 301 </Control> 302 303 <!-- Build number text drawn left bottom --> 304 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> 305 <Control Id="Build" Type="Text" X="20" Y="247" Width="220" Height="10" Transparent="yes" NoPrefix="yes"> 306 <Text>[Version_text] $(var.Property_Version)</Text> 307 </Control> 308 </Dialog> 309 310 <Dialog Id="VBoxCustomize2Dlg" Width="370" Height="270" Title="[ProductName] !(loc.Setup)" NoMinimize="yes"> 315 311 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" /> 316 312 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> 317 313 <Control Id="Title" Type="Text" X="15" Y="6" Width="220" Height="40" Transparent="yes" NoPrefix="yes"> 318 <Text>[DlgTitleFont] $(loc.CustomizeDlg_CustomSetup)</Text>314 <Text>[DlgTitleFont]!(loc.CustomizeDlg_CustomSetup)</Text> 319 315 </Control> 320 316 <Control Id="Description" Type="Text" X="25" Y="23" Width="220" Height="20" Transparent="yes" NoPrefix="yes"> 321 <Text> $(loc.CustomizeDlg_SelFeatures)</Text>317 <Text>!(loc.CustomizeDlg_SelFeatures)</Text> 322 318 </Control> 323 319 <Control Id="Text" Type="Text" X="25" Y="70" Width="320" Height="20"> 324 <Text> $(loc.Customize2Dlg_Desc)</Text>320 <Text>!(loc.Customize2Dlg_Desc)</Text> 325 321 </Control> 326 322 <!-- Note the gray background behind the checkboxes. Unfortunately there's no easy way to … … 333 329 <Control Id="DesktopShortcutCheckBox" Type="CheckBox" X="25" Y="95" Width="200" Height="17" 334 330 Property="INSTALLDESKTOPSHORTCUT" CheckBoxValue="1"> 335 <Text> $(loc.Customize2Dlg_CreateShortcut)</Text>331 <Text>!(loc.Customize2Dlg_CreateShortcut)</Text> 336 332 </Control> 337 333 <Control Id="QuicklaunchShortcutCheckBox" Type="CheckBox" X="25" Y="115" Width="200" Height="17" 338 Property="INSTALLQUICKLAUNCHSHORTCUT" CheckBoxValue="1">339 <Text> $(loc.Customize2Dlg_CreateQuickLaunch)</Text>334 Property="INSTALLQUICKLAUNCHSHORTCUT" CheckBoxValue="1"> 335 <Text>!(loc.Customize2Dlg_CreateQuickLaunch)</Text> 340 336 </Control> 341 337 342 338 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" 343 Default="yes" Cancel="yes" Text=" $(loc.ButtonText_Next)">339 Default="yes" Cancel="yes" Text="!(loc.ButtonText_Next)"> 344 340 <?if $(env.VBOX_WITH_NETFLT) = "yes" ?> 345 <Publish Event="NewDialog" Value=" WarnDisconNetIfacesDlg"><![CDATA[(&VBoxNetworkFlt=3) AND NOT(!VBoxNetworkFlt=3)]]></Publish>346 <Publish Event="NewDialog" Value="V erifyReadyDlg"><![CDATA[(&VBoxNetworkFlt<3)]]></Publish>341 <Publish Event="NewDialog" Value="VBoxWarnDisconNetIfacesDlg"><![CDATA[(&ft_VBoxNetworkFlt=3) AND NOT(!ft_VBoxNetworkFlt=3)]]></Publish> 342 <Publish Event="NewDialog" Value="VBoxVerifyReadyDlg"><![CDATA[(&ft_VBoxNetworkFlt<3)]]></Publish> 347 343 <?else ?> 348 <Publish Event="NewDialog" Value="V erifyReadyDlg">1</Publish>344 <Publish Event="NewDialog" Value="VBoxVerifyReadyDlg">1</Publish> 349 345 <?endif?> 350 346 </Control> 351 347 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" 352 Text=" $(loc.ButtonText_Back)">353 <Publish Event="NewDialog" Value=" CustomizeDlg">1</Publish>348 Text="!(loc.ButtonText_Back)"> 349 <Publish Event="NewDialog" Value="VBoxCustomizeDlg">1</Publish> 354 350 </Control> 355 351 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" 356 Text=" $(loc.ButtonText_Cancel)">357 <Publish Event="SpawnDialog" Value=" CancelDlg">1</Publish>358 </Control> 359 360 <!-- Build number text drawn left bottom --> 361 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> 362 <Control Id="Build" Type="Text" X="20" Y="247" Width="220" Height="10" Transparent="yes" NoPrefix="yes"> 363 <Text>[Version_text] $(var.Property_Version)</Text> 364 </Control> 365 </Dialog> 366 367 <Dialog Id=" WarnDisconNetIfacesDlg" Width="370" Height="270" Title="[ProductName] [Setup]" NoMinimize="yes">352 Text="!(loc.ButtonText_Cancel)"> 353 <Publish Event="SpawnDialog" Value="VBoxCancelDlg">1</Publish> 354 </Control> 355 356 <!-- Build number text drawn left bottom --> 357 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> 358 <Control Id="Build" Type="Text" X="20" Y="247" Width="220" Height="10" Transparent="yes" NoPrefix="yes"> 359 <Text>[Version_text] $(var.Property_Version)</Text> 360 </Control> 361 </Dialog> 362 363 <Dialog Id="VBoxWarnDisconNetIfacesDlg" Width="370" Height="270" Title="[ProductName] [Setup]" NoMinimize="yes"> 368 364 369 365 <!-- The wizard has a bitmap as background. The source is defined as a property below. --> … … 372 368 <!-- Title text drawn on the background --> 373 369 <Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes"> 374 <Text>{\DlgWarnDisconNetIfaces} $(loc.WarnDisconNetIfacesDlg_Title)</Text>370 <Text>{\DlgWarnDisconNetIfaces}!(loc.WarnDisconNetIfacesDlg_Title)</Text> 375 371 </Control> 376 372 377 373 <Control Id="Title2" Type="Text" X="135" Y="40" Width="220" Height="60" Transparent="yes" NoPrefix="yes"> 378 <Text>{\DlgWarnDisconNetIfaces} $(loc.WarnDisconNetIfacesDlg_Title2)</Text>374 <Text>{\DlgWarnDisconNetIfaces}!(loc.WarnDisconNetIfacesDlg_Title2)</Text> 379 375 </Control> 380 376 381 377 <!-- Text saying what we gonna do --> 382 378 <Control Id="Description" Type="Text" X="135" Y="70" Width="220" Height="130" Transparent="yes" NoPrefix="yes"> 383 <Text> $(loc.WarnDisconNetIfacesDlg_Desc)</Text>379 <Text>!(loc.WarnDisconNetIfacesDlg_Desc)</Text> 384 380 </Control> 385 381 386 382 <Control Id="Description2" Type="Text" X="135" Y="115" Width="220" Height="130" Transparent="yes" NoPrefix="yes"> 387 <Text> $(loc.WarnDisconNetIfacesDlg_Question)</Text>383 <Text>!(loc.WarnDisconNetIfacesDlg_Question)</Text> 388 384 </Control> 389 385 … … 397 393 398 394 <!-- Next dialog is the warning dialog for TAP devices --> 399 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text=" $(loc.ButtonText_Yes)">400 <Publish Event="NewDialog" Value="V erifyReadyDlg">1</Publish>395 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.ButtonText_Yes)"> 396 <Publish Event="NewDialog" Value="VBoxVerifyReadyDlg">1</Publish> 401 397 </Control> 402 398 403 399 <!-- Canceling will bring up a confirmation dialog ('SpawnDialog' attribute) --> 404 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text=" $(loc.ButtonText_No)">405 <Publish Event="SpawnDialog" Value=" CancelDlg">1</Publish>406 </Control> 407 408 </Dialog> 409 410 <Dialog Id=" DiskCostDlg" Width="370" Height="270" Title="[ProductName] $(loc.Setup)" NoMinimize="yes">411 <Control Id="OK" Type="PushButton" X="304" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text=" $(loc.ButtonText_OK)">400 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.ButtonText_No)"> 401 <Publish Event="SpawnDialog" Value="VBoxCancelDlg">1</Publish> 402 </Control> 403 404 </Dialog> 405 406 <Dialog Id="VBoxDiskCostDlg" Width="370" Height="270" Title="[ProductName] !(loc.Setup)" NoMinimize="yes"> 407 <Control Id="OK" Type="PushButton" X="304" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text="!(loc.ButtonText_OK)"> 412 408 <Publish Event="EndDialog" Value="Return">1</Publish> 413 409 </Control> 414 410 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" /> 415 411 <Control Id="Description" Type="Text" X="20" Y="20" Width="280" Height="20" Transparent="yes" NoPrefix="yes"> 416 <Text> $(loc.DiskCostDlg_SpaceRequired)</Text>412 <Text>!(loc.DiskCostDlg_SpaceRequired)</Text> 417 413 </Control> 418 414 <Control Id="Text" Type="Text" X="20" Y="53" Width="330" Height="40"> 419 <Text> $(loc.DiskCostDlg_NotEnoughSpace)</Text>415 <Text>!(loc.DiskCostDlg_NotEnoughSpace)</Text> 420 416 </Control> 421 417 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> 422 418 <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes"> 423 <Text>[DlgTitleFont] $(loc.DiskCostDlg_SpaceRequirements)</Text>419 <Text>[DlgTitleFont]!(loc.DiskCostDlg_SpaceRequirements)</Text> 424 420 </Control> 425 421 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> 426 422 <Control Id="VolumeList" Type="VolumeCostList" X="20" Y="100" Width="330" Height="120" Sunken="yes" Fixed="yes" Remote="yes"> 427 <Text> $(loc.DiskCostDlg_VolumeList)</Text>423 <Text>!(loc.DiskCostDlg_VolumeList)</Text> 428 424 </Control> 429 425 </Dialog> 430 426 431 427 <!-- Dialog used to change the installation directory --> 432 <Dialog Id=" BrowseDlg" Width="370" Height="270" Title="[ProductName] $(loc.Setup)" NoMinimize="yes">428 <Dialog Id="VBoxBrowseDlg" Width="370" Height="270" Title="[ProductName] !(loc.Setup)" NoMinimize="yes"> 433 429 <Control Id="PathEdit" Type="PathEdit" X="84" Y="202" Width="261" Height="18" Property="_BrowseProperty" Indirect="yes" /> 434 <Control Id="OK" Type="PushButton" X="304" Y="243" Width="56" Height="17" Default="yes" Text=" $(loc.ButtonText_OK)">430 <Control Id="OK" Type="PushButton" X="304" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.ButtonText_OK)"> 435 431 <Publish Event="SetTargetPath" Value="[_BrowseProperty]">1</Publish> 436 432 <Publish Event="EndDialog" Value="Return">1</Publish> 437 433 </Control> 438 <Control Id="Cancel" Type="PushButton" X="240" Y="243" Width="56" Height="17" Cancel="yes" Text=" $(loc.ButtonText_Cancel)">434 <Control Id="Cancel" Type="PushButton" X="240" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.ButtonText_Cancel)"> 439 435 <Publish Event="Reset" Value="0">1</Publish> 440 436 <Publish Event="EndDialog" Value="Return">1</Publish> 441 437 </Control> 442 <Control Id="ComboLabel" Type="Text" X="25" Y="58" Width="44" Height="10" TabSkip="no" Text=" $(loc.BrowseDlg_LookIn)" />438 <Control Id="ComboLabel" Type="Text" X="25" Y="58" Width="44" Height="10" TabSkip="no" Text="!(loc.BrowseDlg_LookIn)" /> 443 439 <Control Id="DirectoryCombo" Type="DirectoryCombo" X="70" Y="55" Width="220" Height="80" 444 440 Property="_BrowseProperty" Indirect="yes" Fixed="yes" Remote="yes"> 445 441 <Subscribe Event="IgnoreChange" Attribute="IgnoreChange" /> 446 442 </Control> 447 <Control Id="Up" Type="PushButton" X="298" Y="55" Width="19" Height="19" ToolTip=" $(loc.BrowseDlg_UpOneLevelTooltip)" Icon="yes" FixedSize="yes" IconSize="16" Text="[FolderUp]">443 <Control Id="Up" Type="PushButton" X="298" Y="55" Width="19" Height="19" ToolTip="!(loc.BrowseDlg_UpOneLevelTooltip)" Icon="yes" FixedSize="yes" IconSize="16" Text="[FolderUp]"> 448 444 <Publish Event="DirectoryListUp" Value="0">1</Publish> 449 445 </Control> 450 446 <Control Id="NewFolder" Type="PushButton" X="325" Y="55" Width="19" Height="19" 451 ToolTip=" $(loc.BrowseDlg_CreateNewFolderTooltip)" Icon="yes" FixedSize="yes" IconSize="16" Text="[FolderNew]">447 ToolTip="!(loc.BrowseDlg_CreateNewFolderTooltip)" Icon="yes" FixedSize="yes" IconSize="16" Text="[FolderNew]"> 452 448 <Publish Event="DirectoryListNew" Value="0">1</Publish> 453 449 </Control> 454 450 <Control Id="DirectoryList" Type="DirectoryList" X="25" Y="83" Width="320" Height="110" 455 451 Property="_BrowseProperty" Sunken="yes" Indirect="yes" TabSkip="no" /> 456 <Control Id="PathLabel" Type="Text" X="25" Y="205" Width="59" Height="10" TabSkip="no" Text=" $(loc.BrowseDlg_FolderName)" />452 <Control Id="PathLabel" Type="Text" X="25" Y="205" Width="59" Height="10" TabSkip="no" Text="!(loc.BrowseDlg_FolderName)" /> 457 453 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" /> 458 454 <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes"> 459 <Text> $(loc.BrowseDlg_BrowseDestFolder)</Text>455 <Text>!(loc.BrowseDlg_BrowseDestFolder)</Text> 460 456 </Control> 461 457 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> 462 458 <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes"> 463 <Text>[DlgTitleFont] $(loc.BrowseDlg_ChangeCurFolder)</Text>464 </Control> 465 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> 466 </Dialog> 467 468 <Dialog Id=" PrepareDlg" Width="370" Height="270" Title="[ProductName] $(loc.Setup)" Modeless="yes">469 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text=" $(loc.ButtonText_Cancel)">470 <Publish Event="SpawnDialog" Value=" CancelDlg">1</Publish>459 <Text>[DlgTitleFont]!(loc.BrowseDlg_ChangeCurFolder)</Text> 460 </Control> 461 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> 462 </Dialog> 463 464 <Dialog Id="VBoxPrepareDlg" Width="370" Height="270" Title="[ProductName] !(loc.Setup)" Modeless="yes"> 465 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text="!(loc.ButtonText_Cancel)"> 466 <Publish Event="SpawnDialog" Value="VBoxCancelDlg">1</Publish> 471 467 </Control> 472 468 <Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" TabSkip="no" Text="[DialogBitmap]" /> 473 469 </Dialog> 474 470 475 <Dialog Id="V erifyReadyDlg" Width="370" Height="270" Title="[ProductName] $(loc.Setup)" NoMinimize="yes" TrackDiskSpace="yes">471 <Dialog Id="VBoxVerifyReadyDlg" Width="370" Height="270" Title="[ProductName] !(loc.Setup)" NoMinimize="yes" TrackDiskSpace="yes"> 476 472 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" /> 477 473 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> 478 474 <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes"> 479 <Text>[DlgTitleFont] $(loc.VerifyReadyDlg_ReadyToInstall)</Text>475 <Text>[DlgTitleFont]!(loc.VerifyReadyDlg_ReadyToInstall)</Text> 480 476 </Control> 481 477 <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes"> 482 <Text> $(loc.VerifyReadyDlg_ReadyToBegin)</Text>478 <Text>!(loc.VerifyReadyDlg_ReadyToBegin)</Text> 483 479 </Control> 484 480 <Control Id="Text" Type="Text" X="25" Y="70" Width="320" Height="80"> 485 <Text> $(loc.VerifyReadyDlg_ClickInstall)</Text>486 </Control> 487 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> 488 <Control Id="Install" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text=" $(loc.ButtonText_Install)">481 <Text>!(loc.VerifyReadyDlg_ClickInstall)</Text> 482 </Control> 483 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> 484 <Control Id="Install" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.ButtonText_Install)"> 489 485 <Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish> 490 <Publish Event="SpawnDialog" Value=" OutOfRbDiskDlg"><![CDATA[OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)]]></Publish>486 <Publish Event="SpawnDialog" Value="VBoxOutOfRbDiskDlg"><![CDATA[OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)]]></Publish> 491 487 <Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"]]></Publish> 492 488 <Publish Event="EnableRollback" Value="False"><![CDATA[OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"]]></Publish> 493 <Publish Event="SpawnDialog" Value=" OutOfDiskDlg"><![CDATA[(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")]]></Publish>494 </Control> 495 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text=" $(loc.ButtonText_Back)">496 <Publish Event="NewDialog" Value=" Customize2Dlg"><![CDATA[InstallMode = "$(loc.InstallModeCustom)"]]></Publish>497 </Control> 498 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text=" $(loc.ButtonText_Cancel)">499 <Publish Event="SpawnDialog" Value=" CancelDlg">1</Publish>489 <Publish Event="SpawnDialog" Value="VBoxOutOfDiskDlg"><![CDATA[(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")]]></Publish> 490 </Control> 491 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.ButtonText_Back)"> 492 <Publish Event="NewDialog" Value="VBoxCustomize2Dlg"><![CDATA[InstallMode = "!(loc.InstallModeCustom)"]]></Publish> 493 </Control> 494 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.ButtonText_Cancel)"> 495 <Publish Event="SpawnDialog" Value="VBoxCancelDlg">1</Publish> 500 496 </Control> 501 497 … … 507 503 508 504 <!-- This dialog is called after successful installation --> 509 <Dialog Id=" ExitDlg" Width="370" Height="270" Title="[ProductName] $(loc.Setup)" NoMinimize="yes">510 <Control Id="Finish" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text=" $(loc.ButtonText_Finish)">511 <Publish Event="DoAction" Value=" StartVBox"><![CDATA[STARTVBOX]]></Publish>505 <Dialog Id="VBoxExitDlg" Width="370" Height="270" Title="[ProductName] !(loc.Setup)" NoMinimize="yes"> 506 <Control Id="Finish" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text="!(loc.ButtonText_Finish)"> 507 <Publish Event="DoAction" Value="ca_StartVBox"><![CDATA[STARTVBOX]]></Publish> 512 508 <Publish Event="EndDialog" Value="Return">1</Publish> 513 509 </Control> … … 518 514 </Control> 519 515 520 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Disabled="yes" Text=" $(loc.ButtonText_Cancel)" />516 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.ButtonText_Cancel)" /> 521 517 <Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" TabSkip="no" Text="[DialogBitmap]" /> 522 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Disabled="yes" Text=" $(loc.ButtonText_Back)" />518 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.ButtonText_Back)" /> 523 519 <Control Id="Description" Type="Text" X="135" Y="70" Width="220" Height="20" Transparent="yes" NoPrefix="yes"> 524 <Text> $(loc.ExitDlg_ClickFinish)</Text>520 <Text>!(loc.ExitDlg_ClickFinish)</Text> 525 521 </Control> 526 522 … … 534 530 <Control Id="StartVBoxCheckBox" Type="CheckBox" X="135" Y="115" Width="200" Height="17" 535 531 Property="STARTVBOX" CheckBoxValue="1"> 536 <Text> $(loc.ExitDlg_StartVBox)</Text>532 <Text>!(loc.ExitDlg_StartVBox)</Text> 537 533 <Condition Action="hide"> 538 534 <![CDATA[(InstallMode="Repair") OR (InstallMode="Remove") OR … … 543 539 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> 544 540 <Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes"> 545 <Text>{\DlgVerdanaBold13} $(loc.ExitDlg_InstComplete)</Text>541 <Text>{\DlgVerdanaBold13}!(loc.ExitDlg_InstComplete)</Text> 546 542 </Control> 547 543 </Dialog> 548 544 549 545 <!-- This dialog is called after an error during installation --> 550 <Dialog Id="FatalErrorDlg" Width="370" Height="270" Title="[ProductName] $(loc.Setup)" NoMinimize="yes"> 551 <Control Id="Finish" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text="$(loc.ButtonText_Finish)"> 546 <Dialog Id="VBoxFatalErrorDlg" ErrorDialog="yes" Width="270" Height="150" Title="[ProductName] !(loc.Setup)" NoMinimize="yes"> 547 <!-- Do *not* change the control IDs in the dialog! --> 548 <Control Id="ErrorIcon" Type="Icon" X="15" Y="15" Width="24" Height="24" ToolTip="Icon" FixedSize="yes" IconSize="32" Text="[ExclamationIcon]" /> 549 <Control Id="ErrorText" Type="Text" X="75" Y="20" Width="155" Height="80" TabSkip="no"> 550 <Text><![CDATA[{&DlgFont8}]]></Text> 551 </Control> 552 <Control Id="Y" Type="PushButton" X="20" Y="110" Width="80" Height="18" TabSkip="yes"> 553 <Text><![CDATA[{\DlgFont8}&Yes]]></Text> 554 <Publish Event="EndDialog" Value="ErrorYes">1</Publish> 555 </Control> 556 <Control Id="A" Type="PushButton" X="20" Y="110" Width="80" Height="18" TabSkip="yes"> 557 <Text><![CDATA[{\DlgFont8}&Cancel]]></Text> 558 <Publish Event="EndDialog" Value="ErrorAbort">1</Publish> 559 </Control> 560 <Control Id="C" Type="PushButton" X="20" Y="110" Width="80" Height="18" TabSkip="yes"> 561 <Text><![CDATA[{\DlgFont8}&Cancel]]></Text> 562 <Publish Event="EndDialog" Value="ErrorCancel">1</Publish> 563 </Control> 564 <Control Id="I" Type="PushButton" X="20" Y="110" Width="80" Height="18" TabSkip="yes"> 565 <Text><![CDATA[{\DlgFont8}&Ignore]]></Text> 566 <Publish Event="EndDialog" Value="ErrorIgnore">1</Publish> 567 </Control> 568 <Control Id="N" Type="PushButton" X="20" Y="110" Width="80" Height="18" TabSkip="yes"> 569 <Text><![CDATA[{\DlgFont8}&No]]></Text> 570 <Publish Event="EndDialog" Value="ErrorNo">1</Publish> 571 </Control> 572 <Control Id="O" Type="PushButton" X="20" Y="110" Width="80" Height="18" TabSkip="yes"> 573 <Text><![CDATA[{\DlgFont8}&OK]]></Text> 574 <Publish Event="EndDialog" Value="ErrorOk">1</Publish> 575 </Control> 576 <Control Id="R" Type="PushButton" X="20" Y="110" Width="80" Height="18" TabSkip="yes"> 577 <Text><![CDATA[{\DlgFont8}&Retry]]></Text> 578 <Publish Event="EndDialog" Value="ErrorRetry">1</Publish> 579 </Control> 580 </Dialog> 581 582 <Dialog Id="FilesInUse" Width="370" Height="270" Title="[ProductName] !(loc.Setup)" KeepModeless="yes"> 583 <Control Id="Retry" Type="PushButton" X="304" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text="!(loc.ButtonText_Retry)"> 584 <Publish Event="EndDialog" Value="Retry">1</Publish> 585 </Control> 586 <Control Id="Ignore" Type="PushButton" X="235" Y="243" Width="56" Height="17" Text="!(loc.ButtonText_Ignore)"> 587 <Publish Event="EndDialog" Value="Ignore">1</Publish> 588 </Control> 589 <Control Id="Exit" Type="PushButton" X="166" Y="243" Width="56" Height="17" Text="!(loc.ButtonText_Exit)"> 552 590 <Publish Event="EndDialog" Value="Exit">1</Publish> 553 591 </Control> 554 555 <!-- Build number text drawn left bottom --> 556 <Control Id="Build" Type="Text" X="20" Y="247" Width="220" Height="10" Transparent="yes" NoPrefix="yes"> 557 <Text>[Version_text] $(var.Property_Version)</Text> 558 </Control> 559 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Disabled="yes" Text="$(loc.ButtonText_Cancel)" /> 592 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" /> 593 <Control Id="Text" Type="Text" X="20" Y="55" Width="330" Height="50" Text="!(loc.FilesInUse_Text)" /> 594 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> 595 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> 596 <Control Id="Description" Type="Text" X="20" Y="23" Width="280" Height="20" Transparent="yes" NoPrefix="yes" Text="!(loc.FilesInUse_Description)" /> 597 <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="[DlgTitleFont]!(loc.FilesInUse_Title)" /> 598 <Control Id="List" Type="ListBox" X="20" Y="107" Width="330" Height="130" Property="FileInUseProcess" Sunken="yes" TabSkip="yes" /> 599 </Dialog> 600 601 <!-- This dialog is shown if the user interrupts the installation process --> 602 <Dialog Id="VBoxUserExitDlg" Width="370" Height="270" Title="[ProductName] !(loc.Setup)" NoMinimize="yes"> 603 <Control Id="Finish" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text="!(loc.ButtonText_Finish)"> 604 <Publish Event="EndDialog" Value="Exit">1</Publish> 605 </Control> 606 <!-- Build number text drawn left bottom --> 607 <Control Id="Build" Type="Text" X="20" Y="247" Width="220" Height="10" Transparent="yes" NoPrefix="yes"> 608 <Text>[Version_text] $(var.Property_Version)</Text> 609 </Control> 610 611 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.ButtonText_Cancel)" /> 560 612 <Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" TabSkip="no" Text="[DialogBitmap]" /> 561 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Disabled="yes" Text=" $(loc.ButtonText_Back)" />613 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.ButtonText_Back)" /> 562 614 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> 563 615 <Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes"> 564 <Text>{\DlgVerdanaBold13} $(loc.FatalErrorDlg_Header)</Text>616 <Text>{\DlgVerdanaBold13}!(loc.UserExitDlg_Header)</Text> 565 617 </Control> 566 618 <Control Id="Description1" Type="Text" X="135" Y="70" Width="220" Height="40" Transparent="yes" NoPrefix="yes"> 567 <Text> $(loc.FatalErrorDlg_Desc)</Text>619 <Text>!(loc.UserExitDlg_Desc)</Text> 568 620 </Control> 569 621 <Control Id="Description2" Type="Text" X="135" Y="115" Width="220" Height="20" Transparent="yes" NoPrefix="yes"> 570 <Text>$(loc.FatalErrorDlg_Footer)</Text> 571 </Control> 572 </Dialog> 573 574 <Dialog Id="FilesInUse" Width="370" Height="270" Title="[ProductName] $(loc.Setup)" KeepModeless="yes"> 575 <Control Id="Retry" Type="PushButton" X="304" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text="$(loc.ButtonText_Retry)"> 576 <Publish Event="EndDialog" Value="Retry">1</Publish> 577 </Control> 578 <Control Id="Ignore" Type="PushButton" X="235" Y="243" Width="56" Height="17" Text="$(loc.ButtonText_Ignore)"> 579 <Publish Event="EndDialog" Value="Ignore">1</Publish> 580 </Control> 581 <Control Id="Exit" Type="PushButton" X="166" Y="243" Width="56" Height="17" Text="$(loc.ButtonText_Exit)"> 582 <Publish Event="EndDialog" Value="Exit">1</Publish> 583 </Control> 584 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" /> 585 <Control Id="Text" Type="Text" X="20" Y="55" Width="330" Height="50" Text="$(loc.FilesInUse_Text)" /> 586 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> 587 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> 588 <Control Id="Description" Type="Text" X="20" Y="23" Width="280" Height="20" Transparent="yes" NoPrefix="yes" Text="$(loc.FilesInUse_Description)" /> 589 <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="[DlgTitleFont]$(loc.FilesInUse_Title)" /> 590 <Control Id="List" Type="ListBox" X="20" Y="107" Width="330" Height="130" Property="FileInUseProcess" Sunken="yes" TabSkip="yes" /> 591 </Dialog> 592 593 <!-- This dialog is shown if the user interrupts the installation process --> 594 <Dialog Id="UserExitDlg" Width="370" Height="270" Title="[ProductName] $(loc.Setup)" NoMinimize="yes"> 595 <Control Id="Finish" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text="$(loc.ButtonText_Finish)"> 596 <Publish Event="EndDialog" Value="Exit">1</Publish> 597 </Control> 598 <!-- Build number text drawn left bottom --> 599 <Control Id="Build" Type="Text" X="20" Y="247" Width="220" Height="10" Transparent="yes" NoPrefix="yes"> 600 <Text>[Version_text] $(var.Property_Version)</Text> 601 </Control> 602 603 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Disabled="yes" Text="$(loc.ButtonText_Cancel)" /> 604 <Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" TabSkip="no" Text="[DialogBitmap]" /> 605 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Disabled="yes" Text="$(loc.ButtonText_Back)" /> 606 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> 607 <Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes"> 608 <Text>{\DlgVerdanaBold13}$(loc.UserExitDlg_Header)</Text> 609 </Control> 610 <Control Id="Description1" Type="Text" X="135" Y="70" Width="220" Height="40" Transparent="yes" NoPrefix="yes"> 611 <Text>$(loc.UserExitDlg_Desc)</Text> 612 </Control> 613 <Control Id="Description2" Type="Text" X="135" Y="115" Width="220" Height="20" Transparent="yes" NoPrefix="yes"> 614 <Text>$(loc.UserExitDlg_Footer)</Text> 622 <Text>!(loc.UserExitDlg_Footer)</Text> 615 623 </Control> 616 624 </Dialog> 617 625 618 626 <!-- Progress dialog shown during file copying and other lengthy operations --> 619 <Dialog Id=" ProgressDlg" Width="370" Height="270" Title="[ProductName] $(loc.Setup)" Modeless="yes">620 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text=" $(loc.ButtonText_Cancel)">621 <Publish Event="SpawnDialog" Value=" CancelDlg">1</Publish>622 </Control> 623 624 <!-- Build number text drawn left bottom --> 625 <Control Id="Build" Type="Text" X="20" Y="247" Width="220" Height="10" Transparent="yes" NoPrefix="yes"> 626 <Text>[Version_text] $(var.Property_Version)</Text> 627 </Control> 628 629 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" /> 630 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Disabled="yes" Text=" $(loc.ButtonText_Back)" />631 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Disabled="yes" Text=" $(loc.ButtonText_Next)" />627 <Dialog Id="VBoxProgressDlg" Width="370" Height="270" Title="[ProductName] !(loc.Setup)" Modeless="yes"> 628 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text="!(loc.ButtonText_Cancel)"> 629 <Publish Event="SpawnDialog" Value="VBoxCancelDlg">1</Publish> 630 </Control> 631 632 <!-- Build number text drawn left bottom --> 633 <Control Id="Build" Type="Text" X="20" Y="247" Width="220" Height="10" Transparent="yes" NoPrefix="yes"> 634 <Text>[Version_text] $(var.Property_Version)</Text> 635 </Control> 636 637 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" /> 638 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.ButtonText_Back)" /> 639 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.ButtonText_Next)" /> 632 640 <Control Id="ActionText" Type="Text" X="70" Y="100" Width="265" Height="10"> 633 641 <Subscribe Event="ActionText" Attribute="Text" /> 634 642 </Control> 635 643 <Control Id="Text" Type="Text" X="35" Y="65" Width="300" Height="20"> 636 <Text> $(loc.ProgressDlg_PleaseWait)</Text>644 <Text>!(loc.ProgressDlg_PleaseWait)</Text> 637 645 </Control> 638 646 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> … … 647 655 </Dialog> 648 656 649 <Dialog Id=" ResumeDlg" Width="370" Height="270" Title="[ProductName] $(loc.Setup)" NoMinimize="yes">650 <Control Id="Install" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text=" [$(loc.ButtonText_Install)]">651 <Publish Event="SpawnWaitDialog" Value=" WaitForCostingDlg">CostingComplete = 1</Publish>657 <Dialog Id="VBoxResumeDlg" Width="370" Height="270" Title="[ProductName] !(loc.Setup)" NoMinimize="yes"> 658 <Control Id="Install" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.ButtonText_Install)"> 659 <Publish Event="SpawnWaitDialog" Value="VBoxWaitForCostingDlg">CostingComplete = 1</Publish> 652 660 <Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish> 653 <Publish Event="SpawnDialog" Value=" OutOfRbDiskDlg">661 <Publish Event="SpawnDialog" Value="VBoxOutOfRbDiskDlg"> 654 662 <![CDATA[OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)]]> 655 663 </Publish> 656 664 <Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"]]></Publish> 657 665 <Publish Event="EnableRollback" Value="False"><![CDATA[OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"]]></Publish> 658 <Publish Event="SpawnDialog" Value=" OutOfDiskDlg">666 <Publish Event="SpawnDialog" Value="VBoxOutOfDiskDlg"> 659 667 <![CDATA[(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")]]> 660 668 </Publish> … … 662 670 663 671 <!-- Build number text drawn left bottom --> 664 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text=" $(loc.ButtonText_Cancel)">665 <Publish Event="SpawnDialog" Value=" CancelDlg">1</Publish>672 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.ButtonText_Cancel)"> 673 <Publish Event="SpawnDialog" Value="VBoxCancelDlg">1</Publish> 666 674 </Control> 667 675 <Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" TabSkip="no" Text="[DialogBitmap]" /> 668 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Disabled="yes" Text=" $(loc.ButtonText_Back)" />676 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.ButtonText_Back)" /> 669 677 <Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes"> 670 <Text>{\DlgVerdanaBold13} $(loc.ResumeDlg_Header)</Text>678 <Text>{\DlgVerdanaBold13}!(loc.ResumeDlg_Header)</Text> 671 679 </Control> 672 680 <Control Id="Description" Type="Text" X="135" Y="70" Width="220" Height="30" Transparent="yes" NoPrefix="yes"> 673 <Text> $(loc.ResumeDlg_Desc)</Text>681 <Text>!(loc.ResumeDlg_Desc)</Text> 674 682 </Control> 675 683 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> … … 681 689 <!-- This dialog is shown after the welcome page if the user restarts the MSI package on a system where the product is already installed. The user 682 690 may choose to repair the installation or remove it. --> 683 <Dialog Id=" MaintenanceTypeDlg" Width="370" Height="270" Title="[ProductName] $(loc.Setup)" NoMinimize="yes">691 <Dialog Id="VBoxMaintenanceTypeDlg" Width="370" Height="270" Title="[ProductName] !(loc.Setup)" NoMinimize="yes"> 684 692 <Control Id="RepairLabel" Type="Text" X="105" Y="90" Width="100" Height="10" TabSkip="no"> 685 <Text>[DlgTitleFont] $(loc.MaintenanceTypeDlg_Repair)</Text>686 </Control> 687 <Control Id="RepairButton" Type="PushButton" X="50" Y="90" Width="38" Height="38" ToolTip=" $(loc.MaintenanceTypeDlg_RepairTooltip)"693 <Text>[DlgTitleFont]!(loc.MaintenanceTypeDlg_Repair)</Text> 694 </Control> 695 <Control Id="RepairButton" Type="PushButton" X="50" Y="90" Width="38" Height="38" ToolTip="!(loc.MaintenanceTypeDlg_RepairTooltip)" 688 696 Icon="yes" FixedSize="yes" IconSize="32" Text="[RepairIcon]"> 689 697 <Publish Property="InstallMode" Value="Repair">1</Publish> 690 <Publish Property="Progress1" Value=" $(loc.MaintenanceTypeDlg_RepairProgress1)">1</Publish>691 <Publish Property="Progress2" Value=" $(loc.MaintenanceTypeDlg_RepairProgress2)">1</Publish>692 <Publish Event="NewDialog" Value="V erifyRepairDlg">1</Publish>698 <Publish Property="Progress1" Value="!(loc.MaintenanceTypeDlg_RepairProgress1)">1</Publish> 699 <Publish Property="Progress2" Value="!(loc.MaintenanceTypeDlg_RepairProgress2)">1</Publish> 700 <Publish Event="NewDialog" Value="VBoxVerifyRepairDlg">1</Publish> 693 701 </Control> 694 702 <Control Id="RemoveLabel" Type="Text" X="105" Y="163" Width="100" Height="10" TabSkip="no"> 695 <Text>[DlgTitleFont] $(loc.MaintenanceTypeDlg_Remove)</Text>696 </Control> 697 <Control Id="RemoveButton" Type="PushButton" X="50" Y="163" Width="38" Height="38" ToolTip=" $(loc.MaintenanceTypeDlg_RemoveTooltip)"703 <Text>[DlgTitleFont]!(loc.MaintenanceTypeDlg_Remove)</Text> 704 </Control> 705 <Control Id="RemoveButton" Type="PushButton" X="50" Y="163" Width="38" Height="38" ToolTip="!(loc.MaintenanceTypeDlg_RemoveTooltip)" 698 706 Icon="yes" FixedSize="yes" IconSize="32" Text="[RemoveIcon]"> 699 707 <Publish Property="InstallMode" Value="Remove">1</Publish> 700 <Publish Property="Progress1" Value=" $(loc.MaintenanceTypeDlg_RemoveProgress1)">1</Publish>701 <Publish Property="Progress2" Value=" $(loc.MaintenanceTypeDlg_RemoveProgress2)">1</Publish>702 <Publish Event="NewDialog" Value="V erifyRemoveDlg">1</Publish>703 </Control> 704 705 <!-- Build number text drawn left bottom --> 706 <Control Id="Build" Type="Text" X="20" Y="247" Width="220" Height="10" Transparent="yes" NoPrefix="yes"> 707 <Text>[Version_text] $(var.Property_Version)</Text> 708 </Control> 709 710 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text=" $(loc.ButtonText_Back)">711 <Publish Event="NewDialog" Value=" MaintenanceWelcomeDlg">1</Publish>712 </Control> 713 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Disabled="yes" Text=" $(loc.ButtonText_Next)" />714 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text=" $(loc.ButtonText_Cancel)">715 <Publish Event="SpawnDialog" Value=" CancelDlg">1</Publish>708 <Publish Property="Progress1" Value="!(loc.MaintenanceTypeDlg_RemoveProgress1)">1</Publish> 709 <Publish Property="Progress2" Value="!(loc.MaintenanceTypeDlg_RemoveProgress2)">1</Publish> 710 <Publish Event="NewDialog" Value="VBoxVerifyRemoveDlg">1</Publish> 711 </Control> 712 713 <!-- Build number text drawn left bottom --> 714 <Control Id="Build" Type="Text" X="20" Y="247" Width="220" Height="10" Transparent="yes" NoPrefix="yes"> 715 <Text>[Version_text] $(var.Property_Version)</Text> 716 </Control> 717 718 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.ButtonText_Back)"> 719 <Publish Event="NewDialog" Value="VBoxMaintenanceWelcomeDlg">1</Publish> 720 </Control> 721 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.ButtonText_Next)" /> 722 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.ButtonText_Cancel)"> 723 <Publish Event="SpawnDialog" Value="VBoxCancelDlg">1</Publish> 716 724 </Control> 717 725 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" /> 718 726 <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="20" Transparent="yes" NoPrefix="yes"> 719 <Text> $(loc.MaintenanceTypeDlg_SelOption)</Text>727 <Text>!(loc.MaintenanceTypeDlg_SelOption)</Text> 720 728 </Control> 721 729 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> 722 730 <Control Id="Title" Type="Text" X="15" Y="6" Width="240" Height="15" Transparent="yes" NoPrefix="yes"> 723 <Text>[DlgTitleFont] $(loc.MaintenanceTypeDlg_Header)</Text>731 <Text>[DlgTitleFont]!(loc.MaintenanceTypeDlg_Header)</Text> 724 732 </Control> 725 733 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> 726 734 <Control Id="RemoveText" Type="Text" X="105" Y="176" Width="230" Height="20"> 727 <Text> $(loc.MaintenanceTypeDlg_RemoveText)</Text>735 <Text>!(loc.MaintenanceTypeDlg_RemoveText)</Text> 728 736 </Control> 729 737 <Control Id="RepairText" Type="Text" X="105" Y="102" Width="230" Height="30"> 730 <Text> $(loc.MaintenanceTypeDlg_RepairText)</Text>738 <Text>!(loc.MaintenanceTypeDlg_RepairText)</Text> 731 739 </Control> 732 740 </Dialog> … … 734 742 <!-- This dialog is shown if the app is installed and the installation package is started again. It's the welcome 735 743 screen for maintenance --> 736 <Dialog Id=" MaintenanceWelcomeDlg" Width="370" Height="270" Title="[ProductName] $(loc.Setup)" NoMinimize="yes">744 <Dialog Id="VBoxMaintenanceWelcomeDlg" Width="370" Height="270" Title="[ProductName] !(loc.Setup)" NoMinimize="yes"> 737 745 <Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes"> 738 <Text>{\DlgVerdanaBold13} $(loc.MaintenanceWelcomeDlg_Header)</Text>739 </Control> 740 741 <!-- Build number text drawn left bottom --> 742 <Control Id="Build" Type="Text" X="20" Y="247" Width="220" Height="10" Transparent="yes" NoPrefix="yes"> 743 <Text>[Version_text] $(var.Property_Version)</Text> 744 </Control> 745 746 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text=" $(loc.ButtonText_Next)">747 <Publish Event="SpawnWaitDialog" Value=" WaitForCostingDlg">CostingComplete = 1</Publish>748 <Publish Event="NewDialog" Value=" MaintenanceTypeDlg">1</Publish>749 </Control> 750 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text=" $(loc.ButtonText_Cancel)">751 <Publish Event="SpawnDialog" Value=" CancelDlg">1</Publish>746 <Text>{\DlgVerdanaBold13}!(loc.MaintenanceWelcomeDlg_Header)</Text> 747 </Control> 748 749 <!-- Build number text drawn left bottom --> 750 <Control Id="Build" Type="Text" X="20" Y="247" Width="220" Height="10" Transparent="yes" NoPrefix="yes"> 751 <Text>[Version_text] $(var.Property_Version)</Text> 752 </Control> 753 754 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.ButtonText_Next)"> 755 <Publish Event="SpawnWaitDialog" Value="VBoxWaitForCostingDlg">CostingComplete = 1</Publish> 756 <Publish Event="NewDialog" Value="VBoxMaintenanceTypeDlg">1</Publish> 757 </Control> 758 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.ButtonText_Cancel)"> 759 <Publish Event="SpawnDialog" Value="VBoxCancelDlg">1</Publish> 752 760 </Control> 753 761 <Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" TabSkip="no" Text="[DialogBitmap]" /> 754 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Disabled="yes" Text=" $(loc.ButtonText_Back)" />762 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.ButtonText_Back)" /> 755 763 <Control Id="Description" Type="Text" X="135" Y="70" Width="220" Height="60" Transparent="yes" NoPrefix="yes"> 756 <Text> $(loc.MaintenanceWelcomeDlg_Desc)</Text>764 <Text>!(loc.MaintenanceWelcomeDlg_Desc)</Text> 757 765 </Control> 758 766 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> … … 760 768 761 769 <!-- Out of disk error dialog --> 762 <Dialog Id=" OutOfDiskDlg" Width="370" Height="270" Title="[ProductName] $(loc.Setup)" NoMinimize="yes">763 764 <!-- Build number text drawn left bottom --> 765 <Control Id="Build" Type="Text" X="20" Y="247" Width="220" Height="10" Transparent="yes" NoPrefix="yes"> 766 <Text>[Version_text] $(var.Property_Version)</Text> 767 </Control> 768 769 <Control Id="OK" Type="PushButton" X="304" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text=" $(loc.ButtonText_OK)">770 <Dialog Id="VBoxOutOfDiskDlg" Width="370" Height="270" Title="[ProductName] !(loc.Setup)" NoMinimize="yes"> 771 772 <!-- Build number text drawn left bottom --> 773 <Control Id="Build" Type="Text" X="20" Y="247" Width="220" Height="10" Transparent="yes" NoPrefix="yes"> 774 <Text>[Version_text] $(var.Property_Version)</Text> 775 </Control> 776 777 <Control Id="OK" Type="PushButton" X="304" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text="!(loc.ButtonText_OK)"> 770 778 <Publish Event="EndDialog" Value="Return">1</Publish> 771 779 </Control> 772 780 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" /> 773 781 <Control Id="Description" Type="Text" X="20" Y="20" Width="280" Height="20" Transparent="yes" NoPrefix="yes"> 774 <Text> $(loc.OutOfDiskDlg_InstallationExceeds)</Text>782 <Text>!(loc.OutOfDiskDlg_InstallationExceeds)</Text> 775 783 </Control> 776 784 <Control Id="Text" Type="Text" X="20" Y="53" Width="330" Height="40"> 777 <Text> $(loc.OutOfDiskDlg_NotEnoughDiskSpace)</Text>785 <Text>!(loc.OutOfDiskDlg_NotEnoughDiskSpace)</Text> 778 786 </Control> 779 787 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> 780 788 <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes"> 781 <Text>[DlgTitleFont] $(loc.OutOfDiskDlg_OutOfDiskSpace)</Text>789 <Text>[DlgTitleFont]!(loc.OutOfDiskDlg_OutOfDiskSpace)</Text> 782 790 </Control> 783 791 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> … … 787 795 </Dialog> 788 796 789 <Dialog Id=" OutOfRbDiskDlg" Width="370" Height="270" Title="[ProductName] $(loc.Setup)" NoMinimize="yes">790 <Control Id="No" Type="PushButton" X="304" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text=" $(loc.ButtonText_No)">797 <Dialog Id="VBoxOutOfRbDiskDlg" Width="370" Height="270" Title="[ProductName] !(loc.Setup)" NoMinimize="yes"> 798 <Control Id="No" Type="PushButton" X="304" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text="!(loc.ButtonText_No)"> 791 799 <Publish Event="EndDialog" Value="Return">1</Publish> 792 800 </Control> 793 <Control Id="Yes" Type="PushButton" X="240" Y="243" Width="56" Height="17" Text=" $(loc.ButtonText_Yes)">801 <Control Id="Yes" Type="PushButton" X="240" Y="243" Width="56" Height="17" Text="!(loc.ButtonText_Yes)"> 794 802 <Publish Event="EnableRollback" Value="False">1</Publish> 795 803 <Publish Event="EndDialog" Value="Return">1</Publish> … … 797 805 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" /> 798 806 <Control Id="Description" Type="Text" X="20" Y="20" Width="280" Height="20" Transparent="yes" NoPrefix="yes"> 799 <Text> $(loc.OutOfRbDiskDlg_InstallationExceeds)</Text>807 <Text>!(loc.OutOfRbDiskDlg_InstallationExceeds)</Text> 800 808 </Control> 801 809 <Control Id="Text" Type="Text" X="20" Y="53" Width="330" Height="40"> 802 <Text> $(loc.OutOfRbDiskDlg_NotEnoughDiskSpace)</Text>810 <Text>!(loc.OutOfRbDiskDlg_NotEnoughDiskSpace)</Text> 803 811 </Control> 804 812 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> 805 813 <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes"> 806 <Text>[DlgTitleFont] $(loc.OutOfRbDiskDlg_OutOfDiskSpace)</Text>814 <Text>[DlgTitleFont]!(loc.OutOfRbDiskDlg_OutOfDiskSpace)</Text> 807 815 </Control> 808 816 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> … … 811 819 </Control> 812 820 <Control Id="Text2" Type="Text" X="20" Y="94" Width="330" Height="40"> 813 <Text> $(loc.OutOfRbDiskDlg_Desc)</Text>814 </Control> 815 </Dialog> 816 817 <Dialog Id="V erifyRemoveDlg" Width="370" Height="270" Title="[ProductName] $(loc.Setup)" NoMinimize="yes" TrackDiskSpace="yes">818 819 <!-- Build number text drawn left bottom --> 820 <Control Id="Build" Type="Text" X="20" Y="247" Width="220" Height="10" Transparent="yes" NoPrefix="yes"> 821 <Text>[Version_text] $(var.Property_Version)</Text> 822 </Control> 823 824 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Default="yes" Text=" $(loc.ButtonText_Back)">825 <Publish Event="NewDialog" Value=" MaintenanceTypeDlg">1</Publish>826 </Control> 827 <Control Id="Remove" Type="PushButton" X="236" Y="243" Width="56" Height="17" Text=" $(loc.ButtonText_Remove)">821 <Text>!(loc.OutOfRbDiskDlg_Desc)</Text> 822 </Control> 823 </Dialog> 824 825 <Dialog Id="VBoxVerifyRemoveDlg" Width="370" Height="270" Title="[ProductName] !(loc.Setup)" NoMinimize="yes" TrackDiskSpace="yes"> 826 827 <!-- Build number text drawn left bottom --> 828 <Control Id="Build" Type="Text" X="20" Y="247" Width="220" Height="10" Transparent="yes" NoPrefix="yes"> 829 <Text>[Version_text] $(var.Property_Version)</Text> 830 </Control> 831 832 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.ButtonText_Back)"> 833 <Publish Event="NewDialog" Value="VBoxMaintenanceTypeDlg">1</Publish> 834 </Control> 835 <Control Id="Remove" Type="PushButton" X="236" Y="243" Width="56" Height="17" Text="!(loc.ButtonText_Remove)"> 828 836 <Publish Event="Remove" Value="All"><![CDATA[OutOfDiskSpace <> 1]]></Publish> 829 837 <Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish> 830 <Publish Event="SpawnDialog" Value=" OutOfRbDiskDlg"><![CDATA[OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)]]></Publish>838 <Publish Event="SpawnDialog" Value="VBoxOutOfRbDiskDlg"><![CDATA[OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)]]></Publish> 831 839 <Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"]]></Publish> 832 840 <Publish Event="EnableRollback" Value="False"><![CDATA[OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"]]></Publish> 833 <Publish Event="SpawnDialog" Value=" OutOfDiskDlg"><![CDATA[(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")]]></Publish>834 </Control> 835 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text=" $(loc.ButtonText_Cancel)">836 <Publish Event="SpawnDialog" Value=" CancelDlg">1</Publish>841 <Publish Event="SpawnDialog" Value="VBoxOutOfDiskDlg"><![CDATA[(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")]]></Publish> 842 </Control> 843 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.ButtonText_Cancel)"> 844 <Publish Event="SpawnDialog" Value="VBoxCancelDlg">1</Publish> 837 845 </Control> 838 846 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" /> 839 847 <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes"> 840 <Text> $(loc.VerifyRemoveDlg_Desc)</Text>848 <Text>!(loc.VerifyRemoveDlg_Desc)</Text> 841 849 </Control> 842 850 <Control Id="Text" Type="Text" X="25" Y="70" Width="320" Height="30"> 843 <Text> $(loc.VerifyRemoveDlg_ClickRemove)</Text>851 <Text>!(loc.VerifyRemoveDlg_ClickRemove)</Text> 844 852 </Control> 845 853 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> 846 854 <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes"> 847 <Text>[DlgTitleFont] $(loc.VerifyRemoveDlg_Header)</Text>848 </Control> 849 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> 850 </Dialog> 851 852 <Dialog Id="V erifyRepairDlg" Width="370" Height="270" Title="[ProductName] $(loc.Setup)" NoMinimize="yes" TrackDiskSpace="yes">853 <Control Id="Repair" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text=" $(loc.ButtonText_Repair)">855 <Text>[DlgTitleFont]!(loc.VerifyRemoveDlg_Header)</Text> 856 </Control> 857 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> 858 </Dialog> 859 860 <Dialog Id="VBoxVerifyRepairDlg" Width="370" Height="270" Title="[ProductName] !(loc.Setup)" NoMinimize="yes" TrackDiskSpace="yes"> 861 <Control Id="Repair" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.ButtonText_Repair)"> 854 862 <Publish Event="ReinstallMode" Value="ecmus"><![CDATA[OutOfDiskSpace <> 1]]></Publish> 855 863 <Publish Event="Reinstall" Value="All"><![CDATA[OutOfDiskSpace <> 1]]></Publish> 856 864 <Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish> 857 <Publish Event="SpawnDialog" Value=" OutOfRbDiskDlg"><![CDATA[OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)]]></Publish>865 <Publish Event="SpawnDialog" Value="VBoxOutOfRbDiskDlg"><![CDATA[OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)]]></Publish> 858 866 <Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"]]></Publish> 859 867 <Publish Event="EnableRollback" Value="False"><![CDATA[OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"]]></Publish> 860 <Publish Event="SpawnDialog" Value=" OutOfDiskDlg"><![CDATA[(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")]]></Publish>861 </Control> 862 863 <!-- Build number text drawn left bottom --> 864 <Control Id="Build" Type="Text" X="20" Y="247" Width="220" Height="10" Transparent="yes" NoPrefix="yes"> 865 <Text>[Version_text] $(var.Property_Version)</Text> 866 </Control> 867 868 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text=" $(loc.ButtonText_Cancel)">869 <Publish Event="SpawnDialog" Value=" CancelDlg">1</Publish>870 </Control> 871 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" /> 872 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text=" $(loc.ButtonText_Back)">873 <Publish Event="NewDialog" Value=" MaintenanceTypeDlg">1</Publish>868 <Publish Event="SpawnDialog" Value="VBoxOutOfDiskDlg"><![CDATA[(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")]]></Publish> 869 </Control> 870 871 <!-- Build number text drawn left bottom --> 872 <Control Id="Build" Type="Text" X="20" Y="247" Width="220" Height="10" Transparent="yes" NoPrefix="yes"> 873 <Text>[Version_text] $(var.Property_Version)</Text> 874 </Control> 875 876 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.ButtonText_Cancel)"> 877 <Publish Event="SpawnDialog" Value="VBoxCancelDlg">1</Publish> 878 </Control> 879 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" /> 880 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.ButtonText_Back)"> 881 <Publish Event="NewDialog" Value="VBoxMaintenanceTypeDlg">1</Publish> 874 882 </Control> 875 883 <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes"> 876 <Text> $(loc.VerifyRepairDlg_ReadyToBegin)</Text>884 <Text>!(loc.VerifyRepairDlg_ReadyToBegin)</Text> 877 885 </Control> 878 886 <Control Id="Text" Type="Text" X="25" Y="70" Width="320" Height="30"> 879 <Text> $(loc.VerifyRepairDlg_ClickRepair)</Text>887 <Text>!(loc.VerifyRepairDlg_ClickRepair)</Text> 880 888 </Control> 881 889 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> 882 890 <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes"> 883 <Text>[DlgTitleFont] $(loc.VerifyRepairDlg_Header)</Text>884 </Control> 885 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> 886 </Dialog> 887 888 <Dialog Id=" WaitForCostingDlg" Width="260" Height="85" Title="[ProductName] $(loc.Setup)" NoMinimize="yes">891 <Text>[DlgTitleFont]!(loc.VerifyRepairDlg_Header)</Text> 892 </Control> 893 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> 894 </Dialog> 895 896 <Dialog Id="VBoxWaitForCostingDlg" Width="260" Height="85" Title="[ProductName] !(loc.Setup)" NoMinimize="yes"> 889 897 <Control Id="Return" Type="PushButton" X="102" Y="57" Width="56" Height="17" Default="yes" Cancel="yes" Text="[ButtonText_Return]"> 890 898 <Publish Event="EndDialog" Value="Exit">1</Publish> 891 899 </Control> 892 900 <Control Id="Text" Type="Text" X="48" Y="15" Width="194" Height="30"> 893 <Text> $(loc.WaitForCostingDlg_PleaseWait)</Text>901 <Text>!(loc.WaitForCostingDlg_PleaseWait)</Text> 894 902 </Control> 895 903 <Control Id="Icon" Type="Icon" X="15" Y="15" Width="24" Height="24" ToolTip="Exclamation icon" FixedSize="yes" IconSize="32" Text="[ExclamationIcon]" /> 896 904 </Dialog> 897 905 898 <!-- Dialogs used by the .MSI internally. --> 899 <Dialog Id="MsiRMFilesInUse" Width="370" Height="270" Title="[ProductName] $(loc.Setup) Test" KeepModeless="yes"> 900 <Control Id="OK" Type="PushButton" X="240" Y="243" Width="56" Height="17" Default="yes" Text="$(loc.ButtonText_OK)"> 901 <Publish Event="EndDialog" Value="Return">1</Publish> 902 <Publish Event="RMShutdownAndRestart" Value="0">WixUIRMOption~="UseRM"</Publish> 903 </Control> 904 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="$(loc.ButtonText_Cancel)"> 905 <Publish Event="EndDialog" Value="Exit">1</Publish> 906 </Control> 907 <Control Id="ShutdownOption" Type="RadioButtonGroup" X="26" Y="190" Width="305" Height="45" Property="WixUIRMOption"> 908 <RadioButtonGroup Property="WixUIRMOption"> 909 <RadioButton Value="UseRM" X="0" Y="0" Width="295" Height="16" Text="$(loc.MsiRMFilesInUse_UseRM)" /> 910 <RadioButton Value="DontUseRM" X="0" Y="20" Width="295" Height="16" Text="$(loc.MsiRMFilesInUse_DontUseRM)" /> 911 </RadioButtonGroup> 912 </Control> 913 <Control Id="List" Type="ListBox" X="20" Y="100" Width="330" Height="100" Property="FileInUseProcess" Sunken="yes" TabSkip="yes" /> 914 <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" /> 915 <Control Id="Text" Type="Text" X="20" Y="55" Width="330" Height="45" Text="$(loc.MsiRMFilesInUse_Text)" /> 916 <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" /> 917 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> 918 <Control Id="Description" Type="Text" X="20" Y="23" Width="280" Height="20" Transparent="yes" NoPrefix="yes" Text="$(loc.MsiRMFilesInUse_Description)" /> 919 <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="$(loc.MsiRMFilesInUse_Title)" /> 920 </Dialog> 906 <!-- Dialog property table. --> 907 <Property Id="ErrorDialog" Value="VBoxFatalErrorDlg"/> 921 908 922 909 <!-- Define some textstyles used for formatting dialog items. --> 910 <Property Id="DefaultUIFont">DlgFont8</Property> 923 911 <TextStyle Id="DlgFont8" FaceName="Tahoma" Size="8" /> 924 912 <TextStyle Id="DlgFontBold8" FaceName="Tahoma" Size="8" Bold="yes" /> … … 929 917 <!-- The UIText table contains the localized versions of some of the strings used in the user interface. 930 918 These strings are not part of any other table. The UIText table is for strings that have no logical place in any other table. --> 931 <ProgressText Action="CostFinalize"> $(loc.ProgressTextCostFinalize)</ProgressText>932 <ProgressText Action="CostInitialize"> $(loc.ProgressTextCostInitialize)</ProgressText>933 <ProgressText Action="FileCost"> $(loc.ProgressTextFileCost)</ProgressText>934 <ProgressText Action="InstallValidate"> $(loc.ProgressTextInstallValidate)</ProgressText>935 <ProgressText Action="InstallFiles" Template="File: [1], Directory: [9], Size: [6]"> $(loc.ProgressTextInstallFiles)</ProgressText>936 <ProgressText Action="InstallAdminPackage" Template="File: [1], Directory: [9], Size: [6]"> $(loc.ProgressTextInstallAdminPackage)</ProgressText>937 <ProgressText Action="CreateShortcuts" Template="Shortcut: [1]"> $(loc.ProgressTextCreateShortcuts)</ProgressText>938 <ProgressText Action="PublishComponents" Template="Component ID: [1], Qualifier: [2]"> $(loc.ProgressTextPublishComponents)</ProgressText>939 <ProgressText Action="PublishFeatures" Template="Feature: [1]"> $(loc.ProgressTextPublishFeatures)</ProgressText>940 <ProgressText Action="PublishProduct"> $(loc.ProgressTextPublishProduct)</ProgressText>941 <ProgressText Action="RegisterClassInfo" Template="Class Id: [1]"> $(loc.ProgressTextRegisterClassInfo)</ProgressText>942 <ProgressText Action="RegisterExtensionInfo" Template="Extension: [1]"> $(loc.ProgressTextRegisterExtensionInfo)</ProgressText>943 <ProgressText Action="RegisterMIMEInfo" Template="MIME Content Type: [1], Extension: [2]"> $(loc.ProgressTextRegisterMIMEInfo)</ProgressText>944 <ProgressText Action="RegisterProgIdInfo" Template="ProgId: [1]"> $(loc.ProgressTextRegisterProgIdInfo)</ProgressText>945 <ProgressText Action="AllocateRegistrySpace" Template="Free space: [1]"> $(loc.ProgressTextAllocateRegistrySpace)</ProgressText>946 <ProgressText Action="AppSearch" Template="Property: [1], Signature: [2]"> $(loc.ProgressTextAppSearch)</ProgressText>947 <ProgressText Action="BindImage" Template="File: [1]"> $(loc.ProgressTextBindImage)</ProgressText>948 <ProgressText Action="CCPSearch"> $(loc.ProgressTextCCPSearch)</ProgressText>949 <ProgressText Action="CreateFolders" Template="Folder: [1]"> $(loc.ProgressTextCreateFolders)</ProgressText>950 <ProgressText Action="DeleteServices" Template="Service: [1]"> $(loc.ProgressTextDeleteServices)</ProgressText>951 <ProgressText Action="DuplicateFiles" Template="File: [1], Directory: [9], Size: [6]"> $(loc.ProgressTextDuplicateFiles)</ProgressText>952 <ProgressText Action="FindRelatedProducts" Template="Found application: [1]"> $(loc.ProgressTextFindRelatedProducts)</ProgressText>953 <ProgressText Action="InstallODBC"> $(loc.ProgressTextInstallODBC)</ProgressText>954 <ProgressText Action="InstallServices" Template="Service: [2]"> $(loc.ProgressTextInstallServices)</ProgressText>955 <ProgressText Action="LaunchConditions"> $(loc.ProgressTextLaunchConditions)</ProgressText>956 <ProgressText Action="MigrateFeatureStates" Template="Application: [1]"> $(loc.ProgressTextMigrateFeatureStates)</ProgressText>957 <ProgressText Action="MoveFiles" Template="File: [1], Directory: [9], Size: [6]"> $(loc.ProgressTextMoveFiles)</ProgressText>958 <ProgressText Action="PatchFiles" Template="File: [1], Directory: [2], Size: [3]"> $(loc.ProgressTextPatchFiles)</ProgressText>959 <ProgressText Action="ProcessComponents"> $(loc.ProgressTextProcessComponents)</ProgressText>960 <ProgressText Action="RegisterComPlus" Template="AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}"> $(loc.ProgressTextRegisterComPlus)</ProgressText>961 <ProgressText Action="RegisterFonts" Template="Font: [1]"> $(loc.ProgressTextRegisterFonts)</ProgressText>962 <ProgressText Action="RegisterProduct" Template="[1]"> $(loc.ProgressTextRegisterProduct)</ProgressText>963 <ProgressText Action="RegisterTypeLibraries" Template="LibID: [1]"> $(loc.ProgressTextRegisterTypeLibraries)</ProgressText>964 <ProgressText Action="RegisterUser" Template="[1]"> $(loc.ProgressTextRegisterUser)</ProgressText>965 <ProgressText Action="RemoveDuplicateFiles" Template="File: [1], Directory: [9]"> $(loc.ProgressTextRemoveDuplicateFiles)</ProgressText>966 <ProgressText Action="RemoveEnvironmentStrings" Template="Name: [1], Value: [2], Action [3]"> $(loc.ProgressTextRemoveEnvironmentStrings)</ProgressText>967 <ProgressText Action="RemoveExistingProducts" Template="Application: [1], Command line: [2]"> $(loc.ProgressTextRemoveExistingProducts)</ProgressText>968 <ProgressText Action="RemoveFiles" Template="File: [1], Directory: [9]"> $(loc.ProgressTextRemoveFiles)</ProgressText>969 <ProgressText Action="RemoveFolders" Template="Folder: [1]"> $(loc.ProgressTextRemoveFolders)</ProgressText>970 <ProgressText Action="RemoveIniValues" Template="File: [1], Section: [2], Key: [3], Value: [4]"> $(loc.ProgressTextRemoveIniValues)</ProgressText>971 <ProgressText Action="RemoveODBC"> $(loc.ProgressTextRemoveODBC)</ProgressText>972 <ProgressText Action="RemoveRegistryValues" Template="Key: [1], Name: [2]"> $(loc.ProgressTextRemoveRegistryValues)</ProgressText>973 <ProgressText Action="RemoveShortcuts" Template="Shortcut: [1]"> $(loc.ProgressTextRemoveShortcuts)</ProgressText>974 <ProgressText Action="RMCCPSearch"> $(loc.ProgressTextRMCCPSearch)</ProgressText>975 <ProgressText Action="SelfRegModules" Template="File: [1], Folder: [2]"> $(loc.ProgressTextSelfRegModules)</ProgressText>976 <ProgressText Action="SelfUnregModules" Template="File: [1], Folder: [2]"> $(loc.ProgressTextSelfUnregModules)</ProgressText>977 <ProgressText Action="SetODBCFolders"> $(loc.ProgressTextSetODBCFolders)</ProgressText>978 <ProgressText Action="StartServices" Template="Service: [1]"> $(loc.ProgressTextStartServices)</ProgressText>979 <ProgressText Action="StopServices" Template="Service: [1]"> $(loc.ProgressTextStopServices)</ProgressText>980 <ProgressText Action="UnpublishComponents" Template="Component ID: [1], Qualifier: [2]"> $(loc.ProgressTextUnpublishComponents)</ProgressText>981 <ProgressText Action="UnpublishFeatures" Template="Feature: [1]"> $(loc.ProgressTextUnpublishFeatures)</ProgressText>982 <ProgressText Action="UnregisterClassInfo" Template="Class Id: [1]"> $(loc.ProgressTextUnregisterClassInfo)</ProgressText>983 <ProgressText Action="UnregisterComPlus" Template="AppId: [1]{{, AppType: [2]}}"> $(loc.ProgressTextUnregisterComPlus)</ProgressText>984 <ProgressText Action="UnregisterExtensionInfo" Template="Extension: [1]"> $(loc.ProgressTextUnregisterExtensionInfo)</ProgressText>985 <ProgressText Action="UnregisterFonts" Template="Font: [1]"> $(loc.ProgressTextUnregisterFonts)</ProgressText>986 <ProgressText Action="UnregisterMIMEInfo" Template="MIME Content Type: [1], Extension: [2]"> $(loc.ProgressTextUnregisterMIMEInfo)</ProgressText>987 <ProgressText Action="UnregisterProgIdInfo" Template="ProgId: [1]"> $(loc.ProgressTextUnregisterProgIdInfo)</ProgressText>988 <ProgressText Action="UnregisterTypeLibraries" Template="LibID: [1]"> $(loc.ProgressTextUnregisterTypeLibraries)</ProgressText>989 <ProgressText Action="WriteEnvironmentStrings" Template="Name: [1], Value: [2], Action [3]"> $(loc.ProgressTextWriteEnvironmentStrings)</ProgressText>990 <ProgressText Action="WriteIniValues" Template="File: [1], Section: [2], Key: [3], Value: [4]"> $(loc.ProgressTextWriteIniValues)</ProgressText>991 <ProgressText Action="WriteRegistryValues" Template="Key: [1], Name: [2], Value: [3]"> $(loc.ProgressTextWriteRegistryValues)</ProgressText>992 <ProgressText Action="Advertise"> $(loc.ProgressTextAdvertise)</ProgressText>993 <ProgressText Action="GenerateScript" Template="[1]"> $(loc.ProgressTextGenerateScript)</ProgressText>994 <ProgressText Action="InstallSFPCatalogFile" Template="File: [1], Dependencies: [2]"> $(loc.ProgressTextInstallSFPCatalogFile)</ProgressText>995 <ProgressText Action="MsiPublishAssemblies" Template="Application Context:[1], Assembly Name:[2]"> $(loc.ProgressTextMsiPublishAssemblies)</ProgressText>996 <ProgressText Action="MsiUnpublishAssemblies" Template="Application Context:[1], Assembly Name:[2]"> $(loc.ProgressTextMsiUnpublishAssemblies)</ProgressText>997 <ProgressText Action="Rollback" Template="[1]"> $(loc.ProgressTextRollback)</ProgressText>998 <ProgressText Action="RollbackCleanup" Template="File: [1]"> $(loc.ProgressTextRollbackCleanup)</ProgressText>999 <ProgressText Action="UnmoveFiles" Template="File: [1], Directory: [9]"> $(loc.ProgressTextUnmoveFiles)</ProgressText>1000 <ProgressText Action="UnpublishProduct"> $(loc.ProgressTextUnpublishProduct)</ProgressText>1001 1002 <UIText Id="bytes"> $(loc.UITextbytes)</UIText>1003 <UIText Id="GB"> $(loc.UITextGB)</UIText>1004 <UIText Id="KB"> $(loc.UITextKB)</UIText>1005 <UIText Id="MB"> $(loc.UITextMB)</UIText>919 <ProgressText Action="CostFinalize">!(loc.ProgressTextCostFinalize)</ProgressText> 920 <ProgressText Action="CostInitialize">!(loc.ProgressTextCostInitialize)</ProgressText> 921 <ProgressText Action="FileCost">!(loc.ProgressTextFileCost)</ProgressText> 922 <ProgressText Action="InstallValidate">!(loc.ProgressTextInstallValidate)</ProgressText> 923 <ProgressText Action="InstallFiles" Template="File: [1], Directory: [9], Size: [6]">!(loc.ProgressTextInstallFiles)</ProgressText> 924 <ProgressText Action="InstallAdminPackage" Template="File: [1], Directory: [9], Size: [6]">!(loc.ProgressTextInstallAdminPackage)</ProgressText> 925 <ProgressText Action="CreateShortcuts" Template="Shortcut: [1]">!(loc.ProgressTextCreateShortcuts)</ProgressText> 926 <ProgressText Action="PublishComponents" Template="Component ID: [1], Qualifier: [2]">!(loc.ProgressTextPublishComponents)</ProgressText> 927 <ProgressText Action="PublishFeatures" Template="Feature: [1]">!(loc.ProgressTextPublishFeatures)</ProgressText> 928 <ProgressText Action="PublishProduct">!(loc.ProgressTextPublishProduct)</ProgressText> 929 <ProgressText Action="RegisterClassInfo" Template="Class Id: [1]">!(loc.ProgressTextRegisterClassInfo)</ProgressText> 930 <ProgressText Action="RegisterExtensionInfo" Template="Extension: [1]">!(loc.ProgressTextRegisterExtensionInfo)</ProgressText> 931 <ProgressText Action="RegisterMIMEInfo" Template="MIME Content Type: [1], Extension: [2]">!(loc.ProgressTextRegisterMIMEInfo)</ProgressText> 932 <ProgressText Action="RegisterProgIdInfo" Template="ProgId: [1]">!(loc.ProgressTextRegisterProgIdInfo)</ProgressText> 933 <ProgressText Action="AllocateRegistrySpace" Template="Free space: [1]">!(loc.ProgressTextAllocateRegistrySpace)</ProgressText> 934 <ProgressText Action="AppSearch" Template="Property: [1], Signature: [2]">!(loc.ProgressTextAppSearch)</ProgressText> 935 <ProgressText Action="BindImage" Template="File: [1]">!(loc.ProgressTextBindImage)</ProgressText> 936 <ProgressText Action="CCPSearch">!(loc.ProgressTextCCPSearch)</ProgressText> 937 <ProgressText Action="CreateFolders" Template="Folder: [1]">!(loc.ProgressTextCreateFolders)</ProgressText> 938 <ProgressText Action="DeleteServices" Template="Service: [1]">!(loc.ProgressTextDeleteServices)</ProgressText> 939 <ProgressText Action="DuplicateFiles" Template="File: [1], Directory: [9], Size: [6]">!(loc.ProgressTextDuplicateFiles)</ProgressText> 940 <ProgressText Action="FindRelatedProducts" Template="Found application: [1]">!(loc.ProgressTextFindRelatedProducts)</ProgressText> 941 <ProgressText Action="InstallODBC">!(loc.ProgressTextInstallODBC)</ProgressText> 942 <ProgressText Action="InstallServices" Template="Service: [2]">!(loc.ProgressTextInstallServices)</ProgressText> 943 <ProgressText Action="LaunchConditions">!(loc.ProgressTextLaunchConditions)</ProgressText> 944 <ProgressText Action="MigrateFeatureStates" Template="Application: [1]">!(loc.ProgressTextMigrateFeatureStates)</ProgressText> 945 <ProgressText Action="MoveFiles" Template="File: [1], Directory: [9], Size: [6]">!(loc.ProgressTextMoveFiles)</ProgressText> 946 <ProgressText Action="PatchFiles" Template="File: [1], Directory: [2], Size: [3]">!(loc.ProgressTextPatchFiles)</ProgressText> 947 <ProgressText Action="ProcessComponents">!(loc.ProgressTextProcessComponents)</ProgressText> 948 <ProgressText Action="RegisterComPlus" Template="AppId: [1]{{, AppType: [2], Users: [3], RSN: [4]}}">!(loc.ProgressTextRegisterComPlus)</ProgressText> 949 <ProgressText Action="RegisterFonts" Template="Font: [1]">!(loc.ProgressTextRegisterFonts)</ProgressText> 950 <ProgressText Action="RegisterProduct" Template="[1]">!(loc.ProgressTextRegisterProduct)</ProgressText> 951 <ProgressText Action="RegisterTypeLibraries" Template="LibID: [1]">!(loc.ProgressTextRegisterTypeLibraries)</ProgressText> 952 <ProgressText Action="RegisterUser" Template="[1]">!(loc.ProgressTextRegisterUser)</ProgressText> 953 <ProgressText Action="RemoveDuplicateFiles" Template="File: [1], Directory: [9]">!(loc.ProgressTextRemoveDuplicateFiles)</ProgressText> 954 <ProgressText Action="RemoveEnvironmentStrings" Template="Name: [1], Value: [2], Action [3]">!(loc.ProgressTextRemoveEnvironmentStrings)</ProgressText> 955 <ProgressText Action="RemoveExistingProducts" Template="Application: [1], Command line: [2]">!(loc.ProgressTextRemoveExistingProducts)</ProgressText> 956 <ProgressText Action="RemoveFiles" Template="File: [1], Directory: [9]">!(loc.ProgressTextRemoveFiles)</ProgressText> 957 <ProgressText Action="RemoveFolders" Template="Folder: [1]">!(loc.ProgressTextRemoveFolders)</ProgressText> 958 <ProgressText Action="RemoveIniValues" Template="File: [1], Section: [2], Key: [3], Value: [4]">!(loc.ProgressTextRemoveIniValues)</ProgressText> 959 <ProgressText Action="RemoveODBC">!(loc.ProgressTextRemoveODBC)</ProgressText> 960 <ProgressText Action="RemoveRegistryValues" Template="Key: [1], Name: [2]">!(loc.ProgressTextRemoveRegistryValues)</ProgressText> 961 <ProgressText Action="RemoveShortcuts" Template="Shortcut: [1]">!(loc.ProgressTextRemoveShortcuts)</ProgressText> 962 <ProgressText Action="RMCCPSearch">!(loc.ProgressTextRMCCPSearch)</ProgressText> 963 <ProgressText Action="SelfRegModules" Template="File: [1], Folder: [2]">!(loc.ProgressTextSelfRegModules)</ProgressText> 964 <ProgressText Action="SelfUnregModules" Template="File: [1], Folder: [2]">!(loc.ProgressTextSelfUnregModules)</ProgressText> 965 <ProgressText Action="SetODBCFolders">!(loc.ProgressTextSetODBCFolders)</ProgressText> 966 <ProgressText Action="StartServices" Template="Service: [1]">!(loc.ProgressTextStartServices)</ProgressText> 967 <ProgressText Action="StopServices" Template="Service: [1]">!(loc.ProgressTextStopServices)</ProgressText> 968 <ProgressText Action="UnpublishComponents" Template="Component ID: [1], Qualifier: [2]">!(loc.ProgressTextUnpublishComponents)</ProgressText> 969 <ProgressText Action="UnpublishFeatures" Template="Feature: [1]">!(loc.ProgressTextUnpublishFeatures)</ProgressText> 970 <ProgressText Action="UnregisterClassInfo" Template="Class Id: [1]">!(loc.ProgressTextUnregisterClassInfo)</ProgressText> 971 <ProgressText Action="UnregisterComPlus" Template="AppId: [1]{{, AppType: [2]}}">!(loc.ProgressTextUnregisterComPlus)</ProgressText> 972 <ProgressText Action="UnregisterExtensionInfo" Template="Extension: [1]">!(loc.ProgressTextUnregisterExtensionInfo)</ProgressText> 973 <ProgressText Action="UnregisterFonts" Template="Font: [1]">!(loc.ProgressTextUnregisterFonts)</ProgressText> 974 <ProgressText Action="UnregisterMIMEInfo" Template="MIME Content Type: [1], Extension: [2]">!(loc.ProgressTextUnregisterMIMEInfo)</ProgressText> 975 <ProgressText Action="UnregisterProgIdInfo" Template="ProgId: [1]">!(loc.ProgressTextUnregisterProgIdInfo)</ProgressText> 976 <ProgressText Action="UnregisterTypeLibraries" Template="LibID: [1]">!(loc.ProgressTextUnregisterTypeLibraries)</ProgressText> 977 <ProgressText Action="WriteEnvironmentStrings" Template="Name: [1], Value: [2], Action [3]">!(loc.ProgressTextWriteEnvironmentStrings)</ProgressText> 978 <ProgressText Action="WriteIniValues" Template="File: [1], Section: [2], Key: [3], Value: [4]">!(loc.ProgressTextWriteIniValues)</ProgressText> 979 <ProgressText Action="WriteRegistryValues" Template="Key: [1], Name: [2], Value: [3]">!(loc.ProgressTextWriteRegistryValues)</ProgressText> 980 <ProgressText Action="Advertise">!(loc.ProgressTextAdvertise)</ProgressText> 981 <ProgressText Action="GenerateScript" Template="[1]">!(loc.ProgressTextGenerateScript)</ProgressText> 982 <ProgressText Action="InstallSFPCatalogFile" Template="File: [1], Dependencies: [2]">!(loc.ProgressTextInstallSFPCatalogFile)</ProgressText> 983 <ProgressText Action="MsiPublishAssemblies" Template="Application Context:[1], Assembly Name:[2]">!(loc.ProgressTextMsiPublishAssemblies)</ProgressText> 984 <ProgressText Action="MsiUnpublishAssemblies" Template="Application Context:[1], Assembly Name:[2]">!(loc.ProgressTextMsiUnpublishAssemblies)</ProgressText> 985 <ProgressText Action="Rollback" Template="[1]">!(loc.ProgressTextRollback)</ProgressText> 986 <ProgressText Action="RollbackCleanup" Template="File: [1]">!(loc.ProgressTextRollbackCleanup)</ProgressText> 987 <ProgressText Action="UnmoveFiles" Template="File: [1], Directory: [9]">!(loc.ProgressTextUnmoveFiles)</ProgressText> 988 <ProgressText Action="UnpublishProduct">!(loc.ProgressTextUnpublishProduct)</ProgressText> 989 990 <UIText Id="bytes">!(loc.UITextbytes)</UIText> 991 <UIText Id="GB">!(loc.UITextGB)</UIText> 992 <UIText Id="KB">!(loc.UITextKB)</UIText> 993 <UIText Id="MB">!(loc.UITextMB)</UIText> 1006 994 <UIText Id="AbsentPath"><![CDATA[-]]></UIText> 1007 <UIText Id="MenuAbsent"> $(loc.UITextMenuAbsent)</UIText>1008 <UIText Id="MenuAdvertise"> $(loc.UITextMenuAdvertise)</UIText>1009 <UIText Id="MenuAllCD"> $(loc.UITextMenuAllCD)</UIText>1010 <UIText Id="MenuAllLocal"> $(loc.UITextMenuAllLocal)</UIText>1011 <UIText Id="MenuAllNetwork"> $(loc.UITextMenuAllNetwork)</UIText>1012 <UIText Id="MenuCD"> $(loc.UITextMenuCD)</UIText>1013 <UIText Id="MenuLocal"> $(loc.UITextMenuLocal)</UIText>1014 <UIText Id="MenuNetwork"> $(loc.UITextMenuNetwork)</UIText>1015 <UIText Id="ScriptInProgress"> $(loc.UITextScriptInProgress)</UIText>1016 <UIText Id="SelAbsentAbsent"> $(loc.UITextSelAbsentAbsent)</UIText>1017 <UIText Id="SelAbsentAdvertise"> $(loc.UITextSelAbsentAdvertise)</UIText>1018 <UIText Id="SelAbsentCD"> $(loc.UITextSelAbsentCD)</UIText>1019 <UIText Id="SelAbsentLocal"> $(loc.UITextSelAbsentLocal)</UIText>1020 <UIText Id="SelAbsentNetwork"> $(loc.UITextSelAbsentNetwork)</UIText>1021 <UIText Id="SelAdvertiseAbsent"> $(loc.UITextSelAdvertiseAbsent)</UIText>1022 <UIText Id="SelAdvertiseAdvertise"> $(loc.UITextSelAdvertiseAdvertise)</UIText>1023 <UIText Id="SelAdvertiseCD"> $(loc.UITextSelAdvertiseCD)</UIText>1024 <UIText Id="SelAdvertiseLocal"> $(loc.UITextSelAdvertiseLocal)</UIText>1025 <UIText Id="SelAdvertiseNetwork"> $(loc.UITextSelAdvertiseNetwork)</UIText>1026 <UIText Id="SelCDAbsent"> $(loc.UITextSelCDAbsent)</UIText>1027 <UIText Id="SelCDAdvertise"> $(loc.UITextSelCDAdvertise)</UIText>1028 <UIText Id="SelCDCD"> $(loc.UITextSelCDCD)</UIText>1029 <UIText Id="SelCDLocal"> $(loc.UITextSelCDLocal)</UIText>1030 <UIText Id="SelChildCostNeg"> $(loc.UITextSelChildCostNeg)</UIText>1031 <UIText Id="SelChildCostPos"> $(loc.UITextSelChildCostPos)</UIText>1032 <UIText Id="SelCostPending"> $(loc.UITextSelCostPending)</UIText>1033 <UIText Id="SelLocalAbsent"> $(loc.UITextSelLocalAbsent)</UIText>1034 <UIText Id="SelLocalAdvertise"> $(loc.UITextSelLocalAdvertise)</UIText>1035 <UIText Id="SelLocalCD"> $(loc.UITextSelLocalCD)</UIText>1036 <UIText Id="SelLocalLocal"> $(loc.UITextSelLocalLocal)</UIText>1037 <UIText Id="SelLocalNetwork"> $(loc.UITextSelLocalNetwork)</UIText>1038 <UIText Id="SelNetworkAbsent"> $(loc.UITextSelNetworkAbsent)</UIText>1039 <UIText Id="SelNetworkAdvertise"> $(loc.UITextSelNetworkAdvertise)</UIText>1040 <UIText Id="SelNetworkLocal"> $(loc.UITextSelNetworkLocal)</UIText>1041 <UIText Id="SelNetworkNetwork"> $(loc.UITextSelNetworkNetwork)</UIText>1042 <UIText Id="SelParentCostNegNeg"> $(loc.UITextSelParentCostNegNeg)</UIText>1043 <UIText Id="SelParentCostNegPos"> $(loc.UITextSelParentCostNegPos)</UIText>1044 <UIText Id="SelParentCostPosNeg"> $(loc.UITextSelParentCostPosNeg)</UIText>1045 <UIText Id="SelParentCostPosPos"> $(loc.UITextSelParentCostPosPos)</UIText>1046 <UIText Id="TimeRemaining"> $(loc.UITextTimeRemaining)</UIText>1047 <UIText Id="VolumeCostAvailable"> $(loc.UITextVolumeCostAvailable)</UIText>1048 <UIText Id="VolumeCostDifference"> $(loc.UITextVolumeCostDifference)</UIText>1049 <UIText Id="VolumeCostRequired"> $(loc.UITextVolumeCostRequired)</UIText>1050 <UIText Id="VolumeCostSize"> $(loc.UITextVolumeCostSize)</UIText>1051 <UIText Id="VolumeCostVolume"> $(loc.UITextVolumeCostVolume)</UIText>995 <UIText Id="MenuAbsent">!(loc.UITextMenuAbsent)</UIText> 996 <UIText Id="MenuAdvertise">!(loc.UITextMenuAdvertise)</UIText> 997 <UIText Id="MenuAllCD">!(loc.UITextMenuAllCD)</UIText> 998 <UIText Id="MenuAllLocal">!(loc.UITextMenuAllLocal)</UIText> 999 <UIText Id="MenuAllNetwork">!(loc.UITextMenuAllNetwork)</UIText> 1000 <UIText Id="MenuCD">!(loc.UITextMenuCD)</UIText> 1001 <UIText Id="MenuLocal">!(loc.UITextMenuLocal)</UIText> 1002 <UIText Id="MenuNetwork">!(loc.UITextMenuNetwork)</UIText> 1003 <UIText Id="ScriptInProgress">!(loc.UITextScriptInProgress)</UIText> 1004 <UIText Id="SelAbsentAbsent">!(loc.UITextSelAbsentAbsent)</UIText> 1005 <UIText Id="SelAbsentAdvertise">!(loc.UITextSelAbsentAdvertise)</UIText> 1006 <UIText Id="SelAbsentCD">!(loc.UITextSelAbsentCD)</UIText> 1007 <UIText Id="SelAbsentLocal">!(loc.UITextSelAbsentLocal)</UIText> 1008 <UIText Id="SelAbsentNetwork">!(loc.UITextSelAbsentNetwork)</UIText> 1009 <UIText Id="SelAdvertiseAbsent">!(loc.UITextSelAdvertiseAbsent)</UIText> 1010 <UIText Id="SelAdvertiseAdvertise">!(loc.UITextSelAdvertiseAdvertise)</UIText> 1011 <UIText Id="SelAdvertiseCD">!(loc.UITextSelAdvertiseCD)</UIText> 1012 <UIText Id="SelAdvertiseLocal">!(loc.UITextSelAdvertiseLocal)</UIText> 1013 <UIText Id="SelAdvertiseNetwork">!(loc.UITextSelAdvertiseNetwork)</UIText> 1014 <UIText Id="SelCDAbsent">!(loc.UITextSelCDAbsent)</UIText> 1015 <UIText Id="SelCDAdvertise">!(loc.UITextSelCDAdvertise)</UIText> 1016 <UIText Id="SelCDCD">!(loc.UITextSelCDCD)</UIText> 1017 <UIText Id="SelCDLocal">!(loc.UITextSelCDLocal)</UIText> 1018 <UIText Id="SelChildCostNeg">!(loc.UITextSelChildCostNeg)</UIText> 1019 <UIText Id="SelChildCostPos">!(loc.UITextSelChildCostPos)</UIText> 1020 <UIText Id="SelCostPending">!(loc.UITextSelCostPending)</UIText> 1021 <UIText Id="SelLocalAbsent">!(loc.UITextSelLocalAbsent)</UIText> 1022 <UIText Id="SelLocalAdvertise">!(loc.UITextSelLocalAdvertise)</UIText> 1023 <UIText Id="SelLocalCD">!(loc.UITextSelLocalCD)</UIText> 1024 <UIText Id="SelLocalLocal">!(loc.UITextSelLocalLocal)</UIText> 1025 <UIText Id="SelLocalNetwork">!(loc.UITextSelLocalNetwork)</UIText> 1026 <UIText Id="SelNetworkAbsent">!(loc.UITextSelNetworkAbsent)</UIText> 1027 <UIText Id="SelNetworkAdvertise">!(loc.UITextSelNetworkAdvertise)</UIText> 1028 <UIText Id="SelNetworkLocal">!(loc.UITextSelNetworkLocal)</UIText> 1029 <UIText Id="SelNetworkNetwork">!(loc.UITextSelNetworkNetwork)</UIText> 1030 <UIText Id="SelParentCostNegNeg">!(loc.UITextSelParentCostNegNeg)</UIText> 1031 <UIText Id="SelParentCostNegPos">!(loc.UITextSelParentCostNegPos)</UIText> 1032 <UIText Id="SelParentCostPosNeg">!(loc.UITextSelParentCostPosNeg)</UIText> 1033 <UIText Id="SelParentCostPosPos">!(loc.UITextSelParentCostPosPos)</UIText> 1034 <UIText Id="TimeRemaining">!(loc.UITextTimeRemaining)</UIText> 1035 <UIText Id="VolumeCostAvailable">!(loc.UITextVolumeCostAvailable)</UIText> 1036 <UIText Id="VolumeCostDifference">!(loc.UITextVolumeCostDifference)</UIText> 1037 <UIText Id="VolumeCostRequired">!(loc.UITextVolumeCostRequired)</UIText> 1038 <UIText Id="VolumeCostSize">!(loc.UITextVolumeCostSize)</UIText> 1039 <UIText Id="VolumeCostVolume">!(loc.UITextVolumeCostVolume)</UIText> 1052 1040 1053 1041 <!-- Own error messages --> 1054 <Error Id="25001"> $(loc.Error25001)</Error>1042 <Error Id="25001">!(loc.Error25001)</Error> 1055 1043 1056 1044 <!-- The text used in front of the build number --> … … 1063 1051 <Property Id="IAgree">No</Property> 1064 1052 1065 <!-- Aliases for the icon files --> 1053 <!-- Icon files used for the UI --> 1054 <Binary Id="infoico" SourceFile="$(env.VBOX_PATH_WIN_INST_SRC)\Binary\Info.ico" /> 1055 <Binary Id="exclico" SourceFile="$(env.VBOX_PATH_WIN_INST_SRC)\Binary\Exclamation.ico" /> 1056 <Binary Id="folderupico" SourceFile="$(env.VBOX_PATH_WIN_INST_SRC)\Binary\Up.ico" /> 1057 <Binary Id="foldernewico" SourceFile="$(env.VBOX_PATH_WIN_INST_SRC)\Binary\New.ico" /> 1058 <Binary Id="removico" SourceFile="$(env.VBOX_PATH_WIN_INST_SRC)\Binary\Remove.ico" /> 1059 <Binary Id="repairic" SourceFile="$(env.VBOX_PATH_WIN_INST_SRC)\Binary\Repair.ico" /> 1060 1061 <!-- Graphic files used for the UI --> 1062 <!-- See: http://wix.sourceforge.net/manual-wix3/WixUI_customizations.htm --> 1063 <Binary Id="bannerjpg" SourceFile="$(env.VBOX_PATH_WIN_INST_SRC)\Binary\Banner.jpg" /> 1064 <Binary Id="dlgjpg" SourceFile="$(env.VBOX_BRAND_WIN_INST_DLGJPG)" /> 1065 1066 <!-- Aliases for the graphic files --> 1067 <Property Id="InfoIcon">infoico</Property> 1068 <Property Id="ExclamationIcon">exclico</Property> 1066 1069 <Property Id="RemoveIcon">removico</Property> 1067 1070 <Property Id="RepairIcon">repairic</Property> 1068 1069 <!-- Icon files used for the UI -->1070 <Binary Id="removico" src="$(env.VBOX_PATH_WIN_INST_SRC)\Binary\Remove.ico" />1071 <Binary Id="repairic" src="$(env.VBOX_PATH_WIN_INST_SRC)\Binary\Repair.ico" />1072 <Binary Id="folderupico" src="$(env.VBOX_PATH_WIN_INST_SRC)\Binary\Up.ico" />1073 <Binary Id="foldernewico" src="$(env.VBOX_PATH_WIN_INST_SRC)\Binary\New.ico" />1074 1075 <!-- Graphic files used for the UI -->1076 <!-- See: http://wix.sourceforge.net/manual-wix3/WixUI_customizations.htm -->1077 <Binary Id="bannerjpg" src="$(env.VBOX_PATH_WIN_INST_SRC)\Binary\Banner.jpg" />1078 <Binary Id="dlgjpg" src="$(env.VBOX_BRAND_WIN_INST_DLGJPG)" />1079 1080 <!-- Aliases for the graphic files -->1081 1071 <Property Id="DialogBitmap">dlgjpg</Property> 1082 1072 <Property Id="BannerBitmap">bannerjpg</Property> … … 1084 1074 <Property Id="FolderNew">foldernewico</Property> 1085 1075 1086 <Binary Id="wixca" src="wixca.dll"/>1087 1088 1076 <!-- This defines the order in which the GUI panels will be shown to the user --> 1089 1077 <InstallUISequence> 1090 1078 1091 <Custom Action=" OriginalTargetDir" After="FileCost"><![CDATA[(NOT INSTALLDIR) AND (NOT EXISTINGINSTALLDIR)]]></Custom>1092 <Custom Action=" DefaultTargetDir" After="FileCost"><![CDATA[NOT Installed AND (NOT INSTALLDIR) AND EXISTINGINSTALLDIR]]></Custom>1079 <Custom Action="ca_OriginalTargetDir" After="FileCost"><![CDATA[(NOT INSTALLDIR) AND (NOT EXISTINGINSTALLDIR)]]></Custom> 1080 <Custom Action="ca_DefaultTargetDir" After="FileCost"><![CDATA[NOT Installed AND (NOT INSTALLDIR) AND EXISTINGINSTALLDIR]]></Custom> 1093 1081 1094 1082 <FindRelatedProducts Suppress="no">1</FindRelatedProducts> 1095 1083 1096 <Show Dialog=" FatalErrorDlg" OnExit="error" />1097 <Show Dialog=" UserExitDlg" OnExit="cancel" />1098 <Show Dialog=" PrepareDlg" After="LaunchConditions" />1099 <Show Dialog=" WelcomeDlg" After="MigrateFeatureStates">NOT Installed</Show>1100 <Show Dialog=" ResumeDlg" After="WelcomeDlg">Installed AND (RESUME OR Preselected)</Show>1101 <Show Dialog=" MaintenanceWelcomeDlg" After="ResumeDlg">Installed AND (NOT RESUME) AND (NOT Preselected)</Show>1102 <Show Dialog=" ExitDlg" OnExit="success">1</Show>1103 <Show Dialog=" ProgressDlg" After="MaintenanceWelcomeDlg" />1084 <Show Dialog="VBoxFatalErrorDlg" OnExit="error" /> 1085 <Show Dialog="VBoxUserExitDlg" OnExit="cancel" /> 1086 <Show Dialog="VBoxPrepareDlg" After="LaunchConditions" /> 1087 <Show Dialog="VBoxWelcomeDlg" After="MigrateFeatureStates">NOT Installed</Show> 1088 <Show Dialog="VBoxResumeDlg" After="VBoxWelcomeDlg">Installed AND (RESUME OR Preselected)</Show> 1089 <Show Dialog="VBoxMaintenanceWelcomeDlg" After="VBoxResumeDlg">Installed AND (NOT RESUME) AND (NOT Preselected)</Show> 1090 <Show Dialog="VBoxExitDlg" OnExit="success">1</Show> 1091 <Show Dialog="VBoxProgressDlg" After="VBoxMaintenanceWelcomeDlg" /> 1104 1092 </InstallUISequence> 1093 1094 <!-- The AdminUISequence table lists actions that the installer calls in sequence when the top-level ADMIN 1095 action is executed and the internal user interface level is set to full UI or reduced UI. The installer 1096 skips the actions in this table if the user interface level is set to basic UI or no UI. --> 1097 <AdminUISequence> 1098 <Show Dialog="VBoxFatalErrorDlg" OnExit="error" /> 1099 <Show Dialog="VBoxUserExitDlg" OnExit="cancel" /> 1100 <Show Dialog="VBoxExitDlg" OnExit="success" /> 1101 </AdminUISequence> 1105 1102 </UI> 1106 1103 -
trunk/src/VBox/Installer/win/VBoxKey.wxi
r37016 r37289 1 1 <Include> 2 <Registry Root="HKLM" Key="$(var.Property_RegKey)" Name="Version" Value="%VER%" Type="string" />3 <Registry Root="HKLM" Key="$(var.Property_RegKey)" Name="VersionExt" Value="%VER_EXT%" Type="string" />4 <Registry Root="HKLM" Key="$(var.Property_RegKey)" Name="InstallDir" Value="[INSTALLDIR]" Type="string" />2 <RegistryValue Root="HKLM" Key="$(var.Property_RegKey)" Name="Version" Value="%VER%" Type="string" /> 3 <RegistryValue Root="HKLM" Key="$(var.Property_RegKey)" Name="VersionExt" Value="%VER_EXT%" Type="string" /> 4 <RegistryValue Root="HKLM" Key="$(var.Property_RegKey)" Name="InstallDir" Value="[INSTALLDIR]" Type="string" /> 5 5 </Include> -
trunk/src/VBox/Installer/win/VirtualBox.wxs
r37016 r37289 14 14 --> 15 15 16 <?define Property_RegKey ="Software\$(env.VBOX_VENDOR_SHORT)\VirtualBox" ?> 16 <?define Property_RegKey = "Software\$(env.VBOX_VENDOR_SHORT)\VirtualBox" ?> 17 <?define Property_RegKeyInstall = "Software\$(env.VBOX_VENDOR_SHORT)\VirtualBox\Install" ?> 17 18 <?define Property_Version = "$(env.VBOX_VERSION_STRING_RAW)" ?> 18 19 <?define Property_VersionExt = "$(env.VBOX_VERSION_STRING)" ?> … … 32 33 <?else ?> 33 34 <?define Property_ProgramFiles = "ProgramFilesFolder" ?> 34 <?define Property_Platform = " Intel" ?>35 <?define Property_Platform = "x86" ?> 35 36 <?define Property_Win64 = "no" ?> 36 37 … … 50 51 <?endif ?> 51 52 52 <Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi"> 53 <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 54 xmlns:difxapp="http://schemas.microsoft.com/wix/DifxAppExtension"> 53 55 54 56 <!-- Note: GUIDs in WiX *must* be uppercase! --> … … 65 67 Old upgrade code of innotek: UpgradeCode="F5FFAEBF-97AE-4038-8F91-4DE719456127" --> 66 68 67 <Product Id=" ????????-????-????-????-????????????"69 <Product Id="*" 68 70 UpgradeCode="C4BAD770-BFE8-4D2C-A592-693028A7215B" 69 71 Name="$(env.VBOX_PRODUCT) $(env.VBOX_VERSION_STRING)" 70 Language=" $(loc.LANG)"72 Language="!(loc.LANG)" 71 73 Codepage="1252" 72 74 Version="$(var.Property_Version)" … … 74 76 75 77 <!-- Package GUIDs must be different for each package. The "???" directs WiX to create one. --> 76 <Package Id=" ????????-????-????-????-????????????" Keywords="Installer"78 <Package Id="*" Keywords="Installer" 77 79 Description="$(env.VBOX_PRODUCT) $(var.Property_VersionExt) installation package" 78 80 Comments="$(env.VBOX_PRODUCT) installation package" … … 81 83 Compressed="yes" 82 84 InstallPrivileges="elevated" 83 Platform s="$(var.Property_Platform)"/>85 Platform="$(var.Property_Platform)"/> 84 86 85 87 <!-- *************************** Upgrade packages only ******************************* --> … … 118 120 <!-- Make sure installation will not start on anything other but the NT family --> 119 121 <?if $(env.BUILD_TARGET_ARCH) = "amd64" ?> 120 <Condition Message=" $(loc.Only64Bit)">122 <Condition Message="!(loc.Only64Bit)"> 121 123 VersionNT64 122 124 </Condition> 123 125 <?else ?> 124 <Condition Message=" $(loc.Only32Bit)">126 <Condition Message="!(loc.Only32Bit)"> 125 127 NOT VersionNT64 126 128 </Condition> 127 129 128 <Condition Message=" $(loc.WrongOS)">130 <Condition Message="!(loc.WrongOS)"> 129 131 NOT VersionNT=500 AND NOT Version9X AND NOT VersionNT64 130 132 </Condition> … … 132 134 <?endif ?> 133 135 134 <Condition Message=" $(loc.NeedAdmin)">136 <Condition Message="!(loc.NeedAdmin)"> 135 137 Privileged 136 138 </Condition> 137 139 138 <!-- Force overwriting all files and re-create shortcuts to guarantee a working environment .-->140 <!-- Force overwriting all files and re-create shortcuts to guarantee a working environment --> 139 141 <Property Id='REINSTALLMODE' Value='amus'/> 140 142 … … 143 145 <!-- Figure out where a previous installation was, if any --> 144 146 <?if $(env.BUILD_TARGET_ARCH) = "amd64" ?> 145 <CustomAction Id=" OriginalTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[ProgramFiles64Folder]\$(env.VBOX_VENDOR_SHORT)\VirtualBox" />147 <CustomAction Id="ca_OriginalTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[ProgramFiles64Folder]\$(env.VBOX_VENDOR_SHORT)\VirtualBox" /> 146 148 147 149 <Property Id="EXISTINGINSTALLDIR" Secure="yes"> 148 150 <RegistrySearch Id="RegistryGetInstallPath" Root="HKLM" Key="$(var.Property_RegKey)" Name="InstallDir" Type="raw" Win64="$(var.Property_Win64)"/> 149 151 </Property> 150 <CustomAction Id=" DefaultTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[EXISTINGINSTALLDIR]" />152 <CustomAction Id="ca_DefaultTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[EXISTINGINSTALLDIR]" /> 151 153 <?else ?> 152 <CustomAction Id=" OriginalTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[ProgramFilesFolder]\$(env.VBOX_VENDOR_SHORT)\VirtualBox" />154 <CustomAction Id="ca_OriginalTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[ProgramFilesFolder]\$(env.VBOX_VENDOR_SHORT)\VirtualBox" /> 153 155 154 156 <Property Id="EXISTINGINSTALLDIR" Secure="yes"> 155 157 <RegistrySearch Id="RegistryGetInstallPath" Root="HKLM" Key="$(var.Property_RegKey)" Name="InstallDir" Type="raw" Win64="$(var.Property_Win64)"/> 156 158 </Property> 157 <CustomAction Id=" DefaultTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[EXISTINGINSTALLDIR]" />159 <CustomAction Id="ca_DefaultTargetDir" Execute="firstSequence" Property="INSTALLDIR" Value="[EXISTINGINSTALLDIR]" /> 158 160 <?endif ?> 159 161 160 162 <Binary Id="VBoxInstallHelper" SourceFile="$(env.PATH_OUT)\bin\VBoxInstallHelper.dll" /> 161 <CustomAction Id=" CheckSerial" BinaryKey="VBoxInstallHelper" DllEntry="CheckSerial" Impersonate="no"/>162 <CustomAction Id=" InstallPythonAPI" BinaryKey="VBoxInstallHelper" DllEntry="InstallPythonAPI" Impersonate="no"/>163 <CustomAction Id=" InstallBranding" BinaryKey="VBoxInstallHelper" DllEntry="InstallBranding" Impersonate="no"/>164 <CustomAction Id=" UninstallBranding" BinaryKey="VBoxInstallHelper" DllEntry="UninstallBranding" Impersonate="no"/>165 166 <CustomAction Id=" UninstallTAPInstances" BinaryKey="VBoxInstallHelper"167 DllEntry="UninstallTAPInstances" Execute="deferred" Return="check" Impersonate="no"/>163 <CustomAction Id="ca_CheckSerial" BinaryKey="VBoxInstallHelper" DllEntry="CheckSerial" Impersonate="no"/> 164 <CustomAction Id="ca_InstallPythonAPI" BinaryKey="VBoxInstallHelper" DllEntry="InstallPythonAPI" Execute="deferred" Impersonate="no"/> 165 <CustomAction Id="ca_InstallBranding" BinaryKey="VBoxInstallHelper" DllEntry="InstallBranding" Execute="deferred" Impersonate="no"/> 166 <CustomAction Id="ca_UninstallBranding" BinaryKey="VBoxInstallHelper" DllEntry="UninstallBranding" Execute="deferred" Impersonate="no"/> 167 168 <CustomAction Id="ca_UninstallTAPInstances" BinaryKey="VBoxInstallHelper" 169 DllEntry="UninstallTAPInstances" Execute="deferred" Return="check" Impersonate="no"/> 168 170 169 171 <?if $(env.VBOX_WITH_NETFLT) = "yes" ?> 170 <CustomAction Id=" CreateHostOnlyInterfaceArgs" Property="CreateHostOnlyInterface" Value="[INSTALLDIR]" Execute="immediate"/>171 <CustomAction Id=" CreateHostOnlyInterface" BinaryKey="VBoxInstallHelper" DllEntry="CreateHostOnlyInterface"Execute="deferred" Return="check" Impersonate="no"/>172 173 <CustomAction Id=" RemoveHostOnlyInterfaces" BinaryKey="VBoxInstallHelper" DllEntry="RemoveHostOnlyInterfaces"Execute="deferred" Return="check" Impersonate="no"/>174 175 <CustomAction Id=" InstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="InstallNetFlt" Execute="deferred" Return="check" Impersonate="no"/>176 <CustomAction Id=" InstallNetFltArgs" Property="InstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>177 178 <CustomAction Id=" RollbackInstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="UninstallNetFlt" Execute="rollback" Impersonate="no"/>179 <CustomAction Id=" RollbackInstallNetFltArgs" Property="RollbackInstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>180 181 <CustomAction Id=" UninstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="UninstallNetFlt" Execute="deferred" Return="check" Impersonate="no"/>182 <CustomAction Id=" UninstallNetFltArgs" Property="UninstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>183 184 <CustomAction Id=" RollbackUninstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="InstallNetFlt" Execute="rollback" Impersonate="no"/>185 <CustomAction Id=" RollbackUninstallNetFltArgs" Property="RollbackUninstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/>186 <?endif ?> 187 188 <CustomAction Id=" StartVBox" FileKey="vbox" ExeCommand="" Return="asyncNoWait" Impersonate="yes" />189 190 <!-- Detect old Sun installation .-->191 <!-- Force a manual uninstall of an already installed Sun VirtualBox version first .-->172 <CustomAction Id="ca_CreateHostOnlyInterfaceArgs" Property="ca_CreateHostOnlyInterface" Value="[INSTALLDIR]" Execute="immediate"/> 173 <CustomAction Id="ca_CreateHostOnlyInterface" BinaryKey="VBoxInstallHelper" DllEntry="CreateHostOnlyInterface" Execute="deferred" Return="check" Impersonate="no"/> 174 175 <CustomAction Id="ca_RemoveHostOnlyInterfaces" BinaryKey="VBoxInstallHelper" DllEntry="RemoveHostOnlyInterfaces" Execute="deferred" Return="check" Impersonate="no"/> 176 177 <CustomAction Id="ca_InstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="InstallNetFlt" Execute="deferred" Return="check" Impersonate="no"/> 178 <CustomAction Id="ca_InstallNetFltArgs" Property="ca_InstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/> 179 180 <CustomAction Id="ca_RollbackInstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="UninstallNetFlt" Execute="rollback" Impersonate="no"/> 181 <CustomAction Id="ca_RollbackInstallNetFltArgs" Property="ca_RollbackInstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/> 182 183 <CustomAction Id="ca_UninstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="UninstallNetFlt" Execute="deferred" Return="check" Impersonate="no"/> 184 <CustomAction Id="ca_UninstallNetFltArgs" Property="ca_UninstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/> 185 186 <CustomAction Id="ca_RollbackUninstallNetFlt" BinaryKey="VBoxInstallHelper" DllEntry="InstallNetFlt" Execute="rollback" Impersonate="no"/> 187 <CustomAction Id="ca_RollbackUninstallNetFltArgs" Property="ca_RollbackUninstallNetFlt" Value="[INSTALLDIR]" Execute="immediate"/> 188 <?endif ?> 189 190 <CustomAction Id="ca_StartVBox" FileKey="file_VirtualBox.exe" ExeCommand="" Return="asyncNoWait" Impersonate="yes" /> 191 192 <!-- Detect old Sun installation --> 193 <!-- Force a manual uninstall of an already installed Sun VirtualBox version first --> 192 194 <!--<Property Id="VBOXSUN"> 193 195 <RegistrySearch Id="RegSearchSunVersion" Root="HKLM" Key="SOFTWARE\Sun\VirtualBox" Name="Version" Type="raw" Win64="$(var.Property_Win64)"/> 194 196 </Property> 195 <Condition Message=" $(loc.SunFound)">197 <Condition Message="!(loc.SunFound)"> 196 198 NOT VBOXSUN 197 199 </Condition>--> 198 200 199 <!-- Detect old innotek installation .-->200 <!-- Force a manual uninstall of an already installed innotek VirtualBox version first .-->201 <!-- Detect old innotek installation --> 202 <!-- Force a manual uninstall of an already installed innotek VirtualBox version first --> 201 203 <Property Id="VBOXINNOTEK"> 202 204 <RegistrySearch Id="RegSearchInnotekVersion" Root="HKLM" Key="SOFTWARE\Innotek\VirtualBox" Name="Version" Type="raw" Win64="$(var.Property_Win64)"/> 203 205 </Property> 204 <Condition Message=" $(loc.InnotekFound)">206 <Condition Message="!(loc.InnotekFound)"> 205 207 NOT VBOXINNOTEK 206 208 </Condition> … … 214 216 <Directory Id="TARGETDIR" Name="SourceDir"> 215 217 <Directory Id="$(var.Property_ProgramFiles)" Name="PFiles"> 216 <Directory Id="INSTALLDIR" Name=" VirtualB" LongName="$(env.VBOX_PRODUCT)">218 <Directory Id="INSTALLDIR" Name="$(env.VBOX_PRODUCT)"> 217 219 218 220 <?if $(env.VBOX_WITH_DOCS_PACKING) = "yes" ?> 219 <Directory Id="d ocuments" Name="doc">221 <Directory Id="dir_Documents" Name="doc"> 220 222 <!-- The documentation is a separate component. This allows to split the install process 221 223 into pieces if ever necessary. Maintenance is easier, too. The following component 222 224 will be installed in the "doc" folder. --> 223 <Component Id=" docs" Guid="40BD12C5-89A8-4B81-8A5E-5EEE2C2763C4">225 <Component Id="cp_Docs" Guid="40BD12C5-89A8-4B81-8A5E-5EEE2C2763C4"> 224 226 <?include $(env.PATH_TARGET)\Files_Doc.wxi ?> 225 227 </Component> 226 227 228 </Directory> 228 229 <?endif ?> 229 230 <!-- Device driver directory --> 230 <Directory Id="drivers" Name="drivers"> 231 232 <Directory Id="vboxdrv" Name="vboxdrv"> 233 <Component Id="VBoxDrv" Guid="D3E2F2BB-569F-46A2-836C-BDF30FF1EDF8" 234 DriverSequence="2" DriverLegacy="$(var.Property_DriverLegacy)" DriverForceInstall="yes" 235 DriverAddRemovePrograms="no" DriverPlugAndPlayPrompt="no" Win64="$(var.Property_Win64)"> 236 <File Id="vboxdrvsys" Name="VBoxDrv.sys" DiskId="1" Vital="yes" KeyPath="yes" 231 <Directory Id="dir_Drivers" Name="drivers"> 232 <Directory Id="dir_VBoxDrv" Name="vboxdrv"> 233 <Component Id="cp_VBoxDrv" Guid="D3E2F2BB-569F-46A2-836C-BDF30FF1EDF8" Win64="$(var.Property_Win64)"> 234 <difxapp:Driver AddRemovePrograms="no" ForceInstall="yes" 235 Legacy="$(var.Property_DriverLegacy)" Sequence="2" PlugAndPlayPrompt="no"/> 236 <File Id="file_VBoxDrv.sys" Name="VBoxDrv.sys" KeyPath="yes" 237 237 Source="$(env.PATH_OUT)\bin\VBoxDrv.sys"/> 238 <File Id=" vboxdrvinf" Name="VBoxDrv.inf" DiskId="1" Vital="yes"238 <File Id="file_VBoxDrv.inf" Name="VBoxDrv.inf" 239 239 Source="$(env.PATH_OUT)\bin\VBoxDrv.inf" /> 240 240 <?if $(env.VBOX_SIGNING_MODE) != none ?> 241 <File Id=" vboxdrvcat" Name="VBoxDrv.cat" DiskId="1" Vital="yes"241 <File Id="file_VBoxDrv.cat" Name="VBoxDrv.cat" 242 242 Source="$(env.PATH_OUT)\bin\VBoxDrv.cat" /> 243 243 <?endif ?> 244 </Component> <!-- Directory "drivers\vboxdrv" -->244 </Component> 245 245 </Directory> 246 246 247 <Directory Id=" usbdrv" Name="USB">248 <Directory Id=" usbfilter" Name="filter">249 <Component Id=" USBFilterDriver" Guid="B7D782D2-96DF-4775-A0E1-A76CF7B04B65"250 DriverSequence="0" DriverLegacy="$(var.Property_DriverLegacy)" DriverForceInstall="yes"251 DriverAddRemovePrograms="no" DriverPlugAndPlayPrompt="no" Win64="$(var.Property_Win64)">252 <File Id=" vboxusbmon" Name="VBoxUSBM.sys" LongName="VBoxUSBMon.sys" DiskId="1" Vital="yes"247 <Directory Id="dir_USB" Name="USB"> 248 <Directory Id="dir_USBFilter" Name="filter"> 249 <Component Id="cp_USBFilterDriver" Guid="B7D782D2-96DF-4775-A0E1-A76CF7B04B65" Win64="$(var.Property_Win64)"> 250 <difxapp:Driver AddRemovePrograms="no" ForceInstall="yes" 251 Legacy="$(var.Property_DriverLegacy)" Sequence="0" PlugAndPlayPrompt="no"/> 252 <File Id="file_VBoxUSBMon.sys" Name="VBoxUSBMon.sys" 253 253 Source="$(env.PATH_OUT)\bin\VBoxUSBMon.sys" /> 254 <File Id=" vboxusbmoninf" Name="VBoxUSBM.inf" LongName="VBoxUSBMon.inf" DiskId="1" Vital="yes"254 <File Id="file_VBoxUSBMon.inf" Name="VBoxUSBMon.inf" 255 255 Source="$(env.PATH_OUT)\bin\VBoxUSBMon.inf" /> 256 256 <?if $(env.VBOX_SIGNING_MODE) != none ?> 257 <File Id=" vboxusbmoncat" Name="VBoxUSBM.cat" LongName="VBoxUSBMon.cat" DiskId="1" Vital="yes"257 <File Id="file_VBoxUSBMon.cat" Name="VBoxUSBMon.cat" 258 258 Source="$(env.PATH_OUT)\bin\VBoxUSBMon.cat" /> 259 259 <?endif ?> 260 </Component> <!-- USBFilterDriver -->261 </Directory> <!-- Directory "drivers\usb\filter" -->262 263 <Directory Id=" usbdevice" Name="device">264 <Component Id=" USBDeviceDriver" Guid="010FE46A-E358-43E2-8BDC-38BC8BEC82E0"265 DriverSequence="0" DriverLegacy="$(var.Property_DriverLegacy)" DriverForceInstall="yes"266 DriverAddRemovePrograms="no" DriverPlugAndPlayPrompt="no" Win64="$(var.Property_Win64)">267 <File Id=" vboxusbdrv" Name="VBoxUSB.sys" DiskId="1" Vital="yes"260 </Component> 261 </Directory> 262 263 <Directory Id="dir_USBDevice" Name="device"> 264 <Component Id="cp_USBDeviceDriver" Guid="010FE46A-E358-43E2-8BDC-38BC8BEC82E0" Win64="$(var.Property_Win64)"> 265 <difxapp:Driver AddRemovePrograms="no" ForceInstall="yes" 266 Legacy="$(var.Property_DriverLegacy)" Sequence="0" PlugAndPlayPrompt="no"/> 267 <File Id="file_VBoxUSB.sys" Name="VBoxUSB.sys" 268 268 Source="$(env.PATH_OUT)\bin\VBoxUSB.sys" /> 269 <File Id=" vboxusbinf" Name="VBoxUSB.inf" DiskId="1" Vital="yes"269 <File Id="file_VBoxUSB.inf" Name="VBoxUSB.inf" 270 270 Source="$(env.PATH_OUT)\bin\VBoxUSB.inf" /> 271 271 <?if $(env.VBOX_SIGNING_MODE) != none ?> 272 <File Id=" vboxusbcat" Name="VBoxUSB.cat" DiskId="1" Vital="yes"272 <File Id="file_VBoxUSB.cat" Name="VBoxUSB.cat" 273 273 Source="$(env.PATH_OUT)\bin\VBoxUSB.cat" /> 274 274 <?endif ?> 275 </Component> <!-- USBDeviceDriver -->276 </Directory> <!-- Directory "drivers\usb\device" -->277 </Directory> <!-- Directory "drivers\usb" -->275 </Component> 276 </Directory> 277 </Directory> 278 278 279 279 <?if $(env.VBOX_WITH_NETFLT) = "yes" ?> 280 <Directory Id="network" Name="network"> 281 <Directory Id="NetFltDir" Name="netflt"> 282 <Component Id="NetFltDriver" Guid="F0A02F6B-A349-42f8-A2EB-569DCAAAF846" Win64="$(var.Property_Win64)"> 283 <File Id="vboxnetfltsys" Name="VBoxNFlt.sys" LongName="VBoxNetFlt.sys" DiskId="1" Vital="yes" KeyPath="yes" 284 Source="$(env.PATH_OUT)\bin\VBoxNetFlt.sys" 285 Checksum="yes"/> 286 <File Id="vboxnetfltnobjdll" Name="VBoxNob.dll" LongName="VBoxNetFltNobj.dll" DiskId="1" Vital="yes" 287 Source="$(env.PATH_OUT)\bin\VBoxNetFltNobj.dll" 288 Checksum="yes"/> 289 <File Id="vboxnetfltminf" Name="VBoxNFlM.inf" LongName="VBoxNetFltM.inf" DiskId="1" Vital="yes" 290 Source="$(env.PATH_OUT)\bin\VBoxNetFltM.inf" /> 291 <File Id="vboxnetfltinf" Name="VBoxNFlt.inf" LongName="VBoxNetFlt.inf" DiskId="1" Vital="yes" 292 Source="$(env.PATH_OUT)\bin\VBoxNetFlt.inf" /> 280 <Directory Id="dir_Network" Name="network"> 281 <Directory Id="dir_NetFlt" Name="netflt"> 282 <Component Id="cp_NetFltDriver" Guid="F0A02F6B-A349-42f8-A2EB-569DCAAAF846" Win64="$(var.Property_Win64)"> 283 <File Id="file_VBoxNetFlt.sys" Name="VBoxNetFlt.sys" KeyPath="yes" 284 Source="$(env.PATH_OUT)\bin\VBoxNetFlt.sys" Checksum="yes"/> 285 <File Id="file_VBoxNetFltNobj.sys" Name="VBoxNetFltNobj.dll" 286 Source="$(env.PATH_OUT)\bin\VBoxNetFltNobj.dll" Checksum="yes"/> 287 <File Id="file_VBoxNetFltM.inf" Name="VBoxNetFltM.inf" 288 Source="$(env.PATH_OUT)\bin\VBoxNetFltM.inf" /> 289 <File Id="file_VBoxNetFlt.inf" Name="VBoxNetFlt.inf" 290 Source="$(env.PATH_OUT)\bin\VBoxNetFlt.inf" /> 293 291 <?if $(env.VBOX_SIGNING_MODE) != none ?> 294 <File Id="vboxnetfltcat" Name="VBoxNFlt.cat" LongName="VBoxNetFlt.cat" DiskId="1" Vital="yes"295 292 <File Id="file_VBoxNetFlt.cat" Name="VBoxNetFlt.cat" 293 Source="$(env.PATH_OUT)\bin\VBoxNetFlt.cat" /> 296 294 <?endif ?> 297 295 </Component> 298 </Directory> <!-- Directory "drivers\network\netflt" -->299 <Directory Id="NetAdpDir" Name="netadp"> 300 <Component Id="NetAdpDriver" Guid="7adf3e12-af3c-4d36-8bec-36d5064cf84f" Win64="$(var.Property_Win64)">301 <File Id="vboxnetadpsys" Name="VBoxNAdp.sys" LongName="VBoxNetAdp.sys" DiskId="1" Vital="yes" KeyPath="yes"302 Source="$(env.PATH_OUT)\bin\VBoxNetAdp.sys"303 304 <File Id="vboxnetadpinf" Name="VBoxNAdp.inf" LongName="VBoxNetAdp.inf" DiskId="1" Vital="yes"305 296 </Directory> 297 298 <Directory Id="dir_NetAdp" Name="netadp"> 299 <Component Id="cp_NetAdpDriver" Guid="7adf3e12-af3c-4d36-8bec-36d5064cf84f" Win64="$(var.Property_Win64)"> 300 <File Id="file_VBoxNetAdp.sys" Name="VBoxNetAdp.sys" KeyPath="yes" 301 Source="$(env.PATH_OUT)\bin\VBoxNetAdp.sys" Checksum="yes"/> 302 <File Id="file_VBoxNetAdp.inf" Name="VBoxNetAdp.inf" 303 Source="$(env.PATH_OUT)\bin\VBoxNetAdp.inf" /> 306 304 <?if $(env.VBOX_SIGNING_MODE) != none ?> 307 <File Id="vboxnetadpcat" Name="VBoxNAdp.cat" LongName="VBoxNetAdp.cat" DiskId="1" Vital="yes"308 309 <?endif ?> 310 </Component> <!-- NetAdpDriver -->311 </Directory> <!-- Directory "drivers\network\netadp" -->312 </Directory> <!-- Directory "drivers\network" -->305 <File Id="file_VBoxNetAdp.cat" Name="VBoxNetAdp.cat" 306 Source="$(env.PATH_OUT)\bin\VBoxNetAdp.cat" /> 307 <?endif ?> 308 </Component> 309 </Directory> 310 </Directory> 313 311 <?endif ?> 314 312 </Directory> <!-- Directory "drivers" --> … … 316 314 317 315 <!-- National Language Support directory --> 318 <Directory Id=" nls" Name="nls">319 <Component Id=" nls" Guid="D63517D7-1CF3-4D06-B3EE-C561E323069B">316 <Directory Id="dir_NLS" Name="nls"> 317 <Component Id="cp_NLS" Guid="D63517D7-1CF3-4D06-B3EE-C561E323069B" Win64="$(var.Property_Win64)"> 320 318 <!-- Include the autogenerated NLS file list --> 321 319 <?include $(env.PATH_TARGET)\VBoxGuiNLS.wxi ?> … … 325 323 <!-- COM components have a separate entry mainly because of the KeyPath attribute (that hints the 326 324 TypeLib element where to take the TLB resource from) may appear only once per Component. --> 327 <Component Id="MainCOM" Guid="CD4A3C6C-C2D5-428D-90A1-B6DA3D0777D6" Win64="$(var.Property_Win64)"> 328 329 <File Id="VBoxSVC" Name="VBoxSVC.exe" DiskId="1" Vital="yes" 325 <Component Id="cp_MainCOM" Guid="CD4A3C6C-C2D5-428D-90A1-B6DA3D0777D6" Win64="$(var.Property_Win64)"> 326 327 <!-- File ID *must not* be changed because of our typelib template generation file! --> 328 <File Id="VBoxSVC" Name="VBoxSVC.exe" 330 329 Source="$(env.PATH_OUT)\bin\VBoxSVC.exe"> 331 330 </File> … … 334 333 and create appropriate Interface registry entries. Note that the same TLB is present 335 334 in VBoxSVC.exe - it's just a matter of choice which one to use --> 336 < File Id="VBoxC" Name="VBoxC.dll" DiskId="1" Vital="yes"337 Source="$(env.PATH_OUT)\bin\VBoxC.dll"338 KeyPath="yes">335 <!-- File ID *must not* be changed because of our typelib template generation file! --> 336 <File Id="VBoxC" Name="VBoxC.dll" 337 Source="$(env.PATH_OUT)\bin\VBoxC.dll" KeyPath="yes"> 339 338 </File> 340 339 … … 344 343 </Component> 345 344 346 <Component Id="DesktopShortcut" Guid="668F8A1A-F5CE-48B3-BB1A-3042EE27B279" Win64="$(var.Property_Win64)"> 347 <Condition>INSTALLDESKTOPSHORTCUT</Condition> 348 <CreateFolder/> 349 <Shortcut Id="VBoxDesktopShortcut" Directory="DesktopFolder" 350 Name="VBox" LongName="$(env.VBOX_PRODUCT)" WorkingDirectory="INSTALLDIR" 351 Advertise="no" Target="[#vbox]" /> 352 </Component> 353 354 <Component Id="QuicklaunchShortcut" Guid="CC19E026-938A-41CB-8E77-3F33296244B6" Win64="$(var.Property_Win64)"> 355 <Condition>INSTALLQUICKLAUNCHSHORTCUT</Condition> 356 <CreateFolder/> 357 <Shortcut Id="VBoxQuicklaunchShortcut" Directory="QuicklaunchFolder" 358 Name="VBox" LongName="$(env.VBOX_PRODUCT)" WorkingDirectory="INSTALLDIR" 359 Advertise="no" Target="[#vbox]" /> 360 </Component> 345 <!-- 346 347 <Component Id="Cp_StartMenuShortcut" Guid="1C137D24-E599-47BD-98D0-2F62F202A8EA" Win64="$(var.Property_Win64)"> 348 <RegistryValue Root="HKCU" Key="$(var.Property_RegKeyInstall)" Type="string" 349 Value="installed" KeyPath="yes" /> 350 <Shortcut Id="ShortcutStartMenuVBox" Directory="ProgramMenuDir" 351 Name="VirtualBox" WorkingDirectory="INSTALLDIR" Advertise="no" Target="VirtualBox.exe" /> 352 <RemoveFolder Id="ShortcutStartMenuVBoxRemove" On="uninstall" /> 353 </Component>--> 354 355 <!----> 361 356 362 357 <!-- All Binaries, DLLs (except COM) and drivers are in one component because they belong together. Additional 363 358 binaries e.g. test tools, utilities etc. should be in another component so they"re clearly separated. --> 364 <Component Id="MainBinaries" Guid="5C8FE57A-F744-4DE0-AA3F-A563F486AD98" Win64="$(var.Property_Win64)"> 359 <Component Id="cp_MainBinaries" Guid="5C8FE57A-F744-4DE0-AA3F-A563F486AD98" Win64="$(var.Property_Win64)"> 360 365 361 <!-- Set required environment variables. --> 366 <Environment Id="EnvVBoxInstallDir" Action="set" Name="VBOX_INSTALL_PATH" 367 System="yes" Part="last" Permanent="no" Value="[INSTALLDIR]" /> 362 <Environment Id="env_VBoxInstallDir" Action="set" Name="VBOX_INSTALL_PATH" 363 System="yes" Part="last" Permanent="no" Value="[INSTALLDIR]" /> 364 368 365 <!-- Register file extensions. Note: Extension Id's *must not* be changed! These specify the actual 369 366 file extension to handle. Also, here would be the place to add more fancy DDE stuff later. 370 367 Important: The IDs in "IconIndex" *must* be matching "Resources\resource.h". --> 371 <ProgId Id=" VirtualBox.Shell.vbox" Description="VirtualBox Machine Definition" Icon="[#vboxresdll]" IconIndex="-201">368 <ProgId Id="progId_VirtualBox.Shell.vbox" Description="VirtualBox Machine Definition" Icon="file_VBoxRes.dll" IconIndex="-201"> 372 369 <Extension Id="vbox" ContentType="application/x-virtualbox-vbox"> 373 <Verb Id="open" Sequence="1" Command="Open" Target="[#vbox]" Argument=""%1"" />370 <Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument=""%1"" /> 374 371 </Extension> 375 372 </ProgId> 376 <ProgId Id=" VirtualBox.Shell.vbox-extpack" Description="VirtualBox Extension Pack" Icon="[#vboxresdll]" IconIndex="-202">373 <ProgId Id="progId_VirtualBox.Shell.vbox-extpack" Description="VirtualBox Extension Pack" Icon="file_VBoxRes.dll" IconIndex="-202"> 377 374 <Extension Id="vbox-extpack" ContentType="application/x-virtualbox-vbox-extpack"> 378 <Verb Id="open" Sequence="1" Command="Open" Target="[#vbox]" Argument=""%1"" />375 <Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument=""%1"" /> 379 376 </Extension> 380 377 </ProgId> 381 <ProgId Id=" VirtualBox.Shell.ovf" Description="Open Virtualization Format" Icon="[#vboxresdll]" IconIndex="-301">378 <ProgId Id="progId_VirtualBox.Shell.ovf" Description="Open Virtualization Format" Icon="file_VBoxRes.dll" IconIndex="-301"> 382 379 <Extension Id="ovf" ContentType="application/x-virtualbox-ovf"> 383 <Verb Id="open" Sequence="1" Command="Open" Target="[#vbox]" Argument=""%1"" />380 <Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument=""%1"" /> 384 381 </Extension> 385 382 </ProgId> 386 <ProgId Id=" VirtualBox.Shell.ova" Description="Open Virtualization Format Archive" Icon="[#vboxresdll]" IconIndex="-302">383 <ProgId Id="progId_VirtualBox.Shell.ova" Description="Open Virtualization Format Archive" Icon="file_VBoxRes.dll" IconIndex="-302"> 387 384 <Extension Id="ova" ContentType="application/x-virtualbox-ova"> 388 <Verb Id="open" Sequence="1" Command="Open" Target="[#vbox]" Argument=""%1"" />385 <Verb Id="open" Command="Open" TargetFile="file_VirtualBox.exe" Argument=""%1"" /> 389 386 </Extension> 390 387 </ProgId> 391 <!-- The "Name" attribute must always be present. If the name is longer than 8.3 the additional "LongName" 392 attribute can be used. --> 393 <File Id="vbox" Name="vbox.exe" LongName="VirtualBox.exe" DiskId="1" Vital="yes" 394 Source="$(env.PATH_OUT)\bin\VirtualBox.exe"> 395 <!-- The target folder for the shortcut in the "Programs" menu is defined below. --> 396 <Shortcut Id="startmenuVBox" Directory="ProgramMenuDir" Name="VBox" 397 LongName="VirtualBox" WorkingDirectory="INSTALLDIR"/> 398 </File> 388 389 <!-- Files --> 399 390 <?if $(env.VBOX_WITH_DOCS_PACKING) = "yes" ?> 400 391 <!-- Include all user manual .CHM files (file is generated by makefile). --> … … 404 395 <?include $(env.PATH_TARGET)\Files_License.wxi ?> 405 396 406 <?if $(env.VBOX_WITH_DEBUGGER_GUI) = "yes" ?> 407 <File Id="vboxdbgdll" Name="VBoxDbg.dll" DiskId="1" Vital="yes" 408 Source="$(env.PATH_OUT)\bin\VBoxDbg.dll" /> 409 <?endif ?> 410 411 <File Id="vboxmanage" Name="VBoxMan.exe" LongName="VBoxManage.exe" DiskId="1" Vital="yes" 397 <!-- Frontends --> 398 <File Id="file_VBoxManage.exe" Name="VBoxManage.exe" 412 399 Source="$(env.PATH_OUT)\bin\VBoxManage.exe" /> 413 <File Id=" vboxheadless" Name="VBoxHead.exe" LongName="VBoxHeadless.exe" DiskId="1" Vital="yes"400 <File Id="file_VBoxHeadless.exe" Name="VBoxHeadless.exe" 414 401 Source="$(env.PATH_OUT)\bin\VBoxHeadless.exe"> 415 416 402 <!-- Create a simple shortcut for VBoxVRDP, which is not present anymore, pointing to VBoxHeadless.exe --> 417 <Shortcut Id="ShortcutVBoxVRDP" Directory="INSTALLDIR" Name="VBoxVRDP" Show="normal" WorkingDirectory="INSTALLDIR"/> 418 403 <!-- <Shortcut Id="ShortcutVBoxVRDP" Directory="INSTALLDIR" Name="VBoxVRDP" Show="normal" WorkingDirectory="INSTALLDIR"/> --> 419 404 </File> 420 421 <File Id="vboxnetdhcp" Name="VBoxDHCP.exe" LongName="VBoxNetDHCP.exe" DiskId="1" Vital="yes" 405 <File Id="file_VBoxBalloonCtrl.exe" Name="VBoxBalloonCtrl.exe" 406 Source="$(env.PATH_OUT)\bin\VBoxBalloonCtrl.exe"/> 407 408 <!-- Misc tools --> 409 <File Id="file_VBoxNetDHCP.exe" Name="VBoxNetDHCP.exe" 422 410 Source="$(env.PATH_OUT)\bin\VBoxNetDHCP.exe"/> 423 411 <?if $(env.VBOX_WITH_EXTPACK) = "yes" ?> 424 <File Id=" vboxepha" Name="VBoxEPHA.exe" LongName="VBoxExtPackHelperApp.exe" DiskId="1" Vital="yes"412 <File Id="file_VBoxExtPackHelperApp.exe" Name="VBoxExtPackHelperApp.exe" 425 413 Source="$(env.PATH_OUT)\bin\VBoxExtPackHelperApp.exe"/> 426 414 <?endif ?> 427 <File Id="vboxballoonctrl" Name="VBoxBCtl.exe" LongName="VBoxBalloonCtrl.exe" DiskId="1" Vital="yes"428 Source="$(env.PATH_OUT)\bin\VBoxBalloonCtrl.exe"/>429 430 415 <!-- VBox DLL files --> 431 <File Id=" vboxdddll" Name="VBoxDD.dll" DiskId="1" Vital="yes"416 <File Id="file_VBoxDD.dll" Name="VBoxDD.dll" 432 417 Source="$(env.PATH_OUT)\bin\VBoxDD.dll" /> 433 <File Id=" vboxdd2dll" Name="VBoxDD2.dll" DiskId="1" Vital="yes"418 <File Id="file_VBoxDD2.dll" Name="VBoxDD2.dll" 434 419 Source="$(env.PATH_OUT)\bin\VBoxDD2.dll" /> 435 <File Id=" vboxddudll" Name="VBoxDDU.dll" DiskId="1" Vital="yes"420 <File Id="file_VBoxDDU.dll" Name="VBoxDDU.dll" 436 421 Source="$(env.PATH_OUT)\bin\VBoxDDU.dll" /> 437 <File Id=" vboxrtdll" Name="VBoxRT.dll" DiskId="1" Vital="yes"422 <File Id="file_VBoxRT.dll" Name="VBoxRT.dll" 438 423 Source="$(env.PATH_OUT)\bin\VBoxRT.dll" /> 439 <File Id=" vboxremdll" Name="VBoxREM.dll" DiskId="1" Vital="yes"424 <File Id="file_VBoxREM.dll" Name="VBoxREM.dll" 440 425 Source="$(env.PATH_OUT)\bin\VBoxREM.dll" /> 441 426 <?if $(env.BUILD_TARGET_ARCH) = "amd64" ?> 442 <File Id=" vboxrem2rel" Name="VBoxREM2.rel" DiskId="1" Vital="yes"427 <File Id="file_VBoxREM2.rel" Name="VBoxREM2.rel" 443 428 Source="$(env.PATH_OUT)\bin\VBoxREM2.rel" /> 444 429 <?else ?> 445 <File Id=" vboxrem32dll" Name="VBoxREM3.dll" LongName="VBoxREM32.dll" DiskId="1" Vital="yes"430 <File Id="file_VBoxREM32.dll" Name="VBoxREM32.dll" 446 431 Source="$(env.PATH_OUT)\bin\VBoxREM32.dll" /> 447 <File Id=" vboxrem64dll" Name="VBoxREM6.dll" LongName="VBoxREM64.dll" DiskId="1" Vital="yes"432 <File Id="file_VBoxREM64.dll" Name="VBoxREM64.dll" 448 433 Source="$(env.PATH_OUT)\bin\VBoxREM64.dll" /> 449 434 <?endif ?> 450 <File Id=" vboxvmmdll" Name="VBoxVMM.dll" DiskId="1" Vital="yes"435 <File Id="file_VBoxVMM.dll" Name="VBoxVMM.dll" 451 436 Source="$(env.PATH_OUT)\bin\VBoxVMM.dll" /> 452 437 <?if $(env.VBOX_WITH_VRDP) = "yes" ?> 453 <File Id=" vboxvrdpdll" Name="VBoxVRDP.dll" DiskId="1" Vital="yes"438 <File Id="file_VBoxVRDP.dll" Name="VBoxVRDP.dll" 454 439 Source="$(env.PATH_OUT)\bin\VBoxVRDP.dll" /> 455 440 <?endif ?> 456 <File Id=" vboxshfolderdll" Name="VBoxSF.dll" LongName="VBoxSharedFolders.dll" DiskId="1" Vital="yes"441 <File Id="file_VBoxSharedFolders.dll" Name="VBoxSharedFolders.dll" 457 442 Source="$(env.PATH_OUT)\bin\VBoxSharedFolders.dll" /> 458 <File Id=" vboxshclpbrddll" Name="VBoxClip.dll" LongName="VBoxSharedClipboard.dll" DiskId="1" Vital="yes"443 <File Id="file_VBoxSharedClipboard.dll" Name="VBoxSharedClipboard.dll" 459 444 Source="$(env.PATH_OUT)\bin\VBoxSharedClipboard.dll" /> 460 445 <?if $(env.VBOX_WITH_GUEST_PROPS) = "yes" ?> 461 <File Id=" vboxguestpropdll" Name="VBoxProp.dll" LongName="VBoxGuestPropSvc.dll" DiskId="1" Vital="yes"446 <File Id="file_VBoxGuestPropSvc.dll" Name="VBoxGuestPropSvc.dll" 462 447 Source="$(env.PATH_OUT)\bin\VBoxGuestPropSvc.dll" /> 463 448 <?endif ?> 464 449 <?if $(env.VBOX_WITH_GUEST_CONTROL) = "yes" ?> 465 <File Id=" vboxguestctrldll" Name="VBoxCtrl.dll" LongName="VBoxGuestControlSvc.dll" DiskId="1" Vital="yes"450 <File Id="file_VBoxGuestControlSvc.dll" Name="VBoxGuestControlSvc.dll" 466 451 Source="$(env.PATH_OUT)\bin\VBoxGuestControlSvc.dll" /> 467 452 <?endif ?> 468 <File Id=" vboxauthdll" Name="VBoxAuth.dll" DiskId="1" Vital="yes"453 <File Id="file_VBoxAuth.dll" Name="VBoxAuth.dll" 469 454 Source="$(env.PATH_OUT)\bin\VBoxAuth.dll" /> 470 <File Id=" vboxauthsimpledll" Name="VBoxASim.dll" LongName="VBoxAuthSimple.dll" DiskId="1" Vital="yes"455 <File Id="file_VBoxAuthSimple.dll" Name="VBoxAuthSimple.dll" 471 456 Source="$(env.PATH_OUT)\bin\VBoxAuthSimple.dll" /> 472 457 473 458 <!-- Include resource DLL (icons, ...). --> 474 <File Id=" vboxresdll" LongName="VBoxRes.dll" Name="VBoxRes.dll" DiskId="$(var.Property_DiskIdCommon)" Vital="yes"459 <File Id="file_VBoxRes.dll" Name="VBoxRes.dll" DiskId="$(var.Property_DiskIdCommon)" 475 460 Source="$(env.PATH_OUT)\bin\VBoxRes.dll" /> 476 461 477 <File Id=" vmmgc" Name="VMMGC.gc" DiskId="1" Vital="yes"462 <File Id="file_VMMGC.gc" Name="VMMGC.gc" 478 463 Source="$(env.PATH_OUT)\bin\VMMGC.gc" /> 479 <File Id=" vboxddgc" Name="VBoxDDGC.gc" DiskId="1" Vital="yes"464 <File Id="file_VBoxDDGC.gc" Name="VBoxDDGC.gc" 480 465 Source="$(env.PATH_OUT)\bin\VBoxDDGC.gc" /> 481 <File Id=" vboxdd2gc" Name="VBoxDD2.gc" LongName="VBoxDD2GC.gc" DiskId="1" Vital="yes"466 <File Id="file_VBoxDD2GC.gc" Name="VBoxDD2GC.gc" 482 467 Source="$(env.PATH_OUT)\bin\VBoxDD2GC.gc" /> 483 468 484 <File Id=" vmmr0" Name="VMMR0.r0" DiskId="1" Vital="yes"469 <File Id="file_VMMR0.r0" Name="VMMR0.r0" 485 470 Source="$(env.PATH_OUT)\bin\VMMR0.r0" /> 486 <File Id=" vboxddr0" Name="VBoxDDR0.r0" DiskId="1" Vital="yes"471 <File Id="file_VBoxDDR0.r0" Name="VBoxDDR0.r0" 487 472 Source="$(env.PATH_OUT)\bin\VBoxDDR0.r0" /> 488 <File Id=" vboxdd2r0" Name="VBDD2R0.r0" LongName="VBoxDD2R0.r0" DiskId="1" Vital="yes"473 <File Id="file_VBoxDD2R0.r0" Name="VBoxDD2R0.r0" 489 474 Source="$(env.PATH_OUT)\bin\VBoxDD2R0.r0" /> 490 475 491 476 <?if $(env.VBOX_WITH_CROGL) = "yes" ?> 492 <File Id=" vboxtestogl" Name="VBTstOGL.exe" LongName="VBoxTestOGL.exe" DiskId="1" Vital="yes"477 <File Id="file_VBoxTestOGL.exe" Name="VBoxTestOGL.exe" 493 478 Source="$(env.PATH_OUT)\bin\VBoxTestOGL.exe" /> 494 479 <?endif ?> 495 <!-- Qt stuff --> 496 <File Id="qtcore4dll" Name="QtCrVBx4.dll" LongName="QtCoreVBox4.dll" DiskId="1" Vital="yes" 480 <!-- Qt frontend --> 481 <File Id="file_VirtualBox.exe" Name="VirtualBox.exe" 482 Source="$(env.PATH_OUT)\bin\VirtualBox.exe"> 483 </File> 484 <File Id="file_QtCoreVBox4.dll" Name="QtCoreVBox4.dll" 497 485 Source="$(env.PATH_OUT)\bin\QtCoreVBox4.dll" /> 498 <File Id=" qtgui4dll" Name="QtGuVbx4.dll" LongName="QtGuiVBox4.dll" DiskId="1" Vital="yes"486 <File Id="file_QtGuiVBox4.dll" Name="QtGuiVBox4.dll" 499 487 Source="$(env.PATH_OUT)\bin\QtGuiVBox4.dll" /> 500 <File Id=" qtnetwork4dll" Name="QtNwVBx4.dll" LongName="QtNetworkVBox4.dll" DiskId="1" Vital="yes"488 <File Id="file_QtNetworkVBox4.dll" Name="QtNetworkVBox4.dll" 501 489 Source="$(env.PATH_OUT)\bin\QtNetworkVBox4.dll" /> 490 <?if $(env.VBOX_WITH_DEBUGGER_GUI) = "yes" ?> 491 <File Id="file_VBoxDbg.dll" Name="VBoxDbg.dll" 492 Source="$(env.PATH_OUT)\bin\VBoxDbg.dll" /> 493 <?endif ?> 502 494 <?if $(env.VBOX_GUI_USE_QGL) = "yes" ?> 503 <File Id=" qtopengl4dll" Name="QtGlVBx4.dll" LongName="QtOpenGLVBox4.dll" DiskId="1" Vital="yes"495 <File Id="file_QtOpenGLVBox4.dll" Name="QtOpenGLVBox4.dll" 504 496 Source="$(env.PATH_OUT)\bin\QtOpenGLVBox4.dll" /> 505 497 <?endif?> … … 507 499 <?if $(env.VBOX_USE_VCC80) = "yes" ?> 508 500 <!-- MS v8 Runtime DLL files (private assembly) --> 509 <File Id=" vc80crtmft" Name="VC80CRT.mft" LongName="Microsoft.VC80.CRT.manifest" DiskId="1" Vital="yes"501 <File Id="file_Microsoft.VC80.CRT.manifest" Name="Microsoft.VC80.CRT.manifest" 510 502 Source="$(env.PATH_OUT)\bin\Microsoft.VC80.CRT\Microsoft.VC80.CRT.manifest" /> 511 <File Id=" msvcr80dll" Name="msvcr80.dll" DiskId="1" Vital="yes"503 <File Id="file_msvcr80.dll" Name="msvcr80.dll" 512 504 Source="$(env.PATH_OUT)\bin\Microsoft.VC80.CRT\msvcr80.dll" /> 513 <File Id=" msvcp80dll" Name="msvcp80.dll" DiskId="1" Vital="yes"505 <File Id="file_msvcp80.dll" Name="msvcp80.dll" 514 506 Source="$(env.PATH_OUT)\bin\Microsoft.VC80.CRT\msvcp80.dll" /> 515 507 <?endif?> … … 517 509 <!-- MS v7 Runtime DLL files --> 518 510 <?if $(env.VBOX_USE_VCC80) != "yes" ?> 519 <File Id=" msvcpdll" Name="msvcp71.dll" DiskId="1" Vital="yes"511 <File Id="file_msvcp71.dll" Name="msvcp71.dll" 520 512 Source="$(env.PATH_OUT)\bin\msvcp71.dll" /> 521 <File Id=" msvcrtdll" Name="msvcrt.dll" DiskId="1" Vital="yes"513 <File Id="file_msvcrt.dll" Name="msvcrt.dll" 522 514 Source="$(env.PATH_OUT)\bin\msvcrt.dll" /> 523 515 <?endif?> 524 516 <?if $(env.BUILD_TARGET_ARCH) != "amd64" ?> 525 <File Id="msvcrdll" Name="msvcr71.dll" DiskId="1" Vital="yes"517 <File Id="msvcrdll" Name="msvcr71.dll" 526 518 Source="$(env.PATH_OUT)\bin\msvcr71.dll" /> 527 519 <?endif?> 528 520 <!-- EFI firmware --> 529 521 <?if $(env.VBOX_WITH_EFIFW_PACKING) = "yes" ?> 530 <File Id=" vboxefifd32" LongName="VBoxEFI32.fd" Name="efi32.fd" DiskId="$(var.Property_DiskIdCommon)" Vital="yes"522 <File Id="file_VBoxEFI32.fd" Name="VBoxEFI32.fd" DiskId="$(var.Property_DiskIdCommon)" 531 523 Source="$(env.PATH_OUT)\bin\VBoxEFI32.fd" /> 532 <File Id=" vboxefifd64" LongName="VBoxEFI64.fd" Name="efi64.fd" DiskId="$(var.Property_DiskIdCommon)" Vital="yes"524 <File Id="file_VBoxEFI64.fd" Name="VBoxEFI64.fd" DiskId="$(var.Property_DiskIdCommon)" 533 525 Source="$(env.PATH_OUT)\bin\VBoxEFI64.fd" /> 534 526 <?endif?> … … 536 528 <?if $(env.VBOX_WITH_ADDITIONS_PACKING) = "yes" ?> 537 529 <?if $(env.VBOX_WITH_COMBINED_PACKAGE) = "yes" ?> 538 <File Id=" VBoxGuestAdditions.iso" Name="VBoxAdd.iso" LongName="VBoxGuestAdditions.iso" DiskId="2" Vital="yes"530 <File Id="file_VBoxGuestAdditions.iso" Name="VBoxGuestAdditions.iso" DiskId="2" 539 531 Source="$(env.PATH_MULTIARCH_GUEST_ADDITIONS_ISO)\VBoxGuestAdditions.iso" /> 540 532 <?else ?> 541 <File Id=" vboxguest" Name="VBoxAdd.iso" LongName="VBoxGuestAdditionsiso" DiskId="1" Vital="yes"533 <File Id="file_VBoxGuestAdditions.iso" Name="VBoxGuestAdditions.iso" 542 534 Source="$(env.PATH_OUT)\bin\additions\VBoxGuestAdditions.iso" /> 543 535 <?endif ?> … … 550 542 <?if $(env.VBOX_WITH_QTGUI) = "yes" ?> 551 543 <!-- Qt accessible plugins --> 552 <Directory Id=" accessible" Name="accessbl" LongName="accessible">553 <Component Id=" qtaccessible" Guid="12040EF9-D4A8-4FB2-A69C-CA2F5C354A45">554 <File Id=" qtaccessibleplugindll" Name="qtacsw4.dll" LongName="qtaccessiblewidgets4.dll" DiskId="1" Vital="yes"544 <Directory Id="dir_Accessible" Name="accessible"> 545 <Component Id="cp_QtAccessible" Guid="12040EF9-D4A8-4FB2-A69C-CA2F5C354A45" Win64="$(var.Property_Win64)"> 546 <File Id="file_qtaccessiblewidgets4.dll" Name="qtaccessiblewidgets4.dll" 555 547 Source="$(env.PATH_OUT)\bin\accessible\qtaccessiblewidgets4.dll" /> 556 548 </Component> 557 </Directory> <!-- Qt accessible plugins -->549 </Directory> 558 550 <?endif?> 559 551 560 552 <?if $(env.VBOX_WITH_PYTHON) = "yes" ?> 561 553 <!-- Python bindings --> 562 <Directory Id=" sdk" Name="sdk">563 <Directory Id=" installer" Name="install">564 <Component Id=" VBoxPyInst" Guid="C9A40306-5102-11DE-A7BA-C3C555D89593">565 <File Id=" vboxapisetup" Name="pysetup.py" LongName="vboxapisetup.py" DiskId="$(var.Property_DiskIdCommon)" Vital="yes"566 Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapisetup.py" />554 <Directory Id="dir_SDK" Name="sdk"> 555 <Directory Id="dir_SDKInstall" Name="install"> 556 <Component Id="cp_VBoxPyInst" Guid="C9A40306-5102-11DE-A7BA-C3C555D89593" Win64="$(var.Property_Win64)"> 557 <File Id="file_vboxapisetup.py" Name="vboxapisetup.py" DiskId="$(var.Property_DiskIdCommon)" 558 Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapisetup.py" /> 567 559 </Component> 568 <Directory Id=" vboxapi" Name="vboxapi">569 <Component Id=" VBoxPyMod" Guid="DF19CB76-5102-11DE-943B-13C755D89593">570 <File Id=" __init__.py" Name="__init__.py" DiskId="$(var.Property_DiskIdCommon)" Vital="yes"571 Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapi\__init__.py" />572 <File Id=" VirtualBox_constants.py" Name="vbconst.py" LongName="VirtualBox_constants.py" DiskId="$(var.Property_DiskIdCommon)" Vital="yes"573 Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapi\VirtualBox_constants.py" />560 <Directory Id="dir_SDKVBoxAPI" Name="vboxapi"> 561 <Component Id="cp_VBoxPyMod" Guid="DF19CB76-5102-11DE-943B-13C755D89593" Win64="$(var.Property_Win64)"> 562 <File Id="file___init__.py" Name="__init__.py" DiskId="$(var.Property_DiskIdCommon)" 563 Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapi\__init__.py" /> 564 <File Id="file_VirtualBox_constants.py" Name="VirtualBox_constants.py" DiskId="$(var.Property_DiskIdCommon)" 565 Source="$(env.PATH_OUT)\bin\sdk\installer\vboxapi\VirtualBox_constants.py" /> 574 566 </Component> 575 567 </Directory> 576 568 </Directory> 577 569 </Directory> 578 <!-- Python bindings -->579 570 <?endif?> 580 571 581 572 <?if $(env.VBOX_WITH_CROGL) = "yes" ?> 582 <Component Id=" VBoxCROpenGL" Guid="874A1297-835A-491D-8A9D-7E723BC29EE7" Win64="$(var.Property_Win64)">583 <File Id=" vboxoglhostcrutil" Name="VbGlHCRU.dll" LongName="VBoxOGLhostcrutil.dll" DiskId="1" Vital="yes"573 <Component Id="cp_VBoxCROpenGL" Guid="874A1297-835A-491D-8A9D-7E723BC29EE7" Win64="$(var.Property_Win64)"> 574 <File Id="file_VBoxOGLhostcrutil.dll" Name="VBoxOGLhostcrutil.dll" 584 575 Source="$(env.PATH_OUT)\bin\VBoxOGLhostcrutil.dll" /> 585 <File Id=" vboxoglhosterrorspu" Name="VbGlHers.dll" LongName="VBoxOGLhosterrorspu.dll" DiskId="1" Vital="yes"576 <File Id="file_VBoxOGLhosterrorspu.dll" Name="VBoxOGLhosterrorspu.dll" 586 577 Source="$(env.PATH_OUT)\bin\VBoxOGLhosterrorspu.dll" /> 587 <File Id=" vboxoglrenderspu" Name="VbGlRndr.dll" LongName="VBoxOGLrenderspu.dll" DiskId="1" Vital="yes"578 <File Id="file_VBoxOGLrenderspu.dll" Name="VBoxOGLrenderspu.dll" 588 579 Source="$(env.PATH_OUT)\bin\VBoxOGLrenderspu.dll" /> 589 <File Id=" vboxsharedcropengl" Name="VbShCRGL.dll" LongName="VBoxSharedCrOpenGL.dll" DiskId="1" Vital="yes"580 <File Id="file_VBoxSharedCrOpenGL.dll" Name="VBoxSharedCrOpenGL.dll" 590 581 Source="$(env.PATH_OUT)\bin\VBoxSharedCrOpenGL.dll" /> 591 582 </Component> 592 583 <?endif?> 593 584 <!-- SDL plugins --> 594 <Component Id=" VBoxSDLBinaries" Guid="F09D5FD9-E176-42B0-90A9-481BB18B0CB4" Win64="$(var.Property_Win64)">595 <File Id=" vboxsdl" Name="VBoxSDL.exe" DiskId="1" Vital="yes"585 <Component Id="cp_VBoxSDLBinaries" Guid="F09D5FD9-E176-42B0-90A9-481BB18B0CB4" Win64="$(var.Property_Win64)"> 586 <File Id="file_VBoxSDL.exe" Name="VBoxSDL.exe" 596 587 Source="$(env.PATH_OUT)\bin\VBoxSDL.exe" /> 597 <File Id=" sdldll" Name="SDL.dll" DiskId="1" Vital="yes"588 <File Id="file_SDL.dll" Name="SDL.dll" 598 589 Source="$(env.PATH_OUT)\bin\SDL.dll" /> 599 590 <?if $(env.VBOX_WITH_SECURELABEL) = "yes" ?> 600 <File Id=" sdlttfdll" Name="SDL_ttf.dll" DiskId="1" Vital="yes"591 <File Id="file_SDL_ttf.dll" Name="SDL_ttf.dll" 601 592 Source="$(env.PATH_OUT)\bin\SDL_ttf.dll" /> 602 593 <?endif?> … … 605 596 <?if $(env.VBOX_WITH_WEBSERVICES) = "yes" ?> 606 597 <!-- Webservice --> 607 <Component Id=" VBoxWebService" Guid="DD404F04-9874-43E9-AEE2-7762924D922E">608 <File Id=" vboxweb" Name="vboxwebs.exe" LongName="vboxwebsrv.exe" DiskId="1" Vital="yes"598 <Component Id="cp_VBoxWebService" Guid="DD404F04-9874-43E9-AEE2-7762924D922E"> 599 <File Id="file_VBoxWebSrv.exe" Name="VBoxWebSrv.exe" 609 600 Source="$(env.PATH_OUT)\bin\vboxwebsrv.exe" /> 610 </Component> <!-- Webservice -->601 </Component> 611 602 <?endif?> 612 603 613 604 <?if $(env.VBOX_WITH_PYTHON) = "yes" ?> 614 <!--Python --> 615 <Component Id="VBoxPythonBinding" Guid="293D7E11-78DA-4C31-AEED-AE2FE42F6881"> 616 <Condition>PYTHONINSTALLED</Condition> 617 <!-- Nothing in here yet. --> 605 <Component Id="cp_VBoxPythonBinding" Guid="293D7E11-78DA-4C31-AEED-AE2FE42F6881"> 606 <Condition>PYTHON_INSTALLED</Condition> 618 607 </Component> 619 608 <?endif?> … … 621 610 </Directory> <!-- Windows program files directory --> 622 611 623 <!-- Create a subdirectory in the "Programs" start menu --> 624 <Directory Id="ProgramMenuFolder" Name="PMenu" LongName="Programs"> 625 <Directory Id="ProgramMenuDir" Name="vbox" LongName="$(env.VBOX_PRODUCT)" /> 612 <!-- Set up special directory IDs for referencing to the start menu 613 or the Quick Launch bar. 614 See: http://msdn.microsoft.com/en-us/library/aa368276.aspx 615 http://wix.mindcapers.com/wiki/Shortcuts_in_WiX --> 616 <Directory Id="ProgramMenuFolder"> 617 <Directory Id="dir_StartMenuVBox" Name="$(env.VBOX_PRODUCT)"/> 626 618 </Directory> 627 619 628 <Directory Id="DesktopFolder" Name="Desktop" 620 <Directory Id="DesktopFolder" Name="Desktop"/> 629 621 630 622 <Directory Id="AppDataFolder" Name="AppData"> 631 <Directory Id=" AppDataMicrosoft" Name="MS" LongName="Microsoft">632 <Directory Id=" AppDataMSIE" Name="IE" LongName="Internet Explorer">633 <Directory Id=" QuicklaunchFolder" Name="QL" LongName="Quick Launch"/>623 <Directory Id="dir_AppDataMicrosoft" Name="Microsoft"> 624 <Directory Id="dir_AppDataMSIE" Name="Internet Explorer"> 625 <Directory Id="dir_QuicklaunchFolder" Name="Quick Launch"/> 634 626 </Directory> 635 627 </Directory> 636 628 </Directory> 637 </Directory> 629 630 <!-- Shortcut(s) in start menu --> 631 <Component Id="cp_StartMenuVBox" Guid="C2DC321A-CE63-40EE-8A98-724DF8BD12FB" Win64="$(var.Property_Win64)"> 632 <Shortcut Id="sc_StartMenuVBox" Directory="dir_StartMenuVBox" Name="$(env.VBOX_PRODUCT)" Description="$(env.VBOX_PRODUCT)" 633 Target="[INSTALLDIR]VirtualBox.exe" WorkingDirectory="INSTALLDIR"/> 634 <RegistryValue Root="HKCU" Key="$(var.Property_RegKeyInstall)" 635 Type="string" Value="installed" KeyPath="yes" /> 636 <?include $(env.PATH_TARGET)\Shortcuts_StartMenu.wxi ?> 637 </Component> 638 639 <Component Id="cp_DesktopShortcut" Guid="668F8A1A-F5CE-48B3-BB1A-3042EE27B279" Win64="$(var.Property_Win64)"> 640 <Condition>INSTALLDESKTOPSHORTCUT</Condition> 641 <Shortcut Id="sc_DesktopVBox" Directory="DesktopFolder" Name="$(env.VBOX_PRODUCT)" Description="$(env.VBOX_PRODUCT)" 642 Target="[INSTALLDIR]VirtualBox.exe" WorkingDirectory="INSTALLDIR"/> 643 <RegistryValue Root="HKCU" Key="$(var.Property_RegKeyInstall)" Type="string" 644 Value="installed" KeyPath="yes" /> 645 </Component> 646 647 <Component Id="cp_QuickLaunchVBox" Guid="CC19E026-938A-41CB-8E77-3F33296244B6" Win64="$(var.Property_Win64)"> 648 <CreateFolder/> 649 <Condition>INSTALLQUICKLAUNCHSHORTCUT</Condition> 650 <Shortcut Id="sc_QuickLaunchVBox" Directory="dir_QuicklaunchFolder" Name="$(env.VBOX_PRODUCT)" Description="$(env.VBOX_PRODUCT)" 651 Target="[INSTALLDIR]VirtualBox.exe" WorkingDirectory="INSTALLDIR"/> 652 <RegistryValue Root="HKCU" Key="$(var.Property_RegKeyInstall)" 653 Type="string" Value="installed" KeyPath="yes" /> 654 </Component> 655 </Directory> <!-- TARGETDIR --> 638 656 639 657 <Feature Id="VBoxApplication" Title="VirtualBox Application" Level="1" 640 Description=" $(loc.VB_App)"658 Description="!(loc.VB_App)" 641 659 ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand" 642 660 Absent="disallow"> 643 661 644 <ComponentRef Id="DesktopShortcut" /> 645 <ComponentRef Id="QuicklaunchShortcut" /> 662 <ComponentRef Id="cp_StartMenuVBox" /> 663 <ComponentRef Id="cp_DesktopShortcut" /> 664 <ComponentRef Id="cp_QuickLaunchVBox" /> 646 665 647 666 <?if $(env.VBOX_WITH_DOCS_PACKING) = "yes" ?> 648 <ComponentRef Id=" docs" />649 <?endif?> 650 <ComponentRef Id=" nls" />651 <ComponentRef Id=" MainCOM" />652 <ComponentRef Id=" MainBinaries" />667 <ComponentRef Id="cp_Docs" /> 668 <?endif?> 669 <ComponentRef Id="cp_NLS" /> 670 <ComponentRef Id="cp_MainCOM" /> 671 <ComponentRef Id="cp_MainBinaries" /> 653 672 <?if $(env.VBOX_WITH_QTGUI) = "yes" ?> 654 <ComponentRef Id=" qtaccessible" />673 <ComponentRef Id="cp_QtAccessible" /> 655 674 <?endif?> 656 675 <?if $(env.VBOX_WITH_PYTHON) = "yes" ?> 657 <ComponentRef Id=" VBoxPyInst" />658 <ComponentRef Id=" VBoxPyMod" />676 <ComponentRef Id="cp_VBoxPyInst" /> 677 <ComponentRef Id="cp_VBoxPyMod" /> 659 678 <?endif?> 660 679 661 680 <?if $(env.VBOX_WITH_CROGL) = "yes" ?> 662 <ComponentRef Id=" VBoxCROpenGL" />663 <?endif?> 664 <ComponentRef Id=" VBoxSDLBinaries" />681 <ComponentRef Id="cp_VBoxCROpenGL" /> 682 <?endif?> 683 <ComponentRef Id="cp_VBoxSDLBinaries" /> 665 684 <?if $(env.VBOX_WITH_WEBSERVICES) = "yes" ?> 666 <ComponentRef Id=" VBoxWebService" />667 <?endif?> 668 <ComponentRef Id=" VBoxDrv" />669 670 <Feature Id=" VBoxUSB" Title="VirtualBox USB Support" Level="1"671 Description=" $(loc.VB_USBDriver)"685 <ComponentRef Id="cp_VBoxWebService" /> 686 <?endif?> 687 <ComponentRef Id="cp_VBoxDrv" /> 688 689 <Feature Id="ft_VBoxUSB" Title="VirtualBox USB Support" Level="1" 690 Description="!(loc.VB_USBDriver)" 672 691 ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand" > 673 <ComponentRef Id=" USBFilterDriver" />674 <ComponentRef Id=" USBDeviceDriver" />692 <ComponentRef Id="cp_USBFilterDriver" /> 693 <ComponentRef Id="cp_USBDeviceDriver" /> 675 694 </Feature> 676 695 677 696 <?if $(env.VBOX_WITH_NETFLT) = "yes" ?> 678 <Feature Id=" VBoxNetwork" Title="VirtualBox Networking" Level="1"679 Description=" $(loc.VB_Network)"697 <Feature Id="ft_VBoxNetwork" Title="VirtualBox Networking" Level="1" 698 Description="!(loc.VB_Network)" 680 699 ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand" > 681 <Feature Id=" VBoxNetworkFlt" Title="VirtualBox Bridged Networking" Level="1"682 Description="$(loc.VB_NetFltDriver)"683 ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand" >684 <ComponentRef Id="NetFltDriver" />700 <Feature Id="ft_VBoxNetworkFlt" Title="VirtualBox Bridged Networking" Level="1" 701 Description="!(loc.VB_NetFltDriver)" 702 ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand" > 703 <ComponentRef Id="cp_NetFltDriver" /> 685 704 </Feature> 686 <Feature Id=" VBoxNetworkAdp" Title="VirtualBox Host-Only Networking" Level="1"687 Description="$(loc.VB_NetAdpDriver)"688 ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand" >689 <ComponentRef Id="NetAdpDriver" />705 <Feature Id="ft_VBoxNetworkAdp" Title="VirtualBox Host-Only Networking" Level="1" 706 Description="!(loc.VB_NetAdpDriver)" 707 ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand" > 708 <ComponentRef Id="cp_NetAdpDriver" /> 690 709 </Feature> 691 710 </Feature> … … 693 712 694 713 <?if $(env.VBOX_WITH_PYTHON) = "yes" ?> 695 696 <Feature Id="VBoxPython" Title="VirtualBox Python Support" Level="1" 697 Description="$(loc.VB_Python)" 714 <Feature Id="ft_VBoxPython" Title="VirtualBox Python Support" Level="1" 715 Description="!(loc.VB_Python)" 698 716 ConfigurableDirectory="INSTALLDIR" TypicalDefault="install" Display="expand" > 699 <ComponentRef Id=" VBoxPythonBinding" />717 <ComponentRef Id="cp_VBoxPythonBinding" /> 700 718 </Feature> 701 719 <?endif?> … … 713 731 <RemoveExistingProducts After="InstallValidate"><![CDATA[NEWERVERSIONDETECTED OR PREVIOUSVERSIONSINSTALLED]]></RemoveExistingProducts> 714 732 715 <Custom Action=" OriginalTargetDir" After="FileCost"><![CDATA[(NOT INSTALLDIR) AND (NOT EXISTINGINSTALLDIR)]]></Custom>716 <Custom Action=" DefaultTargetDir" Before="FileCost" ><![CDATA[NOT Installed AND (NOT INSTALLDIR) AND EXISTINGINSTALLDIR]]></Custom>717 718 <Custom Action=" UninstallTAPInstances" Before="InstallFiles" >1</Custom>733 <Custom Action="ca_OriginalTargetDir" After="FileCost"><![CDATA[(NOT INSTALLDIR) AND (NOT EXISTINGINSTALLDIR)]]></Custom> 734 <Custom Action="ca_DefaultTargetDir" Before="FileCost" ><![CDATA[NOT Installed AND (NOT INSTALLDIR) AND EXISTINGINSTALLDIR]]></Custom> 735 736 <Custom Action="ca_UninstallTAPInstances" Before="InstallFiles" >1</Custom> 719 737 <?if $(env.VBOX_WITH_NETFLT) = "yes" ?> 720 <Custom Action=" CreateHostOnlyInterfaceArgs" Before="CreateHostOnlyInterface" ><![CDATA[&VBoxNetworkAdp=3]]></Custom>721 <Custom Action=" CreateHostOnlyInterface" Before="InstallFinalize" ><![CDATA[&VBoxNetworkAdp=3]]></Custom>722 <Custom Action=" RemoveHostOnlyInterfaces" After="UninstallNetFlt" ></Custom>723 724 <Custom Action=" RollbackInstallNetFltArgs" Before="RollbackInstallNetFlt" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>725 <Custom Action=" RollbackInstallNetFlt" Before="InstallNetFlt" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>726 <Custom Action=" InstallNetFltArgs" Before="InstallNetFlt" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>727 <Custom Action=" InstallNetFlt" Before="CreateHostOnlyInterface" ><![CDATA[&VBoxNetworkFlt=3]]></Custom>728 729 <Custom Action=" RollbackUninstallNetFltArgs" Before="RollbackUninstallNetFlt" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>730 <Custom Action=" RollbackUninstallNetFlt" Before="UninstallNetFlt" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>731 <Custom Action=" UninstallNetFltArgs" Before="UninstallNetFlt" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>732 <Custom Action=" UninstallNetFlt" After="InstallInitialize" ><![CDATA[&VBoxNetworkFlt=2]]></Custom>733 <?endif?> 734 <Custom Action=" InstallPythonAPI" After="InstallFinalize" ><![CDATA[&VBoxPython=3]]></Custom>735 <Custom Action=" InstallBranding" After="InstallFinalize" ><![CDATA[NOT REMOVE]]></Custom>736 <Custom Action=" UninstallBranding" After="InstallFinalize" ><![CDATA[REMOVE]]></Custom>738 <Custom Action="ca_CreateHostOnlyInterfaceArgs" Before="ca_CreateHostOnlyInterface" ><![CDATA[&ft_VBoxNetworkAdp=3]]></Custom> 739 <Custom Action="ca_CreateHostOnlyInterface" Before="InstallFinalize" ><![CDATA[&ft_VBoxNetworkAdp=3]]></Custom> 740 <Custom Action="ca_RemoveHostOnlyInterfaces" After="ca_UninstallNetFlt" ></Custom> 741 742 <Custom Action="ca_RollbackInstallNetFltArgs" Before="ca_RollbackInstallNetFlt" ><![CDATA[&ft_VBoxNetworkFlt=3]]></Custom> 743 <Custom Action="ca_RollbackInstallNetFlt" Before="ca_InstallNetFlt" ><![CDATA[&ft_VBoxNetworkFlt=3]]></Custom> 744 <Custom Action="ca_InstallNetFltArgs" Before="ca_InstallNetFlt" ><![CDATA[&ft_VBoxNetworkFlt=3]]></Custom> 745 <Custom Action="ca_InstallNetFlt" Before="ca_CreateHostOnlyInterface" ><![CDATA[&ft_VBoxNetworkFlt=3]]></Custom> 746 747 <Custom Action="ca_RollbackUninstallNetFltArgs" Before="ca_RollbackUninstallNetFlt" ><![CDATA[&ft_VBoxNetworkFlt=2]]></Custom> 748 <Custom Action="ca_RollbackUninstallNetFlt" Before="ca_UninstallNetFlt" ><![CDATA[&ft_VBoxNetworkFlt=2]]></Custom> 749 <Custom Action="ca_UninstallNetFltArgs" Before="ca_UninstallNetFlt" ><![CDATA[&ft_VBoxNetworkFlt=2]]></Custom> 750 <Custom Action="ca_UninstallNetFlt" After="InstallInitialize" ><![CDATA[&ft_VBoxNetworkFlt=2]]></Custom> 751 <?endif?> 752 <Custom Action="ca_InstallPythonAPI" Before="InstallFinalize" ><![CDATA[&ft_VBoxPython=3]]></Custom> 753 <Custom Action="ca_InstallBranding" Before="InstallFinalize" ><![CDATA[NOT REMOVE]]></Custom> 754 <Custom Action="ca_UninstallBranding" Before="InstallFinalize" ><![CDATA[REMOVE]]></Custom> 737 755 738 756 </InstallExecuteSequence> … … 740 758 </Product> 741 759 </Wix> 760 -
trunk/src/VBox/Installer/win/VirtualBox_TypeLib.xsl
r32113 r37289 59 59 <TypeLib> 60 60 <xsl:attribute name="Id"><xsl:value-of select="@uuid"/></xsl:attribute> 61 <xsl:attribute name="Advertise">yes</xsl:attribute> 62 <xsl:attribute name="MajorVersion">1</xsl:attribute> 63 <xsl:attribute name="MinorVersion">0</xsl:attribute> 61 64 <xsl:attribute name="Language">0</xsl:attribute> 62 65 <xsl:attribute name="Description"><xsl:value-of select="@desc"/></xsl:attribute> -
trunk/src/VBox/Installer/win/dep.sed
r32113 r37289 5 5 6 6 # 7 # Copyright (C) 2006-201 0Oracle Corporation7 # Copyright (C) 2006-2011 Oracle Corporation 8 8 # 9 9 # This file is part of VirtualBox Open Source Edition (OSE), as … … 17 17 18 18 # drop all lines not including a src property. 19 / src=\"/!d19 /Source=\"/!d 20 20 # extract the file spec 21 s/^.* src="\([^"]*\).*$/\1 /21 s/^.*Source="\([^"]*\).*$/\1 / 22 22 # convert to unix slashes 23 23 s/\\/\//g
Note:
See TracChangeset
for help on using the changeset viewer.