- Timestamp:
- Jun 1, 2011 11:59:23 AM (14 years ago)
- Location:
- trunk
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Config.kmk
r37287 r37289 1668 1668 1669 1669 # Windows install tools... 1670 VBOX_PATH_WIX ?= $(PATH_DEVTOOLS)/win.x86/wix/v 2.0.5805.01670 VBOX_PATH_WIX ?= $(PATH_DEVTOOLS)/win.x86/wix/v3.5.2519.0 1671 1671 VBOX_PATH_MSITRAN ?= $(PATH_DEVTOOLS)/win.x86/sdk/200504/Bin/MsiTran.Exe 1672 1672 VBOX_PATH_MSIDB ?= $(PATH_DEVTOOLS)/win.x86/sdk/200504/Bin/MsiDb.Exe -
trunk/src/VBox/HostDrivers/VBoxNetFlt/win/cfg/VBoxNetCfg.cpp
r36487 r37289 50 50 static VOID DoLogging(LPCSTR szString, ...); 51 51 #define Log DoLogging 52 #define LogFlow(x) DoLogging x 52 53 53 54 #define DbgLog … … 57 58 58 59 static HRESULT vboxNetCfgWinINetCfgLock(IN INetCfg *pNetCfg, 59 IN LPCWSTR pszwClientDescription,60 IN DWORD cmsTimeout,61 OUT LPWSTR *ppszwClientDescription)60 IN LPCWSTR pszwClientDescription, 61 IN DWORD cmsTimeout, 62 OUT LPWSTR *ppszwClientDescription) 62 63 { 63 64 INetCfgLock *pLock; 64 65 HRESULT hr = pNetCfg->QueryInterface(IID_INetCfgLock, (PVOID*)&pLock); 65 Assert(hr == S_OK); 66 if (hr != S_OK) 67 { 68 Log(__FUNCTION__ ": QueryInterface failed, hr (0x%x)\n", hr); 66 if (FAILED(hr)) 67 { 68 LogFlow(("QueryInterface failed, hr (0x%x)\n", hr)); 69 69 return hr; 70 70 } 71 71 72 72 hr = pLock->AcquireWriteLock(cmsTimeout, pszwClientDescription, ppszwClientDescription); 73 Assert(hr == S_OK || hr == S_FALSE);74 73 if (hr == S_FALSE) 75 74 { 76 Log (__FUNCTION__ ": write lock busy\n");77 } 78 else if ( hr != S_OK)79 { 80 Log (__FUNCTION__ ": AcquireWriteLock failed hr (0x%x)\n", hr);75 LogFlow(("Write lock busy\n")); 76 } 77 else if (FAILED(hr)) 78 { 79 LogFlow(("AcquireWriteLock failed, hr (0x%x)\n", hr)); 81 80 } 82 81 … … 89 88 INetCfgLock *pLock; 90 89 HRESULT hr = pNetCfg->QueryInterface(IID_INetCfgLock, (PVOID*)&pLock); 91 Assert(hr == S_OK); 92 if (hr != S_OK) 93 { 94 Log(__FUNCTION__ ": QueryInterface failed, hr (0x%x)\n", hr); 90 if (FAILED(hr)) 91 { 92 LogFlow(("QueryInterface failed, hr (0x%x)\n", hr)); 95 93 return hr; 96 94 } 97 95 98 96 hr = pLock->ReleaseWriteLock(); 99 Assert(hr == S_OK); 100 if (hr != S_OK) 101 { 102 Log(__FUNCTION__ ": ReleaseWriteLock failed hr (0x%x)\n", hr); 103 } 97 if (FAILED(hr)) 98 LogFlow(("ReleaseWriteLock failed, hr (0x%x)\n", hr)); 104 99 105 100 pLock->Release(); … … 108 103 109 104 VBOXNETCFGWIN_DECL(HRESULT) VBoxNetCfgWinQueryINetCfg(OUT INetCfg **ppNetCfg, 110 IN BOOL fGetWriteLock,111 IN LPCWSTR pszwClientDescription,112 IN DWORD cmsTimeout,113 OUT LPWSTR *ppszwClientDescription)105 IN BOOL fGetWriteLock, 106 IN LPCWSTR pszwClientDescription, 107 IN DWORD cmsTimeout, 108 OUT LPWSTR *ppszwClientDescription) 114 109 { 115 110 INetCfg *pNetCfg; 116 111 HRESULT hr = CoCreateInstance(CLSID_CNetCfg, NULL, CLSCTX_INPROC_SERVER, IID_INetCfg, (PVOID*)&pNetCfg); 117 Assert(hr == S_OK); 118 if (hr != S_OK) 119 { 120 Log(__FUNCTION__ ": CoCreateInstance failed, hr (0x%x)\n", hr); 112 if (FAILED(hr)) 113 { 114 LogFlow(("CoCreateInstance failed, hr (0x%x)\n", hr)); 121 115 return hr; 122 116 } … … 125 119 { 126 120 hr = vboxNetCfgWinINetCfgLock(pNetCfg, pszwClientDescription, cmsTimeout, ppszwClientDescription); 127 Assert(hr == S_OK || hr == S_FALSE);128 121 if (hr == S_FALSE) 129 122 { 130 Log (__FUNCTION__ ": write lock is busy\n", hr);123 LogFlow(("Write lock is busy\n", hr)); 131 124 hr = NETCFG_E_NO_WRITE_LOCK; 132 125 } 133 126 } 134 127 135 if ( hr == S_OK)128 if (SUCCEEDED(hr)) 136 129 { 137 130 hr = pNetCfg->Initialize(NULL); 138 Assert(hr == S_OK); 139 if (hr == S_OK) 131 if (SUCCEEDED(hr)) 140 132 { 141 133 *ppNetCfg = pNetCfg; … … 143 135 } 144 136 else 145 { 146 Log(__FUNCTION__ ": Initialize failed, hr (0x%x)\n", hr); 147 } 137 LogFlow(("Initialize failed, hr (0x%x)\n", hr)); 148 138 } 149 139 … … 155 145 { 156 146 HRESULT hr = pNetCfg->Uninitialize(); 157 Assert(hr == S_OK); 158 if (hr != S_OK) 159 { 160 Log(__FUNCTION__ ": Uninitialize failed, hr (0x%x)\n", hr); 147 if (FAILED(hr)) 148 { 149 LogFlow(("Uninitialize failed, hr (0x%x)\n", hr)); 161 150 return hr; 162 151 } … … 165 154 { 166 155 hr = vboxNetCfgWinINetCfgUnlock(pNetCfg); 167 Assert(hr == S_OK); 168 if (hr != S_OK) 169 { 170 Log(__FUNCTION__ ": vboxNetCfgWinINetCfgUnlock failed, hr (0x%x)\n", hr); 171 } 156 if (FAILED(hr)) 157 LogFlow(("vboxNetCfgWinINetCfgUnlock failed, hr (0x%x)\n", hr)); 172 158 } 173 159 … … 176 162 } 177 163 178 static HRESULT vboxNetCfgWinGetComponentByGuidEnum(IEnumNetCfgComponent *pEnumNcc, IN const GUID * pGuid, OUT INetCfgComponent ** ppNcc) 179 { 180 INetCfgComponent * pNcc; 181 GUID NccGuid; 182 164 static HRESULT vboxNetCfgWinGetComponentByGuidEnum(IEnumNetCfgComponent *pEnumNcc, 165 IN const GUID *pGuid, 166 OUT INetCfgComponent **ppNcc) 167 { 183 168 HRESULT hr = pEnumNcc->Reset(); 184 Assert(hr == S_OK); 185 if (hr != S_OK) 186 { 187 Log(__FUNCTION__": Reset failed, hr (0x%x)\n", hr); 169 if (FAILED(hr)) 170 { 171 LogFlow(("Reset failed, hr (0x%x)\n", hr)); 188 172 return hr; 189 173 } 190 174 175 INetCfgComponent *pNcc; 191 176 while ((hr = pEnumNcc->Next(1, &pNcc, NULL)) == S_OK) 192 177 { 193 178 ULONG uComponentStatus; 194 179 hr = pNcc->GetDeviceStatus(&uComponentStatus); 195 if ( hr == S_OK)180 if (SUCCEEDED(hr)) 196 181 { 197 182 if (uComponentStatus == 0) 198 183 { 184 GUID NccGuid; 199 185 hr = pNcc->GetInstanceGuid(&NccGuid); 200 Assert(hr == S_OK); 201 if ( hr == S_OK)186 187 if (SUCCEEDED(hr)) 202 188 { 203 189 if (NccGuid == *pGuid) … … 209 195 } 210 196 else 211 { 212 Log(__FUNCTION__": GetInstanceGuid failed, hr (0x%x)\n", hr); 213 } 197 LogFlow(("GetInstanceGuid failed, hr (0x%x)\n", hr)); 214 198 } 215 199 } … … 217 201 pNcc->Release(); 218 202 } 219 220 Assert(hr == S_OK || hr == S_FALSE); 221 return hr; 222 } 223 224 VBOXNETCFGWIN_DECL(HRESULT) 225 VBoxNetCfgWinGetComponentByGuid(IN INetCfg *pNc, 226 IN const GUID *pguidClass, 227 IN const GUID * pComponentGuid, 228 OUT INetCfgComponent **ppncc) 203 return hr; 204 } 205 206 VBOXNETCFGWIN_DECL(HRESULT) VBoxNetCfgWinGetComponentByGuid(IN INetCfg *pNc, 207 IN const GUID *pguidClass, 208 IN const GUID * pComponentGuid, 209 OUT INetCfgComponent **ppncc) 229 210 { 230 211 IEnumNetCfgComponent *pEnumNcc; 231 212 HRESULT hr = pNc->EnumComponents(pguidClass, &pEnumNcc); 232 Assert(hr == S_OK); 233 if ( hr == S_OK)213 214 if (SUCCEEDED(hr)) 234 215 { 235 216 hr = vboxNetCfgWinGetComponentByGuidEnum(pEnumNcc, pComponentGuid, ppncc); 236 Assert(hr == S_OK || hr == S_FALSE);237 217 if (hr == S_FALSE) 238 218 { 239 Log (__FUNCTION__": component not found \n");240 } 241 else if ( hr != S_OK)242 { 243 Log (__FUNCTION__": vboxNetCfgWinGetComponentByGuidEnum failed, hr (0x%x)\n", hr);219 LogFlow(("Component not found\n")); 220 } 221 else if (FAILED(hr)) 222 { 223 LogFlow(("vboxNetCfgWinGetComponentByGuidEnum failed, hr (0x%x)\n", hr)); 244 224 } 245 225 pEnumNcc->Release(); 246 226 } 247 227 else 248 { 249 Log(__FUNCTION__": EnumComponents failed, hr (0x%x)\n", hr); 250 } 228 LogFlow(("EnumComponents failed, hr (0x%x)\n", hr)); 251 229 return hr; 252 230 } … … 255 233 { 256 234 HRESULT hr = pNetCfg->QueryNetCfgClass(pguidClass, IID_INetCfgClassSetup, (void**)ppSetup); 257 Assert(hr == S_OK); 258 if (hr != S_OK) 259 { 260 Log(__FUNCTION__ ": QueryNetCfgClass failed hr (0x%x)\n", hr); 261 } 235 if (FAILED(hr)) 236 LogFlow(("QueryNetCfgClass failed, hr (0x%x)\n", hr)); 262 237 return hr; 263 238 } 264 239 265 240 VBOXNETCFGWIN_DECL(HRESULT) VBoxNetCfgWinInstallComponent(IN INetCfg *pNetCfg, IN LPCWSTR pszwComponentId, IN const GUID *pguidClass, 266 OUT INetCfgComponent **ppComponent)241 OUT INetCfgComponent **ppComponent) 267 242 { 268 243 INetCfgClassSetup *pSetup; 269 244 HRESULT hr = vboxNetCfgWinQueryInstaller(pNetCfg, pguidClass, &pSetup); 270 Assert(hr == S_OK); 271 if (hr != S_OK) 272 { 273 Log(__FUNCTION__ ": vboxNetCfgWinQueryInstaller failed hr (0x%x)\n", hr); 245 if (FAILED(hr)) 246 { 247 LogFlow(("vboxNetCfgWinQueryInstaller failed, hr (0x%x)\n", hr)); 274 248 return hr; 275 249 } 276 250 277 251 OBO_TOKEN Token; 278 memset(&Token, 0, sizeof (Token));252 ZeroMemory(&Token, sizeof (Token)); 279 253 Token.Type = OBO_USER; 280 254 281 255 hr = pSetup->Install(pszwComponentId, &Token, 282 0, /* IN DWORD dwSetupFlags */ 283 0, /* IN DWORD dwUpgradeFromBuildNo */ 284 NULL, /* IN LPCWSTR pszwAnswerFile */ 285 NULL, /* IN LPCWSTR pszwAnswerSections */ 286 ppComponent); 287 Assert(hr == S_OK); 288 if (hr == S_OK) 256 0, /* IN DWORD dwSetupFlags */ 257 0, /* IN DWORD dwUpgradeFromBuildNo */ 258 NULL, /* IN LPCWSTR pszwAnswerFile */ 259 NULL, /* IN LPCWSTR pszwAnswerSections */ 260 ppComponent); 261 if (SUCCEEDED(hr)) 289 262 { 290 263 /* ignore the apply failure */ … … 292 265 Assert(tmpHr == S_OK); 293 266 if (tmpHr != S_OK) 294 { 295 Log(__FUNCTION__ ": Apply failed, hr (0x%x)\n", tmpHr); 296 } 267 LogFlow(("Apply failed, hr (0x%x)\n", tmpHr)); 297 268 } 298 269 else 299 { 300 Log(__FUNCTION__ ": Install failed hr (0x%x)\n", hr); 301 } 270 LogFlow(("Install failed, hr (0x%x)\n", hr)); 271 302 272 pSetup->Release(); 303 273 return hr; … … 305 275 306 276 VBOXNETCFGWIN_DECL(HRESULT) VBoxNetCfgWinInstallInfAndComponent(IN INetCfg *pNetCfg, IN LPCWSTR pszwComponentId, IN const GUID *pguidClass, 307 IN LPCWSTR * apInfPaths, IN UINT cInfPaths,308 OUT INetCfgComponent **ppComponent)277 IN LPCWSTR * apInfPaths, IN UINT cInfPaths, 278 OUT INetCfgComponent **ppComponent) 309 279 { 310 280 HRESULT hr = S_OK; 311 281 UINT i = 0; 312 282 283 LogFlow(("Installing %u INF files ...\n", cInfPaths)); 284 313 285 for (; i < cInfPaths; i++) 314 286 { 287 LogFlow(("Installing INF file \"%ws\" ...\n", apInfPaths[i])); 315 288 hr = VBoxDrvCfgInfInstall(apInfPaths[i]); 316 Assert(hr == S_OK); 317 if (hr != S_OK) 318 { 319 Log(__FUNCTION__ ": VBoxNetCfgWinInfInstall failed hr (0x%x)\n", hr); 289 if (FAILED(hr)) 290 { 291 LogFlow(("VBoxNetCfgWinInfInstall failed, hr (0x%x)\n", hr)); 320 292 break; 321 293 } 322 294 } 323 295 324 if ( hr == S_OK)296 if (SUCCEEDED(hr)) 325 297 { 326 298 hr = VBoxNetCfgWinInstallComponent(pNetCfg, pszwComponentId, pguidClass, ppComponent); 327 Assert(hr == S_OK); 328 if (hr != S_OK) 329 { 330 Log(__FUNCTION__ ": VBoxNetCfgWinInstallComponent failed hr (0x%x)\n", hr); 331 } 332 } 333 334 if (hr != S_OK) 335 { 336 for (UINT j = i-1; j != 0; j--) 337 { 299 if (FAILED(hr)) 300 LogFlow(("VBoxNetCfgWinInstallComponent failed, hr (0x%x)\n", hr)); 301 } 302 303 if (FAILED(hr)) 304 { 305 for (UINT j = i - 1; j != 0; j--) 338 306 VBoxDrvCfgInfUninstall(apInfPaths[j], 0); 339 }340 307 } 341 308 … … 347 314 GUID GuidClass; 348 315 HRESULT hr = pComponent->GetClassGuid(&GuidClass); 349 Assert(hr == S_OK); 350 if (hr != S_OK) 351 { 352 Log(__FUNCTION__ ": GetClassGuid failed hr (0x%x)\n", hr); 316 if (FAILED(hr)) 317 { 318 LogFlow(("GetClassGuid failed, hr (0x%x)\n", hr)); 353 319 return hr; 354 320 } 355 321 356 INetCfgClassSetup *pSetup ;322 INetCfgClassSetup *pSetup = NULL; 357 323 hr = vboxNetCfgWinQueryInstaller(pNetCfg, &GuidClass, &pSetup); 358 Assert(hr == S_OK); 359 if (hr != S_OK) 360 { 361 Log(__FUNCTION__ ": vboxNetCfgWinQueryInstaller failed hr (0x%x)\n", hr); 324 if (FAILED(hr)) 325 { 326 LogFlow(("vboxNetCfgWinQueryInstaller failed, hr (0x%x)\n", hr)); 362 327 return hr; 363 328 } 364 329 365 330 OBO_TOKEN Token; 366 memset(&Token, 0, sizeof(Token));331 ZeroMemory(&Token, sizeof(Token)); 367 332 Token.Type = OBO_USER; 368 333 369 334 hr = pSetup->DeInstall(pComponent, &Token, NULL /* OUT LPWSTR *pmszwRefs */); 370 Assert(hr == S_OK); 371 if (hr == S_OK) 372 { 373 HRESULT tmpHr = pNetCfg->Apply(); 374 Assert(tmpHr == S_OK); 375 if (tmpHr != S_OK) 376 { 377 Log(__FUNCTION__ ": Apply failed, hr (0x%x)\n", tmpHr); 378 } 335 if (SUCCEEDED(hr)) 336 { 337 hr = pNetCfg->Apply(); 338 if (FAILED(hr)) 339 LogFlow(("Apply failed, hr (0x%x)\n", hr)); 379 340 } 380 341 else 381 {382 Log(__FUNCTION__ ": DeInstall failed hr (0x%x)\n", hr); 383 }384 pSetup->Release();385 return hr; 386 } 387 388 typedef BOOL (*VBOXNETCFGWIN_NETCFGENUM_CALLBACK) (IN INetCfg *pN c, IN INetCfgComponent *pNcc, PVOID pContext);389 390 static HRESULT vboxNetCfgWinEnumNetCfgComponents(IN INetCfg *pN c,391 IN const GUID *pguidClass,392 VBOXNETCFGWIN_NETCFGENUM_CALLBACK callback,393 PVOID pContext)342 LogFlow(("DeInstall failed, hr (0x%x)\n", hr)); 343 344 if (pSetup) 345 pSetup->Release(); 346 return hr; 347 } 348 349 typedef BOOL (*VBOXNETCFGWIN_NETCFGENUM_CALLBACK) (IN INetCfg *pNetCfg, IN INetCfgComponent *pNetCfgComponent, PVOID pContext); 350 351 static HRESULT vboxNetCfgWinEnumNetCfgComponents(IN INetCfg *pNetCfg, 352 IN const GUID *pguidClass, 353 VBOXNETCFGWIN_NETCFGENUM_CALLBACK callback, 354 PVOID pContext) 394 355 { 395 356 IEnumNetCfgComponent *pEnumComponent; 396 HRESULT hr = pNc->EnumComponents(pguidClass, &pEnumComponent); 397 bool bBreak = false; 398 Assert(hr == S_OK); 399 if (hr == S_OK) 400 { 401 INetCfgComponent *pNcc; 357 HRESULT hr = pNetCfg->EnumComponents(pguidClass, &pEnumComponent); 358 if (SUCCEEDED(hr)) 359 { 360 INetCfgComponent *pNetCfgComponent; 402 361 hr = pEnumComponent->Reset(); 403 Assert(hr == S_OK);404 362 do 405 363 { 406 hr = pEnumComponent->Next(1, &pNcc, NULL); 407 Assert(hr == S_OK || hr == S_FALSE); 408 if (hr == S_OK) 364 hr = pEnumComponent->Next(1, &pNetCfgComponent, NULL); 365 if (SUCCEEDED(hr)) 409 366 { 410 367 // ULONG uComponentStatus; 411 368 // hr = pNcc->GetDeviceStatus(&uComponentStatus); 412 // if (hr == S_OK) 413 { 414 if (!callback(pNc, pNcc, pContext)) 415 { 416 bBreak = true; 417 } 418 } 419 pNcc->Release(); 369 // if (SUCCEEDED(hr)) 370 BOOL fResult = FALSE; 371 if (pNetCfgComponent) 372 { 373 if (pContext) 374 fResult = callback(pNetCfg, pNetCfgComponent, pContext); 375 pNetCfgComponent->Release(); 376 } 377 378 if (!fResult) 379 break; 420 380 } 421 381 else 422 382 { 423 if (hr == S_FALSE)383 if (hr == S_FALSE) 424 384 { 425 385 hr = S_OK; 426 386 } 427 387 else 428 { 429 Log(__FUNCTION__": Next failed, hr (0x%x)\n", hr); 430 } 388 LogFlow(("Next failed, hr (0x%x)\n", hr)); 431 389 break; 432 390 } 433 } while (!bBreak); 434 391 } while (true); 435 392 pEnumComponent->Release(); 436 393 } … … 440 397 static BOOL vboxNetCfgWinRemoveAllNetDevicesOfIdCallback(HDEVINFO hDevInfo, PSP_DEVINFO_DATA pDev, PVOID pContext) 441 398 { 442 DWORD winEr;443 399 HRESULT hr = S_OK; 444 400 SP_REMOVEDEVICE_PARAMS rmdParams; 401 445 402 rmdParams.ClassInstallHeader.cbSize = sizeof(SP_CLASSINSTALL_HEADER); 446 403 rmdParams.ClassInstallHeader.InstallFunction = DIF_REMOVE; 447 404 rmdParams.Scope = DI_REMOVEDEVICE_GLOBAL; 448 405 rmdParams.HwProfile = 0; 406 449 407 if (SetupDiSetClassInstallParams(hDevInfo,pDev,&rmdParams.ClassInstallHeader,sizeof(rmdParams))) 450 408 { … … 460 418 { 461 419 hr = S_FALSE; 462 Log( __FUNCTION__": !!!REBOOT REQUIRED!!!\n");420 Log(("!!!REBOOT REQUIRED!!!\n")); 463 421 } 464 422 } … … 466 424 else 467 425 { 468 winEr = GetLastError();469 Log (__FUNCTION__": SetupDiCallClassInstaller failed winErr(%d)\n", winEr);470 hr = HRESULT_FROM_WIN32( winEr);426 DWORD dwErr = GetLastError(); 427 LogFlow(("SetupDiCallClassInstaller failed with %ld\n", dwErr)); 428 hr = HRESULT_FROM_WIN32(dwErr); 471 429 } 472 430 } 473 431 else 474 432 { 475 winEr = GetLastError();476 Log (__FUNCTION__": SetupDiSetSelectedDevice failed winErr(%d)\n", winEr);477 hr = HRESULT_FROM_WIN32( winEr);433 DWORD dwErr = GetLastError(); 434 LogFlow(("SetupDiSetSelectedDevice failed with %ld\n", dwErr)); 435 hr = HRESULT_FROM_WIN32(dwErr); 478 436 } 479 437 } 480 438 else 481 439 { 482 winEr = GetLastError();483 Log (__FUNCTION__": SetupDiSetClassInstallParams failed winErr(%d)\n", winEr);484 hr = HRESULT_FROM_WIN32( winEr);440 DWORD dwErr = GetLastError(); 441 LogFlow(("SetupDiSetClassInstallParams failed with %ld\n", dwErr)); 442 hr = HRESULT_FROM_WIN32(dwErr); 485 443 } 486 444 … … 528 486 if (winEr != ERROR_INSUFFICIENT_BUFFER) 529 487 { 530 Log (__FUNCTION__": SetupDiGetDeviceRegistryPropertyW (1) failed winErr(%d)\n", winEr);488 LogFlow(("SetupDiGetDeviceRegistryPropertyW (1) failed winErr(%d)\n", winEr)); 531 489 hr = HRESULT_FROM_WIN32(winEr); 532 490 break; … … 534 492 535 493 if (pBuffer) 536 {537 494 free(pBuffer); 538 }539 495 540 496 pBuffer = (PBYTE)malloc(cbRequired); … … 542 498 543 499 if (!SetupDiGetDeviceRegistryPropertyW(hDevInfo,&Dev, 544 SPDRP_HARDWAREID, /* IN DWORD Property,*/545 NULL, /*OUT PDWORD PropertyRegDataType, OPTIONAL*/546 pBuffer, /*OUT PBYTE PropertyBuffer,*/547 cbBuffer, /* IN DWORD PropertyBufferSize,*/548 &cbRequired /*OUT PDWORD RequiredSize OPTIONAL*/549 ))500 SPDRP_HARDWAREID, /* IN DWORD Property,*/ 501 NULL, /*OUT PDWORD PropertyRegDataType, OPTIONAL*/ 502 pBuffer, /*OUT PBYTE PropertyBuffer,*/ 503 cbBuffer, /* IN DWORD PropertyBufferSize,*/ 504 &cbRequired /*OUT PDWORD RequiredSize OPTIONAL*/ 505 )) 550 506 { 551 507 winEr = GetLastError(); 552 Log (__FUNCTION__": SetupDiGetDeviceRegistryPropertyW (2) failed winErr(%d)\n", winEr);508 LogFlow(("SetupDiGetDeviceRegistryPropertyW (2) failed winErr(%d)\n", winEr)); 553 509 hr = HRESULT_FROM_WIN32(winEr); 554 510 break; … … 585 541 { 586 542 DWORD winEr = GetLastError(); 587 Log (__FUNCTION__": SetupDiGetClassDevsExW failed winErr(%d)\n", winEr);543 LogFlow(("SetupDiGetClassDevsExW failed winErr(%d)\n", winEr)); 588 544 hr = HRESULT_FROM_WIN32(winEr); 589 545 } … … 868 824 } 869 825 else 870 { 871 Log(__FUNCTION__": ExecQuery fail hr (0x%x)\n", hr); 872 } 826 LogFlow(("ExecQuery failed (0x%x)\n", hr)); 873 827 } 874 828 else 875 829 { 876 830 DWORD winEr = GetLastError(); 877 Log (__FUNCTION__": StringFromGUID2 fail winEr (%d)\n", winEr);831 LogFlow(("StringFromGUID2 failed winEr (%d)\n", winEr)); 878 832 hr = HRESULT_FROM_WIN32( winEr ); 879 833 } … … 1002 956 { 1003 957 if (!wcsicmp(pCurMask, pMask)) 1004 {1005 958 *pFound = true; 1006 }1007 959 break; 1008 960 } … … 1076 1028 } 1077 1029 else 1078 { 1079 Log(__FUNCTION__": CoSetProxyBlanket failed hr (0x%x)\n", hr); 1080 } 1030 LogFlow(("CoSetProxyBlanket failed, hr (0x%x)\n", hr)); 1081 1031 1082 1032 pSvc->Release(); 1083 1033 } 1084 1034 else 1085 { 1086 Log(__FUNCTION__": ConnectServer failed hr (0x%x)\n", hr); 1087 } 1088 1035 LogFlow(("ConnectServer failed, hr (0x%x)\n", hr)); 1089 1036 pLoc->Release(); 1090 1037 } 1091 1038 else 1092 { 1093 Log(__FUNCTION__": CoCreateInstance failed hr (0x%x)\n", hr); 1094 } 1095 1039 LogFlow(("CoCreateInstance failed, hr (0x%x)\n", hr)); 1096 1040 return hr; 1097 1041 } … … 1108 1052 } 1109 1053 else 1110 { 1111 DWORD winEr = GetLastError(); 1112 Log(__FUNCTION__": Get failed winEr (%d)\n", winEr); 1113 Assert(0); 1114 hr = HRESULT_FROM_WIN32(winEr); 1115 } 1054 LogFlow(("Get failed, hr (0x%x)\n", hr)); 1116 1055 return hr; 1117 1056 } … … 1139 1078 pArgs[i], 0); 1140 1079 if (FAILED(hr)) 1141 {1142 1080 break; 1143 }1144 1081 } 1145 1082 } … … 1187 1124 } 1188 1125 else 1189 { 1190 DWORD dwError = GetLastError(); 1191 Assert(0); 1192 hr = HRESULT_FROM_WIN32( dwError ); 1193 } 1126 hr = HRESULT_FROM_WIN32(GetLastError()); 1194 1127 1195 1128 return hr; … … 1218 1151 } 1219 1152 else 1220 { 1221 DWORD dwError = GetLastError(); 1222 Assert(0); 1223 hr = HRESULT_FROM_WIN32( dwError ); 1224 } 1153 hr = HRESULT_FROM_WIN32(GetLastError()); 1225 1154 1226 1155 return hr; … … 1300 1229 } 1301 1230 else 1302 { 1303 DWORD winEr = GetLastError(); 1304 Assert(0); 1305 hr = HRESULT_FROM_WIN32(winEr); 1306 } 1231 hr = HRESULT_FROM_WIN32(GetLastError()); 1307 1232 1308 1233 return hr; … … 1381 1306 } 1382 1307 } 1383 } } 1308 } 1309 } 1384 1310 SysFreeString(ClassName); 1385 1311 } 1386 1312 else 1387 { 1388 DWORD dwError = GetLastError(); 1389 Assert(0); 1390 hr = HRESULT_FROM_WIN32( dwError ); 1391 } 1313 hr = HRESULT_FROM_WIN32(GetLastError()); 1392 1314 1393 1315 return hr; … … 1458 1380 } 1459 1381 else 1460 { 1461 DWORD dwError = GetLastError(); 1462 Assert(0); 1463 hr = HRESULT_FROM_WIN32( dwError ); 1464 } 1382 hr = HRESULT_FROM_WIN32(GetLastError()); 1465 1383 1466 1384 return hr; … … 1502 1420 int winEr = varReturnValue.uintVal; 1503 1421 if (winEr == 0) 1504 {1505 1422 hr = S_OK; 1506 }1507 1423 else 1508 {1509 1424 hr = HRESULT_FROM_WIN32( winEr ); 1510 }1511 1425 } 1512 1426 } 1513 1427 } 1514 1428 else 1515 {1516 1429 hr = HRESULT_FROM_WIN32( winEr ); 1517 }1518 1430 } 1519 1431 } … … 1522 1434 } 1523 1435 else 1524 { 1525 DWORD dwError = GetLastError(); 1526 Assert(0); 1527 hr = HRESULT_FROM_WIN32(dwError); 1528 } 1436 hr = HRESULT_FROM_WIN32(GetLastError()); 1529 1437 1530 1438 return hr; … … 1536 1444 HRESULT hr = pAdapterConfig->Get(L"DHCPEnabled", 0, &vtEnabled, 0, 0); 1537 1445 if (SUCCEEDED(hr)) 1538 {1539 1446 *pEnabled = vtEnabled.boolVal; 1540 }1541 1447 return hr; 1542 1448 } … … 1551 1457 ComPtr <IWbemClassObject> pAdapterConfig; 1552 1458 hr = netIfWinFindAdapterClassById(pSvc, pGuid, pAdapterConfig.asOutParam()); 1553 if ( hr == S_OK)1459 if (SUCCEEDED(hr)) 1554 1460 { 1555 1461 hr = vboxNetCfgWinIsDhcpEnabled(pAdapterConfig, &pSettings->bDhcp); 1556 1462 if (SUCCEEDED(hr)) 1557 {1558 1463 hr = netIfWinGetIpSettings(pAdapterConfig, &pSettings->ip, &pSettings->mask); 1559 }1560 1464 } 1561 1465 } … … 1573 1477 ComPtr <IWbemClassObject> pAdapterConfig; 1574 1478 hr = netIfWinFindAdapterClassById(pSvc, pGuid, pAdapterConfig.asOutParam()); 1575 if ( hr == S_OK)1479 if (SUCCEEDED(hr)) 1576 1480 { 1577 1481 VARIANT vtEnabled; 1578 1482 hr = pAdapterConfig->Get(L"DHCPEnabled", 0, &vtEnabled, 0, 0); 1579 1483 if (SUCCEEDED(hr)) 1580 {1581 1484 *pEnabled = vtEnabled.boolVal; 1582 }1583 1485 } 1584 1486 } … … 1596 1498 ComPtr <IWbemClassObject> pAdapterConfig; 1597 1499 hr = netIfWinFindAdapterClassById(pSvc, pGuid, pAdapterConfig.asOutParam()); 1598 if ( hr == S_OK)1500 if (SUCCEEDED(hr)) 1599 1501 { 1600 1502 BOOL bIsHostOnly; … … 1649 1551 ComPtr <IWbemClassObject> pAdapterConfig; 1650 1552 hr = netIfWinFindAdapterClassById(pSvc, pGuid, pAdapterConfig.asOutParam()); 1651 if ( hr == S_OK)1553 if (SUCCEEDED(hr)) 1652 1554 { 1653 1555 BSTR ObjPath; … … 1697 1599 ComPtr <IWbemClassObject> pAdapterConfig; 1698 1600 hr = netIfWinFindAdapterClassById(pSvc, pGuid, pAdapterConfig.asOutParam()); 1699 if ( hr == S_OK)1601 if (SUCCEEDED(hr)) 1700 1602 { 1701 1603 BOOL bIsHostOnly; … … 1738 1640 ComPtr <IWbemClassObject> pAdapterConfig; 1739 1641 hr = netIfWinFindAdapterClassById(pSvc, pGuid, pAdapterConfig.asOutParam()); 1740 if ( hr == S_OK)1642 if (SUCCEEDED(hr)) 1741 1643 { 1742 1644 BOOL bIsHostOnly; … … 1902 1804 } 1903 1805 else 1904 {1905 Log(__FUNCTION__": GetAdaptersAddresses err (%d)\n", dwRc); 1906 }1907 free(pAddresses);1806 LogFlow(("GetAdaptersAddresses err (%d)\n", dwRc)); 1807 1808 if (pAddresses) 1809 free(pAddresses); 1908 1810 1909 1811 if (dwRc != NO_ERROR) … … 1927 1829 if (hr == S_OK) 1928 1830 { 1929 Log("NetFlt Is Installed currently\n");1831 Log("NetFlt is installed currently, uninstalling ...\n"); 1930 1832 1931 1833 hr = VBoxNetCfgWinUninstallComponent(pNc, pNcc); … … 1935 1837 else if (hr == S_FALSE) 1936 1838 { 1937 Log("NetFlt Is Not Installed currently\n");1839 Log("NetFlt is not installed currently\n"); 1938 1840 hr = S_OK; 1939 1841 } 1940 1842 else 1941 1843 { 1942 Log ("vboxNetCfgWinNetFltUninstall: FindComponent for NetFlt failed, hr (0x%x)\n", hr);1844 LogFlow(("FindComponent failed, hr (0x%x)\n", hr)); 1943 1845 hr = S_OK; 1944 1846 } … … 1950 1852 } 1951 1853 1952 VBOXNETCFGWIN_DECL(HRESULT) 1953 VBoxNetCfgWinNetFltUninstall(IN INetCfg *pNc) 1854 VBOXNETCFGWIN_DECL(HRESULT) VBoxNetCfgWinNetFltUninstall(IN INetCfg *pNc) 1954 1855 { 1955 1856 return vboxNetCfgWinNetFltUninstall(pNc, 0); 1956 1857 } 1957 1858 1958 VBOXNETCFGWIN_DECL(HRESULT) 1959 VBoxNetCfgWinNetFltInstall(IN INetCfg *pNc,IN LPCWSTR * apInfFullPaths, IN UINT cInfFullPaths)1859 VBOXNETCFGWIN_DECL(HRESULT) VBoxNetCfgWinNetFltInstall(IN INetCfg *pNc, 1860 IN LPCWSTR * apInfFullPaths, IN UINT cInfFullPaths) 1960 1861 { 1961 1862 HRESULT hr = vboxNetCfgWinNetFltUninstall(pNc, SUOI_FORCEDELETE); 1962 1963 hr = VBoxNetCfgWinInstallInfAndComponent(pNc, VBOXNETCFGWIN_NETFLT_ID, 1964 &GUID_DEVCLASS_NETSERVICE, 1965 apInfFullPaths, 1966 cInfFullPaths, 1967 NULL); 1968 1863 if (SUCCEEDED(hr)) 1864 { 1865 Log("NetFlt will be installed ...\n"); 1866 hr = VBoxNetCfgWinInstallInfAndComponent(pNc, VBOXNETCFGWIN_NETFLT_ID, 1867 &GUID_DEVCLASS_NETSERVICE, 1868 apInfFullPaths, 1869 cInfFullPaths, 1870 NULL); 1871 } 1969 1872 return hr; 1970 1873 } 1971 1874 1972 1875 #define VBOX_CONNECTION_NAME L"VirtualBox Host-Only Network" 1973 VBOXNETCFGWIN_DECL(HRESULT) VBoxNetCfgWinGenHostonlyConnectionName 1876 VBOXNETCFGWIN_DECL(HRESULT) VBoxNetCfgWinGenHostonlyConnectionName(PCWSTR DevName, WCHAR *pBuf, PULONG pcbBuf) 1974 1877 { 1975 1878 const WCHAR * pSuffix = wcsrchr( DevName, L'#' ); … … 1999 1902 } 2000 1903 2001 static BOOL vboxNetCfgWinAdjustHostOnlyNetworkInterfacePriority (IN INetCfg *pNc, IN INetCfgComponent *pNcc, PVOID pContext) 2002 { 2003 INetCfgComponentBindings *pNccb = NULL; 2004 IEnumNetCfgBindingPath *pEnumNccbp; 1904 static BOOL vboxNetCfgWinAdjustHostOnlyNetworkInterfacePriority(IN INetCfg *pNc, IN INetCfgComponent *pNcc, PVOID pContext) 1905 { 1906 INetCfgComponentBindings *pNetCfgBindings; 2005 1907 GUID *pGuid = (GUID*)pContext; 2006 HRESULT hr;2007 bool bFound = false;2008 1908 2009 1909 /* Get component's binding. */ 2010 hr = pNcc->QueryInterface(IID_INetCfgComponentBindings, (PVOID*)&pNccb); 2011 Assert(hr == S_OK); 2012 if ( hr == S_OK ) 1910 HRESULT hr = pNcc->QueryInterface(IID_INetCfgComponentBindings, (PVOID*)&pNetCfgBindings); 1911 if (SUCCEEDED(hr)) 2013 1912 { 2014 1913 /* Get binding path enumerator reference. */ 2015 hr = pNccb->EnumBindingPaths(EBP_BELOW, &pEnumNccbp); 2016 Assert(hr == S_OK); 2017 if (hr == S_OK) 2018 { 2019 INetCfgBindingPath *pNccbp; 2020 hr = pEnumNccbp->Reset(); 2021 Assert(hr == S_OK); 1914 IEnumNetCfgBindingPath *pEnumNetCfgBindPath; 1915 hr = pNetCfgBindings->EnumBindingPaths(EBP_BELOW, &pEnumNetCfgBindPath); 1916 if (SUCCEEDED(hr)) 1917 { 1918 bool bFoundIface = false; 1919 hr = pEnumNetCfgBindPath->Reset(); 2022 1920 do 2023 1921 { 2024 hr = pEnumNccbp->Next(1, &pNccbp, NULL);2025 Assert(hr == S_OK || hr == S_FALSE);1922 INetCfgBindingPath *pNetCfgBindPath; 1923 hr = pEnumNetCfgBindPath->Next(1, &pNetCfgBindPath, NULL); 2026 1924 if (hr == S_OK) 2027 1925 { 2028 // if (pNccbp->IsEnabled() == S_OK) 1926 IEnumNetCfgBindingInterface *pEnumNetCfgBindIface; 1927 hr = pNetCfgBindPath->EnumBindingInterfaces(&pEnumNetCfgBindIface); 1928 if (hr == S_OK) 2029 1929 { 2030 IEnumNetCfgBindingInterface *pEnumNcbi; 2031 hr = pNccbp->EnumBindingInterfaces(&pEnumNcbi); 2032 Assert(hr == S_OK); 2033 if (hr == S_OK) 1930 pEnumNetCfgBindIface->Reset(); 1931 do 2034 1932 { 2035 INetCfgBindingInterface *pNcbi; 2036 hr = pEnumNcbi->Reset(); 2037 Assert(hr == S_OK); 2038 do 1933 INetCfgBindingInterface *pNetCfgBindIfce; 1934 hr = pEnumNetCfgBindIface->Next(1, &pNetCfgBindIfce, NULL); 1935 if (hr == S_OK) 2039 1936 { 2040 hr = pEnumNcbi->Next(1, &pNcbi, NULL);2041 Assert(hr == S_OK || hr == S_FALSE);1937 INetCfgComponent *pNetCfgCompo; 1938 hr = pNetCfgBindIfce->GetLowerComponent(&pNetCfgCompo); 2042 1939 if (hr == S_OK) 2043 1940 { 2044 INetCfgComponent * pNccBoud; 2045 hr = pNcbi->GetLowerComponent(&pNccBoud); 2046 Assert(hr == S_OK); 1941 ULONG uComponentStatus; 1942 hr = pNetCfgCompo->GetDeviceStatus(&uComponentStatus); 2047 1943 if (hr == S_OK) 2048 1944 { 2049 ULONG uComponentStatus; 2050 hr = pNccBoud->GetDeviceStatus(&uComponentStatus); 2051 if (hr == S_OK) 1945 GUID guid; 1946 hr = pNetCfgCompo->GetInstanceGuid(&guid); 1947 if ( hr == S_OK 1948 && guid == *pGuid) 2052 1949 { 2053 // if (uComponentStatus == 0) 2054 { 2055 GUID guid; 2056 hr = pNccBoud->GetInstanceGuid(&guid); 2057 if (guid == *pGuid) 2058 { 2059 hr = pNccb->MoveAfter(pNccbp, NULL); 2060 Assert(hr == S_OK); 2061 bFound = true; 2062 } 2063 } 1950 hr = pNetCfgBindings->MoveAfter(pNetCfgBindPath, NULL); 1951 if (FAILED(hr)) 1952 LogFlow(("Unable to move interface, hr (0x%x)\n", hr)); 1953 bFoundIface = true; 2064 1954 } 2065 pNccBoud->Release();2066 1955 } 2067 pN cbi->Release();1956 pNetCfgCompo->Release(); 2068 1957 } 2069 1958 else 2070 { 2071 if (hr == S_FALSE) 2072 { 2073 hr = S_OK; 2074 } 2075 else 2076 { 2077 Log(__FUNCTION__": Next failed, hr (0x%x)\n", hr); 2078 } 2079 break; 2080 } 2081 } while (!bFound); 2082 pEnumNcbi->Release(); 2083 } 2084 else 2085 { 2086 Log(__FUNCTION__": EnumBindingInterfaces failed, hr (0x%x)\n", hr); 2087 } 2088 } 2089 2090 pNccbp->Release(); 2091 } 2092 else 2093 { 2094 if (hr = S_FALSE) 2095 { 2096 hr = S_OK; 1959 LogFlow(("GetLowerComponent failed, hr (0x%x)\n", hr)); 1960 pNetCfgBindIfce->Release(); 1961 } 1962 else 1963 { 1964 if (hr == S_FALSE) /* No more binding interfaces? */ 1965 hr = S_OK; 1966 else 1967 LogFlow(("Next binding interface failed, hr (0x%x)\n", hr)); 1968 break; 1969 } 1970 } while (!bFoundIface); 1971 pEnumNetCfgBindIface->Release(); 2097 1972 } 2098 1973 else 2099 { 2100 Log(__FUNCTION__": Next failed, hr (0x%x)\n", hr); 2101 } 1974 LogFlow(("EnumBindingInterfaces failed, hr (0x%x)\n", hr)); 1975 pNetCfgBindPath->Release(); 1976 } 1977 else 1978 { 1979 if (hr = S_FALSE) /* No more binding paths? */ 1980 hr = S_OK; 1981 else 1982 LogFlow(("Next bind path failed, hr (0x%x)\n", hr)); 2102 1983 break; 2103 1984 } 2104 } while (!bFound); 2105 2106 pEnumNccbp->Release(); 1985 } while (!bFoundIface); 1986 pEnumNetCfgBindPath->Release(); 2107 1987 } 2108 1988 else 2109 { 2110 Log(__FUNCTION__": EnumBindingPaths failed, hr (0x%x)\n", hr); 2111 } 2112 2113 pNccb->Release(); 1989 LogFlow(("EnumBindingPaths failed, hr (0x%x)\n", hr)); 1990 pNetCfgBindings->Release(); 2114 1991 } 2115 1992 else 2116 { 2117 Log(__FUNCTION__": QueryInterface for IID_INetCfgComponentBindings failed, hr (0x%x)\n", hr); 2118 } 2119 2120 return true; 1993 LogFlow(("QueryInterface for IID_INetCfgComponentBindings failed, hr (0x%x)\n", hr)); 1994 return TRUE; 2121 1995 } 2122 1996 … … 2257 2131 hrc = E_FAIL; \ 2258 2132 Log strAndArgs; \ 2259 Assert(0); \2260 2133 break; \ 2261 2134 } else do {} while (0) 2262 2135 2263 2264 VBOXNETCFGWIN_DECL(HRESULT) VBoxNetCfgWinRemoveHostOnlyNetworkInterface (IN const GUID *pGUID, OUT BSTR *pErrMsg) 2136 VBOXNETCFGWIN_DECL(HRESULT) VBoxNetCfgWinRemoveHostOnlyNetworkInterface(IN const GUID *pGUID, OUT BSTR *pErrMsg) 2265 2137 { 2266 2138 HRESULT hrc = S_OK; … … 2467 2339 } 2468 2340 2469 VBOXNETCFGWIN_DECL(HRESULT) VBoxNetCfgWinCreateHostOnlyNetworkInterface 2470 OUT GUID *pGuid, OUT BSTR *lppszName, OUT BSTR *pErrMsg)2341 VBOXNETCFGWIN_DECL(HRESULT) VBoxNetCfgWinCreateHostOnlyNetworkInterface(IN LPCWSTR pInfPath, IN bool bIsInfPathFile, 2342 OUT GUID *pGuid, OUT BSTR *lppszName, OUT BSTR *pErrMsg) 2471 2343 { 2472 2344 HRESULT hrc = S_OK; … … 2484 2356 do 2485 2357 { 2486 BOOL ok;2487 2358 GUID netGuid; 2488 2359 SP_DRVINFO_DATA DriverInfoData; … … 2508 2379 2509 2380 /* create an empty device info set associated with the net class GUID */ 2510 hDeviceInfo = SetupDiCreateDeviceInfoList 2381 hDeviceInfo = SetupDiCreateDeviceInfoList(&netGuid, NULL); 2511 2382 if (hDeviceInfo == INVALID_HANDLE_VALUE) 2512 2383 SetErrBreak (("SetupDiCreateDeviceInfoList failed (0x%08X)", … … 2514 2385 2515 2386 /* get the class name from GUID */ 2516 ok= SetupDiClassNameFromGuid (&netGuid, className, MAX_PATH, NULL);2517 if (! ok)2387 BOOL fResult = SetupDiClassNameFromGuid (&netGuid, className, MAX_PATH, NULL); 2388 if (!fResult) 2518 2389 SetErrBreak (("SetupDiClassNameFromGuid failed (0x%08X)", 2519 2390 GetLastError())); … … 2521 2392 /* create a device info element and add the new device instance 2522 2393 * key to registry */ 2523 ok= SetupDiCreateDeviceInfo (hDeviceInfo, className, &netGuid, NULL, NULL,2394 fResult = SetupDiCreateDeviceInfo (hDeviceInfo, className, &netGuid, NULL, NULL, 2524 2395 DICD_GENERATE_ID, &DeviceInfoData); 2525 if (! ok)2396 if (!fResult) 2526 2397 SetErrBreak (("SetupDiCreateDeviceInfo failed (0x%08X)", 2527 2398 GetLastError())); … … 2529 2400 /* select the newly created device info to be the currently 2530 2401 selected member */ 2531 ok= SetupDiSetSelectedDevice (hDeviceInfo, &DeviceInfoData);2532 if (! ok)2402 fResult = SetupDiSetSelectedDevice (hDeviceInfo, &DeviceInfoData); 2403 if (!fResult) 2533 2404 SetErrBreak (("SetupDiSetSelectedDevice failed (0x%08X)", 2534 2405 GetLastError())); … … 2538 2409 /* get the device install parameters and disable filecopy */ 2539 2410 DeviceInstallParams.cbSize = sizeof(SP_DEVINSTALL_PARAMS); 2540 ok= SetupDiGetDeviceInstallParams (hDeviceInfo, &DeviceInfoData,2411 fResult = SetupDiGetDeviceInstallParams (hDeviceInfo, &DeviceInfoData, 2541 2412 &DeviceInstallParams); 2542 if ( ok)2413 if (fResult) 2543 2414 { 2544 2415 memset(DeviceInstallParams.DriverPath, 0, sizeof(DeviceInstallParams.DriverPath)); … … 2553 2424 } 2554 2425 2555 ok = SetupDiSetDeviceInstallParams(hDeviceInfo, &DeviceInfoData,2556 2557 if (! ok)2426 fResult = SetupDiSetDeviceInstallParams(hDeviceInfo, &DeviceInfoData, 2427 &DeviceInstallParams); 2428 if (!fResult) 2558 2429 { 2559 2430 DWORD winEr = GetLastError(); 2560 Log("SetupDiSetDeviceInstallParams: SetupDiSetDeviceInstallParams failed, winEr (%d)\n", winEr); 2561 Assert(0); 2431 LogFlow(("SetupDiSetDeviceInstallParams failed, winEr (%d)\n", winEr)); 2562 2432 break; 2563 2433 } … … 2565 2435 else 2566 2436 { 2567 Log("SetupDiSetDeviceInstallParams: inf path is too long\n"); 2568 Assert(0); 2437 LogFlow(("SetupDiSetDeviceInstallParams faileed: INF path is too long\n")); 2569 2438 break; 2570 2439 } … … 2573 2442 { 2574 2443 DWORD winEr = GetLastError(); 2575 Assert(0); 2576 Log("VBoxNetCfgWinCreateHostOnlyNetworkInterface: SetupDiGetDeviceInstallParams failed, winEr (%d)\n", winEr); 2577 } 2578 2444 LogFlow(("SetupDiGetDeviceInstallParams failed, winEr (%d)\n", winEr)); 2445 } 2579 2446 } 2580 2447 2581 2448 /* build a list of class drivers */ 2582 ok= SetupDiBuildDriverInfoList (hDeviceInfo, &DeviceInfoData,2583 SPDIT_CLASSDRIVER);2584 if (! ok)2449 fResult = SetupDiBuildDriverInfoList (hDeviceInfo, &DeviceInfoData, 2450 SPDIT_CLASSDRIVER); 2451 if (!fResult) 2585 2452 SetErrBreak (("SetupDiBuildDriverInfoList failed (0x%08X)", 2586 2453 GetLastError())); … … 2647 2514 2648 2515 if (!found) 2649 SetErrBreak (("Could not find Host Interface Networking driver! " 2650 "Please reinstall")); 2516 SetErrBreak(("Could not find Host Interface Networking driver! Please reinstall")); 2651 2517 2652 2518 /* set the loopback driver to be the currently selected */ 2653 ok= SetupDiSetSelectedDriver (hDeviceInfo, &DeviceInfoData,2519 fResult = SetupDiSetSelectedDriver (hDeviceInfo, &DeviceInfoData, 2654 2520 &DriverInfoData); 2655 if (! ok)2656 SetErrBreak 2657 2521 if (!fResult) 2522 SetErrBreak(("SetupDiSetSelectedDriver failed (0x%08X)", 2523 GetLastError())); 2658 2524 2659 2525 /* register the phantom device to prepare for install */ 2660 ok= SetupDiCallClassInstaller (DIF_REGISTERDEVICE, hDeviceInfo,2661 &DeviceInfoData);2662 if (! ok)2526 fResult = SetupDiCallClassInstaller (DIF_REGISTERDEVICE, hDeviceInfo, 2527 &DeviceInfoData); 2528 if (!fResult) 2663 2529 { 2664 2530 DWORD err = GetLastError(); … … 2671 2537 2672 2538 /* ask the installer if we can install the device */ 2673 ok= SetupDiCallClassInstaller (DIF_ALLOW_INSTALL, hDeviceInfo,2674 &DeviceInfoData);2675 if (! ok)2539 fResult = SetupDiCallClassInstaller (DIF_ALLOW_INSTALL, hDeviceInfo, 2540 &DeviceInfoData); 2541 if (!fResult) 2676 2542 { 2677 2543 if (GetLastError() != ERROR_DI_DO_DEFAULT) … … 2683 2549 /* get the device install parameters and disable filecopy */ 2684 2550 DeviceInstallParams.cbSize = sizeof(SP_DEVINSTALL_PARAMS); 2685 ok= SetupDiGetDeviceInstallParams (hDeviceInfo, &DeviceInfoData,2686 &DeviceInstallParams);2687 if ( ok)2551 fResult = SetupDiGetDeviceInstallParams (hDeviceInfo, &DeviceInfoData, 2552 &DeviceInstallParams); 2553 if (fResult) 2688 2554 { 2689 2555 pQueueCallbackContext = SetupInitDefaultQueueCallback(NULL); … … 2692 2558 DeviceInstallParams.InstallMsgHandlerContext = pQueueCallbackContext; 2693 2559 DeviceInstallParams.InstallMsgHandler = (PSP_FILE_CALLBACK)vboxNetCfgWinPspFileCallback; 2694 ok= SetupDiSetDeviceInstallParams (hDeviceInfo, &DeviceInfoData,2560 fResult = SetupDiSetDeviceInstallParams (hDeviceInfo, &DeviceInfoData, 2695 2561 &DeviceInstallParams); 2696 if (! ok)2562 if (!fResult) 2697 2563 { 2698 2564 DWORD winEr = GetLastError(); 2699 Assert(0); 2700 Log("SetupDiSetDeviceInstallParams: SetupDiSetDeviceInstallParams failed, winEr (%d)\n", winEr); 2701 } 2702 Assert(ok); 2565 LogFlow(("SetupDiSetDeviceInstallParams failed, winEr (%d)\n", winEr)); 2566 } 2567 Assert(fResult); 2703 2568 } 2704 2569 else 2705 2570 { 2706 2571 DWORD winEr = GetLastError(); 2707 Assert(0); 2708 Log("VBoxNetCfgWinCreateHostOnlyNetworkInterface: SetupInitDefaultQueueCallback failed, winEr (%d)\n", winEr); 2572 LogFlow(("SetupInitDefaultQueueCallback failed, winEr (%d)\n", winEr)); 2709 2573 } 2710 2574 } … … 2712 2576 { 2713 2577 DWORD winEr = GetLastError(); 2714 Assert(0); 2715 Log("VBoxNetCfgWinCreateHostOnlyNetworkInterface: SetupDiGetDeviceInstallParams failed, winEr (%d)\n", winEr); 2578 LogFlow(("SetupDiGetDeviceInstallParams failed, winEr (%d)\n", winEr)); 2716 2579 } 2717 2580 2718 2581 /* install the files first */ 2719 ok= SetupDiCallClassInstaller (DIF_INSTALLDEVICEFILES, hDeviceInfo,2582 fResult = SetupDiCallClassInstaller (DIF_INSTALLDEVICEFILES, hDeviceInfo, 2720 2583 &DeviceInfoData); 2721 if (! ok)2584 if (!fResult) 2722 2585 SetErrBreak (("SetupDiCallClassInstaller (DIF_INSTALLDEVICEFILES) failed (0x%08X)", 2723 2586 GetLastError())); 2724 2725 2587 /* get the device install parameters and disable filecopy */ 2726 2588 DeviceInstallParams.cbSize = sizeof(SP_DEVINSTALL_PARAMS); 2727 ok= SetupDiGetDeviceInstallParams (hDeviceInfo, &DeviceInfoData,2589 fResult = SetupDiGetDeviceInstallParams (hDeviceInfo, &DeviceInfoData, 2728 2590 &DeviceInstallParams); 2729 if ( ok)2591 if (fResult) 2730 2592 { 2731 2593 DeviceInstallParams.Flags |= DI_NOFILECOPY; 2732 ok = SetupDiSetDeviceInstallParams(hDeviceInfo, &DeviceInfoData,2733 &DeviceInstallParams);2734 if (! ok)2594 fResult = SetupDiSetDeviceInstallParams(hDeviceInfo, &DeviceInfoData, 2595 &DeviceInstallParams); 2596 if (!fResult) 2735 2597 SetErrBreak (("SetupDiSetDeviceInstallParams failed (0x%08X)", 2736 2598 GetLastError())); … … 2740 2602 * Register any device-specific co-installers for this device, 2741 2603 */ 2742 2743 ok = SetupDiCallClassInstaller (DIF_REGISTER_COINSTALLERS, 2744 hDeviceInfo, 2745 &DeviceInfoData); 2746 if (!ok) 2604 fResult = SetupDiCallClassInstaller(DIF_REGISTER_COINSTALLERS, 2605 hDeviceInfo, 2606 &DeviceInfoData); 2607 if (!fResult) 2747 2608 SetErrBreak (("SetupDiCallClassInstaller (DIF_REGISTER_COINSTALLERS) failed (0x%08X)", 2748 2609 GetLastError())); … … 2752 2613 * and then do the real install 2753 2614 */ 2754 ok = SetupDiCallClassInstaller(DIF_INSTALLINTERFACES,2755 hDeviceInfo,2756 &DeviceInfoData);2757 if (! ok)2615 fResult = SetupDiCallClassInstaller(DIF_INSTALLINTERFACES, 2616 hDeviceInfo, 2617 &DeviceInfoData); 2618 if (!fResult) 2758 2619 SetErrBreak (("SetupDiCallClassInstaller (DIF_INSTALLINTERFACES) failed (0x%08X)", 2759 2620 GetLastError())); 2760 2621 2761 ok = SetupDiCallClassInstaller(DIF_INSTALLDEVICE,2762 hDeviceInfo,2763 &DeviceInfoData);2764 if (! ok)2622 fResult = SetupDiCallClassInstaller(DIF_INSTALLDEVICE, 2623 hDeviceInfo, 2624 &DeviceInfoData); 2625 if (!fResult) 2765 2626 SetErrBreak (("SetupDiCallClassInstaller (DIF_INSTALLDEVICE) failed (0x%08X)", 2766 2627 GetLastError())); 2767 2628 2768 2629 /* Figure out NetCfgInstanceId */ 2769 hkey = SetupDiOpenDevRegKey 2770 2771 2772 2773 2774 2630 hkey = SetupDiOpenDevRegKey(hDeviceInfo, 2631 &DeviceInfoData, 2632 DICS_FLAG_GLOBAL, 2633 0, 2634 DIREG_DRV, 2635 KEY_READ); 2775 2636 if (hkey == INVALID_HANDLE_VALUE) 2776 2637 SetErrBreak (("SetupDiOpenDevRegKey failed (0x%08X)", … … 2785 2646 2786 2647 if (!SetupDiGetDeviceRegistryPropertyW(hDeviceInfo, &DeviceInfoData, 2787 SPDRP_FRIENDLYNAME , /* IN DWORD Property,*/ 2788 NULL, /*OUT PDWORD PropertyRegDataType, OPTIONAL*/ 2789 (PBYTE)DevName, /*OUT PBYTE PropertyBuffer,*/ 2790 sizeof(DevName), /* IN DWORD PropertyBufferSize,*/ 2791 NULL /*OUT PDWORD RequiredSize OPTIONAL*/ 2792 )) 2648 SPDRP_FRIENDLYNAME , /* IN DWORD Property,*/ 2649 NULL, /*OUT PDWORD PropertyRegDataType, OPTIONAL*/ 2650 (PBYTE)DevName, /*OUT PBYTE PropertyBuffer,*/ 2651 sizeof(DevName), /* IN DWORD PropertyBufferSize,*/ 2652 NULL /*OUT PDWORD RequiredSize OPTIONAL*/)) 2793 2653 { 2794 2654 int err = GetLastError(); … … 2819 2679 */ 2820 2680 if (pQueueCallbackContext) 2821 {2822 2681 SetupTermDefaultQueueCallback(pQueueCallbackContext); 2823 }2824 2682 2825 2683 if (hDeviceInfo != INVALID_HANDLE_VALUE) … … 2827 2685 /* an error has occurred, but the device is registered, we must remove it */ 2828 2686 if (ret != 0 && registered) 2829 SetupDiCallClassInstaller 2830 2831 found = SetupDiDeleteDeviceInfo 2687 SetupDiCallClassInstaller(DIF_REMOVE, hDeviceInfo, &DeviceInfoData); 2688 2689 found = SetupDiDeleteDeviceInfo(hDeviceInfo, &DeviceInfoData); 2832 2690 2833 2691 /* destroy the driver info list */ 2834 2692 if (destroyList) 2835 SetupDiDestroyDriverInfoList 2836 2693 SetupDiDestroyDriverInfoList(hDeviceInfo, &DeviceInfoData, 2694 SPDIT_CLASSDRIVER); 2837 2695 /* clean up the device info set */ 2838 2696 SetupDiDestroyDeviceInfoList (hDeviceInfo); … … 2845 2703 ULONG cbName = sizeof(ConnectoinName); 2846 2704 2847 HRESULT hr = VBoxNetCfgWinGenHostonlyConnectionName (DevName, ConnectoinName, &cbName); 2705 HRESULT hr = VBoxNetCfgWinGenHostonlyConnectionName(DevName, ConnectoinName, &cbName); 2706 if (SUCCEEDED(hr)) 2707 hr = VBoxNetCfgWinRenameConnection(pWCfgGuidString, ConnectoinName); 2708 2709 if (lppszName) 2710 { 2711 *lppszName = ::SysAllocString((const OLECHAR *) DevName); 2712 if (!*lppszName) 2713 { 2714 LogFlow(("SysAllocString failed\n")); 2715 hrc = HRESULT_FROM_WIN32(ERROR_NOT_ENOUGH_MEMORY); 2716 } 2717 } 2718 2719 if (pGuid) 2720 { 2721 hrc = CLSIDFromString(pWCfgGuidString, (LPCLSID)pGuid); 2722 if (FAILED(hrc)) 2723 LogFlow(("CLSIDFromString failed, hrc (0x%x)\n", hrc)); 2724 } 2725 2726 INetCfg *pNetCfg = NULL; 2727 LPWSTR lpszApp = NULL; 2728 hr = VBoxNetCfgWinQueryINetCfg(&pNetCfg, TRUE, L"VirtualBox Host-Only Creation", 2729 30 * 1000, /* on Vista we often get 6to4svc.dll holding the lock, wait for 30 sec. */ 2730 /* TODO: special handling for 6to4svc.dll ???, i.e. several retrieves */ 2731 &lpszApp); 2848 2732 if (hr == S_OK) 2849 2733 { 2850 hr = VBoxNetCfgWinRenameConnection (pWCfgGuidString, ConnectoinName); 2851 } 2852 2853 if (lppszName) 2854 { 2855 *lppszName = ::SysAllocString ((const OLECHAR *) DevName); 2856 if (!*lppszName) 2857 { 2858 Log("VBoxNetCfgWinCreateHostOnlyNetworkInterface: SysAllocString failed\n"); 2859 Assert(0); 2860 hrc = HRESULT_FROM_WIN32(ERROR_NOT_ENOUGH_MEMORY); 2861 } 2862 } 2863 2864 if (pGuid) 2865 { 2866 hrc = CLSIDFromString(pWCfgGuidString, (LPCLSID)pGuid); 2867 if (hrc != S_OK) 2868 { 2869 Log("VBoxNetCfgWinCreateHostOnlyNetworkInterface: CLSIDFromString failed, hrc (0x%x)\n", hrc); 2870 Assert(0); 2871 } 2872 } 2873 2874 INetCfg *pNc; 2875 LPWSTR lpszApp = NULL; 2876 2877 hr = VBoxNetCfgWinQueryINetCfg(&pNc, TRUE, L"VirtualBox Host-Only Creation", 2878 30000, /* on Vista we often get 6to4svc.dll holding the lock, wait for 30 sec, */ 2879 /* TODO: special handling for 6to4svc.dll ???, i.e. several retrieves */ 2880 &lpszApp); 2881 Assert(hr == S_OK); 2882 if (hr == S_OK) 2883 { 2884 hr = vboxNetCfgWinEnumNetCfgComponents(pNc, 2885 &GUID_DEVCLASS_NETSERVICE, 2886 vboxNetCfgWinAdjustHostOnlyNetworkInterfacePriority, 2887 pGuid); 2888 Assert(hr == S_OK); 2889 2890 hr = vboxNetCfgWinEnumNetCfgComponents(pNc, 2891 &GUID_DEVCLASS_NETTRANS, 2892 vboxNetCfgWinAdjustHostOnlyNetworkInterfacePriority, 2893 pGuid); 2894 Assert(hr == S_OK); 2895 2896 hr = vboxNetCfgWinEnumNetCfgComponents(pNc, 2897 &GUID_DEVCLASS_NETCLIENT, 2898 vboxNetCfgWinAdjustHostOnlyNetworkInterfacePriority, 2899 pGuid); 2900 Assert(hr == S_OK); 2901 2902 if (hr == S_OK) 2903 { 2904 hr = pNc->Apply(); 2905 Assert(hr == S_OK); 2906 } 2907 2908 VBoxNetCfgWinReleaseINetCfg(pNc, TRUE); 2734 hr = vboxNetCfgWinEnumNetCfgComponents(pNetCfg, 2735 &GUID_DEVCLASS_NETSERVICE, 2736 vboxNetCfgWinAdjustHostOnlyNetworkInterfacePriority, 2737 pGuid); 2738 if (SUCCEEDED(hr)) 2739 { 2740 hr = vboxNetCfgWinEnumNetCfgComponents(pNetCfg, 2741 &GUID_DEVCLASS_NETTRANS, 2742 vboxNetCfgWinAdjustHostOnlyNetworkInterfacePriority, 2743 pGuid); 2744 if (SUCCEEDED(hr)) 2745 hr = vboxNetCfgWinEnumNetCfgComponents(pNetCfg, 2746 &GUID_DEVCLASS_NETCLIENT, 2747 vboxNetCfgWinAdjustHostOnlyNetworkInterfacePriority, 2748 pGuid); 2749 } 2750 2751 if (SUCCEEDED(hr)) 2752 { 2753 hr = pNetCfg->Apply(); 2754 } 2755 else 2756 LogFlow(("Enumeration failed, hr 0x%x\n", hr)); 2757 VBoxNetCfgWinReleaseINetCfg(pNetCfg, TRUE); 2909 2758 } 2910 2759 else if (hr == NETCFG_E_NO_WRITE_LOCK && lpszApp) 2911 2760 { 2912 Log ("VBoxNetCfgWinCreateHostOnlyNetworkInterface: app %S is holding the lock, failed\n", lpszApp);2761 LogFlow(("Application %ws is holding the lock, failed\n", lpszApp)); 2913 2762 CoTaskMemFree(lpszApp); 2914 2763 } 2915 2764 else 2916 { 2917 Log("VBoxNetCfgWinCreateHostOnlyNetworkInterface: VBoxNetCfgWinQueryINetCfg failed, hr 0x%x\n", hr); 2918 } 2919 } 2920 2765 LogFlow(("VBoxNetCfgWinQueryINetCfg failed, hr 0x%x\n", hr)); 2766 } 2921 2767 return hrc; 2922 2768 } 2923 2769 2924 2770 #undef SetErrBreak 2771 -
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.