@joebigelow / wix-1 / commits / 44355b6f

Add BalLogArgs and BalLogErrorArgs.

Sean Hall committed Jul 1, 2020 at 21:27 UTC 44355b6fa5c92a00f0d2fb33ba627a25f052664b
2 files changed +66 -4
src/balutil/balutil.cpp
+46 -4
@@ -251,6 +251,29 @@ DAPIV_(HRESULT) BalLog(
251 {
252 HRESULT hr = S_OK;
253 va_list args;
254 +
255 + if (!vpEngine)
256 + {
257 + hr = E_POINTER;
258 + ExitOnRootFailure(hr, "BalInitialize() must be called first.");
259 + }
260 +
261 + va_start(args, szFormat);
262 + hr = BalLogArgs(level, szFormat, args);
263 + va_end(args);
264 +
265 +LExit:
266 + return hr;
267 +}
268 +
269 +
270 +DAPI_(HRESULT) BalLogArgs(
271 + __in BOOTSTRAPPER_LOG_LEVEL level,
272 + __in_z __format_string LPCSTR szFormat,
273 + __in va_list args
274 + )
275 +{
276 + HRESULT hr = S_OK;
277 LPSTR sczFormattedAnsi = NULL;
278 LPWSTR sczMessage = NULL;
279
@@ -260,9 +283,7 @@ DAPIV_(HRESULT) BalLog(
283 ExitOnRootFailure(hr, "BalInitialize() must be called first.");
284 }
285
263 - va_start(args, szFormat);
286 hr = StrAnsiAllocFormattedArgs(&sczFormattedAnsi, szFormat, args);
265 - va_end(args);
287 ExitOnFailure(hr, "Failed to format log string.");
288
289 hr = StrAllocStringAnsi(&sczMessage, sczFormattedAnsi, 0, CP_UTF8);
@@ -285,6 +306,29 @@ DAPIV_(HRESULT) BalLogError(
306 {
307 HRESULT hr = S_OK;
308 va_list args;
309 +
310 + if (!vpEngine)
311 + {
312 + hr = E_POINTER;
313 + ExitOnRootFailure(hr, "BalInitialize() must be called first.");
314 + }
315 +
316 + va_start(args, szFormat);
317 + hr = BalLogErrorArgs(hrError, szFormat, args);
318 + va_end(args);
319 +
320 +LExit:
321 + return hr;
322 +}
323 +
324 +
325 +DAPI_(HRESULT) BalLogErrorArgs(
326 + __in HRESULT hrError,
327 + __in_z __format_string LPCSTR szFormat,
328 + __in va_list args
329 + )
330 +{
331 + HRESULT hr = S_OK;
332 LPSTR sczFormattedAnsi = NULL;
333 LPWSTR sczMessage = NULL;
334
@@ -294,9 +338,7 @@ DAPIV_(HRESULT) BalLogError(
338 ExitOnRootFailure(hr, "BalInitialize() must be called first.");
339 }
340
297 - va_start(args, szFormat);
341 hr = StrAnsiAllocFormattedArgs(&sczFormattedAnsi, szFormat, args);
299 - va_end(args);
342 ExitOnFailure(hr, "Failed to format error log string.");
343
344 hr = StrAllocFormatted(&sczMessage, L"Error 0x%08x: %S", hrError, sczFormattedAnsi);
src/balutil/inc/balutil.h
+20
@@ -144,6 +144,16 @@ DAPIV_(HRESULT) BalLog(
144 ...
145 );
146
147 +/*******************************************************************
148 + BalLogArgs - logs a message with the engine.
149 +
150 +********************************************************************/
151 +DAPI_(HRESULT) BalLogArgs(
152 + __in BOOTSTRAPPER_LOG_LEVEL level,
153 + __in_z __format_string LPCSTR szFormat,
154 + __in va_list args
155 + );
156 +
157 /*******************************************************************
158 BalLogError - logs an error message with the engine.
159
@@ -154,6 +164,16 @@ DAPIV_(HRESULT) BalLogError(
164 ...
165 );
166
167 +/*******************************************************************
168 + BalLogErrorArgs - logs an error message with the engine.
169 +
170 +********************************************************************/
171 +DAPI_(HRESULT) BalLogErrorArgs(
172 + __in HRESULT hr,
173 + __in_z __format_string LPCSTR szFormat,
174 + __in va_list args
175 + );
176 +
177 /*******************************************************************
178 BalLogId - logs a message with the engine with a string embedded in a
179 MESSAGETABLE resource.