diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2022-05-13 13:50:50 -0500 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2022-05-14 11:12:31 -0500 |
commit | 6a6974a15deb6edf593736cdb8043bfb93064782 (patch) | |
tree | 0ae2afffcd02967ba3fe0f0a5d3e9273811f1e6f /src/api/burn/balutil/inc/BAFunctions.h | |
parent | 7d56566b7c51c49ded526466dfae6af9e1709040 (diff) | |
download | wix-6a6974a15deb6edf593736cdb8043bfb93064782.tar.gz wix-6a6974a15deb6edf593736cdb8043bfb93064782.tar.bz2 wix-6a6974a15deb6edf593736cdb8043bfb93064782.zip |
Move infinite loop detection into the hosts.
Tell the BA during Destroy whether it will be reloaded, and let the BA decide then whether it's module should be unloaded.
Show error when infinite prereq loop detected.
Only clip the exit code if they're Win32 errors.
Set related bundle type to none to avoid downgrades during preqba.
Diffstat (limited to 'src/api/burn/balutil/inc/BAFunctions.h')
-rw-r--r-- | src/api/burn/balutil/inc/BAFunctions.h | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/api/burn/balutil/inc/BAFunctions.h b/src/api/burn/balutil/inc/BAFunctions.h index c1057ab6..b23dd02e 100644 --- a/src/api/burn/balutil/inc/BAFunctions.h +++ b/src/api/burn/balutil/inc/BAFunctions.h | |||
@@ -126,6 +126,18 @@ struct BA_FUNCTIONS_CREATE_RESULTS | |||
126 | LPVOID pvBAFunctionsProcContext; | 126 | LPVOID pvBAFunctionsProcContext; |
127 | }; | 127 | }; |
128 | 128 | ||
129 | struct BA_FUNCTIONS_DESTROY_ARGS | ||
130 | { | ||
131 | DWORD cbSize; | ||
132 | BOOL fReload; | ||
133 | }; | ||
134 | |||
135 | struct BA_FUNCTIONS_DESTROY_RESULTS | ||
136 | { | ||
137 | DWORD cbSize; | ||
138 | BOOL fDisableUnloading; // indicates the BAFunctions dll must not be unloaded after BAFunctionsDestroy. | ||
139 | }; | ||
140 | |||
129 | struct BA_FUNCTIONS_ONTHEMECONTROLLOADED_ARGS | 141 | struct BA_FUNCTIONS_ONTHEMECONTROLLOADED_ARGS |
130 | { | 142 | { |
131 | DWORD cbSize; | 143 | DWORD cbSize; |
@@ -218,7 +230,10 @@ typedef HRESULT(WINAPI *PFN_BA_FUNCTIONS_CREATE)( | |||
218 | __inout BA_FUNCTIONS_CREATE_RESULTS* pResults | 230 | __inout BA_FUNCTIONS_CREATE_RESULTS* pResults |
219 | ); | 231 | ); |
220 | 232 | ||
221 | typedef void (WINAPI *PFN_BA_FUNCTIONS_DESTROY)(); | 233 | typedef void (WINAPI *PFN_BA_FUNCTIONS_DESTROY)( |
234 | __in const BA_FUNCTIONS_DESTROY_ARGS* pArgs, | ||
235 | __inout BA_FUNCTIONS_DESTROY_RESULTS* pResults | ||
236 | ); | ||
222 | 237 | ||
223 | #ifdef __cplusplus | 238 | #ifdef __cplusplus |
224 | } | 239 | } |