Changeset 45317 in vbox
- Timestamp:
- Apr 3, 2013 5:46:20 PM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 84725
- Location:
- trunk/src/VBox/Installer/win
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Installer/win/Stub/VBoxStub.cpp
r44529 r45317 5 5 6 6 /* 7 * Copyright (C) 2010-201 2Oracle Corporation7 * Copyright (C) 2010-2013 Oracle Corporation 8 8 * 9 9 * This file is part of VirtualBox Open Source Edition (OSE), as … … 348 348 /* Do not use a global namespace ("Global\\") for mutex name here, will blow up NT4 compatibility! */ 349 349 HANDLE hMutexAppRunning = CreateMutex(NULL, FALSE, "VBoxStubInstaller"); 350 if ( (hMutexAppRunning != NULL)351 && (GetLastError() == ERROR_ALREADY_EXISTS))350 if ( hMutexAppRunning != NULL 351 && GetLastError() == ERROR_ALREADY_EXISTS) 352 352 { 353 353 /* Close the mutex for this application instance. */ 354 354 CloseHandle(hMutexAppRunning); 355 355 hMutexAppRunning = NULL; 356 return 1;356 return RTEXITCODE_FAILURE; 357 357 } 358 358 … … 360 360 int vrc = RTR3InitExe(argc, &argv, 0); 361 361 if (RT_FAILURE(vrc)) 362 return vrc;362 return RTMsgInitFailure(vrc); 363 363 364 364 /* … … 494 494 } 495 495 496 /** @todo The rest of this function should be done in smaller functions, 497 * we've lost the overview here! Too much state going around! */ 498 496 499 HRESULT hr = S_OK; 497 500 498 501 do /* break loop */ 499 502 { 500 /* Get/create our temp path (only if not already set). */ 503 /* 504 * Determine and create our temp path (only if not already set). 505 */ 501 506 if (szExtractPath[0] == '\0') 502 507 { … … 684 689 if (hModule) 685 690 FreeLibrary(hModule); 691 /** @todo program exit code needs to be set */ 686 692 break; 687 693 } … … 690 696 vrc = VERR_NO_CHANGE; /* No change done to the system. */ 691 697 } 698 else 699 /** @todo program exit code needs to be for ERROR_INSTALL_USEREXIT. */ 692 700 } 693 701 RTStrFree(pszTempFile); … … 700 708 && RT_SUCCESS(vrc)) 701 709 { 702 for (int i =0; i<5; i++)710 for (int i = 0; i < 5; i++) 703 711 { 704 712 vrc = RTDirRemoveRecursive(szExtractPath, 0 /*fFlags*/); … … 729 737 } 730 738 731 /* Set final exit (return) code (error level). */ 739 /* 740 * Figure the exit code (not very difficult at the moment). 741 */ 742 RTEXITCODE rcExit = RTEXITCODE_SUCCESS; 732 743 if (RT_FAILURE(vrc)) 733 { 734 switch(vrc) 735 { 736 case VERR_NO_CHANGE: 737 default: 738 vrc = 1; 739 } 740 } 741 else /* Always set to (VINF_SUCCESS), even if we got something else (like a VWRN etc). */ 742 vrc = VINF_SUCCESS; 743 return vrc; 744 } 745 744 rcExit = RTEXITCODE_FAILURE; 745 return rcExit; 746 } 747 -
trunk/src/VBox/Installer/win/StubBld/VBoxStubBld.h
r44529 r45317 16 16 */ 17 17 18 #pragma once 18 #ifndef ___VBoxStubBld_h___ 19 #define ___VBoxStubBld_h___ 19 20 20 21 #define VBOXSTUB_MAX_PACKAGES 128 21 22 22 typedef struct 23 typedef struct VBOXSTUBPKGHEADER 23 24 { 24 char szMagic[9]; 25 DWORD dwVersion; 26 BYTE byCntPkgs; 25 /** Some magic string not defined by this header? Turns out it's a write only 26 * field... */ 27 char szMagic[9]; 28 /* Inbetween szMagic and dwVersion there are 3 bytes of implicit padding. */ 29 /** Some version number not defined by this header? Also write only field. 30 * Should be a uint32_t, not DWORD. */ 31 DWORD dwVersion; 32 /** Number of packages following the header. byte is prefixed 'b', not 'by'! 33 * Use uint8_t instead of BYTE. */ 34 BYTE byCntPkgs; 35 /* There are 3 bytes of implicit padding here. */ 36 } VBOXSTUBPKGHEADER; 37 typedef VBOXSTUBPKGHEADER *PVBOXSTUBPKGHEADER; 27 38 28 } VBOXSTUBPKGHEADER, *PVBOXSTUBPKGHEADER; 29 30 enum VBOXSTUBPKGARCH 39 typedef enum VBOXSTUBPKGARCH 31 40 { 32 41 VBOXSTUBPKGARCH_ALL = 0, 33 VBOXSTUBPKGARCH_X86 = 1,34 VBOXSTUBPKGARCH_AMD64 = 235 } ;42 VBOXSTUBPKGARCH_X86 43 VBOXSTUBPKGARCH_AMD64 44 } VBOXSTUBPKGARCH; 36 45 37 typedef struct 46 typedef struct VBOXSTUBPKG 38 47 { 39 48 BYTE byArch; 49 /** Probably the name of the PE resource or something, read the source to 50 * find out for sure. Don't use _MAX_PATH, define your own max lengths! */ 40 51 char szResourceName[_MAX_PATH]; 41 52 char szFileName[_MAX_PATH]; 42 } VBOXSTUBPKG, *PVBOXSTUBPKG; 53 } VBOXSTUBPKG; 54 typedef VBOXSTUBPKG *PVBOXSTUBPKG; 43 55 44 56 /* Only for construction. */ 57 /* Since it's only used by VBoxStubBld.cpp, why not just keep it there? */ 45 58 46 typedef struct 59 typedef struct VBOXSTUBBUILDPKG 47 60 { 48 61 char szSourcePath[_MAX_PATH]; 49 62 BYTE byArch; 50 } VBOXSTUBBUILDPKG, *PVBOXSTUBBUILDPKG; 63 } VBOXSTUBBUILDPKG; 64 typedef VBOXSTUBBUILDPKG *PVBOXSTUBBUILDPKG; 51 65 66 #endif
Note:
See TracChangeset
for help on using the changeset viewer.