diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2021-04-28 16:43:48 -0500 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2021-04-29 14:05:34 -0500 |
commit | 752f0e0576dc27e937c553ed9dce5576bd388e95 (patch) | |
tree | f95013ccb3bdea206cf8879d6bbf2411a04663c6 /src/engine/userexperience.cpp | |
parent | 7099dd38ab902e7fb92706314fa8710a34f165a5 (diff) | |
download | wix-752f0e0576dc27e937c553ed9dce5576bd388e95.tar.gz wix-752f0e0576dc27e937c553ed9dce5576bd388e95.tar.bz2 wix-752f0e0576dc27e937c553ed9dce5576bd388e95.zip |
Let BA override the package's cache type during Plan.
Rename cache types to REMOVE, KEEP, FORCE.
Change implementation of FORCE to not be through CACHED request state.
Create package condition enum so BA can tell when InstallCondition wasn't specified.
Tell BA when package is cached.
Tell BA when package is planned to be cached and uncached.
Diffstat (limited to 'src/engine/userexperience.cpp')
-rw-r--r-- | src/engine/userexperience.cpp | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/engine/userexperience.cpp b/src/engine/userexperience.cpp index ab631951..2215a070 100644 --- a/src/engine/userexperience.cpp +++ b/src/engine/userexperience.cpp | |||
@@ -1141,7 +1141,8 @@ EXTERN_C BAAPI UserExperienceOnDetectPackageComplete( | |||
1141 | __in BURN_USER_EXPERIENCE* pUserExperience, | 1141 | __in BURN_USER_EXPERIENCE* pUserExperience, |
1142 | __in_z LPCWSTR wzPackageId, | 1142 | __in_z LPCWSTR wzPackageId, |
1143 | __in HRESULT hrStatus, | 1143 | __in HRESULT hrStatus, |
1144 | __in BOOTSTRAPPER_PACKAGE_STATE state | 1144 | __in BOOTSTRAPPER_PACKAGE_STATE state, |
1145 | __in BOOL fCached | ||
1145 | ) | 1146 | ) |
1146 | { | 1147 | { |
1147 | HRESULT hr = S_OK; | 1148 | HRESULT hr = S_OK; |
@@ -1152,6 +1153,7 @@ EXTERN_C BAAPI UserExperienceOnDetectPackageComplete( | |||
1152 | args.wzPackageId = wzPackageId; | 1153 | args.wzPackageId = wzPackageId; |
1153 | args.hrStatus = hrStatus; | 1154 | args.hrStatus = hrStatus; |
1154 | args.state = state; | 1155 | args.state = state; |
1156 | args.fCached = fCached; | ||
1155 | 1157 | ||
1156 | results.cbSize = sizeof(results); | 1158 | results.cbSize = sizeof(results); |
1157 | 1159 | ||
@@ -1937,7 +1939,9 @@ EXTERN_C BAAPI UserExperienceOnPlannedPackage( | |||
1937 | __in BURN_USER_EXPERIENCE* pUserExperience, | 1939 | __in BURN_USER_EXPERIENCE* pUserExperience, |
1938 | __in_z LPCWSTR wzPackageId, | 1940 | __in_z LPCWSTR wzPackageId, |
1939 | __in BOOTSTRAPPER_ACTION_STATE execute, | 1941 | __in BOOTSTRAPPER_ACTION_STATE execute, |
1940 | __in BOOTSTRAPPER_ACTION_STATE rollback | 1942 | __in BOOTSTRAPPER_ACTION_STATE rollback, |
1943 | __in BOOL fPlannedCache, | ||
1944 | __in BOOL fPlannedUncache | ||
1941 | ) | 1945 | ) |
1942 | { | 1946 | { |
1943 | HRESULT hr = S_OK; | 1947 | HRESULT hr = S_OK; |
@@ -1948,6 +1952,8 @@ EXTERN_C BAAPI UserExperienceOnPlannedPackage( | |||
1948 | args.wzPackageId = wzPackageId; | 1952 | args.wzPackageId = wzPackageId; |
1949 | args.execute = execute; | 1953 | args.execute = execute; |
1950 | args.rollback = rollback; | 1954 | args.rollback = rollback; |
1955 | args.fPlannedCache = fPlannedCache; | ||
1956 | args.fPlannedUncache = fPlannedUncache; | ||
1951 | 1957 | ||
1952 | results.cbSize = sizeof(results); | 1958 | results.cbSize = sizeof(results); |
1953 | 1959 | ||
@@ -1962,8 +1968,10 @@ EXTERN_C BAAPI UserExperienceOnPlanPackageBegin( | |||
1962 | __in BURN_USER_EXPERIENCE* pUserExperience, | 1968 | __in BURN_USER_EXPERIENCE* pUserExperience, |
1963 | __in_z LPCWSTR wzPackageId, | 1969 | __in_z LPCWSTR wzPackageId, |
1964 | __in BOOTSTRAPPER_PACKAGE_STATE state, | 1970 | __in BOOTSTRAPPER_PACKAGE_STATE state, |
1965 | __in BOOL fInstallCondition, | 1971 | __in BOOL fCached, |
1966 | __inout BOOTSTRAPPER_REQUEST_STATE* pRequestedState | 1972 | __in BOOTSTRAPPER_PACKAGE_CONDITION_RESULT installCondition, |
1973 | __inout BOOTSTRAPPER_REQUEST_STATE* pRequestedState, | ||
1974 | __inout BOOTSTRAPPER_CACHE_TYPE* pRequestedCacheType | ||
1967 | ) | 1975 | ) |
1968 | { | 1976 | { |
1969 | HRESULT hr = S_OK; | 1977 | HRESULT hr = S_OK; |
@@ -1973,11 +1981,14 @@ EXTERN_C BAAPI UserExperienceOnPlanPackageBegin( | |||
1973 | args.cbSize = sizeof(args); | 1981 | args.cbSize = sizeof(args); |
1974 | args.wzPackageId = wzPackageId; | 1982 | args.wzPackageId = wzPackageId; |
1975 | args.state = state; | 1983 | args.state = state; |
1976 | args.fInstallCondition = fInstallCondition; | 1984 | args.fCached = fCached; |
1985 | args.installCondition = installCondition; | ||
1977 | args.recommendedState = *pRequestedState; | 1986 | args.recommendedState = *pRequestedState; |
1987 | args.recommendedCacheType = *pRequestedCacheType; | ||
1978 | 1988 | ||
1979 | results.cbSize = sizeof(results); | 1989 | results.cbSize = sizeof(results); |
1980 | results.requestedState = *pRequestedState; | 1990 | results.requestedState = *pRequestedState; |
1991 | results.requestedCacheType = *pRequestedCacheType; | ||
1981 | 1992 | ||
1982 | hr = SendBAMessage(pUserExperience, BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPACKAGEBEGIN, &args, &results); | 1993 | hr = SendBAMessage(pUserExperience, BOOTSTRAPPER_APPLICATION_MESSAGE_ONPLANPACKAGEBEGIN, &args, &results); |
1983 | ExitOnFailure(hr, "BA OnPlanPackageBegin failed."); | 1994 | ExitOnFailure(hr, "BA OnPlanPackageBegin failed."); |
@@ -1987,6 +1998,7 @@ EXTERN_C BAAPI UserExperienceOnPlanPackageBegin( | |||
1987 | hr = HRESULT_FROM_WIN32(ERROR_INSTALL_USEREXIT); | 1998 | hr = HRESULT_FROM_WIN32(ERROR_INSTALL_USEREXIT); |
1988 | } | 1999 | } |
1989 | *pRequestedState = results.requestedState; | 2000 | *pRequestedState = results.requestedState; |
2001 | *pRequestedCacheType = results.requestedCacheType; | ||
1990 | 2002 | ||
1991 | LExit: | 2003 | LExit: |
1992 | return hr; | 2004 | return hr; |