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.