diff options
Diffstat (limited to 'src/burn/engine/engine.cpp')
-rw-r--r-- | src/burn/engine/engine.cpp | 42 |
1 files changed, 30 insertions, 12 deletions
diff --git a/src/burn/engine/engine.cpp b/src/burn/engine/engine.cpp index 8f024e98..f9dd2184 100644 --- a/src/burn/engine/engine.cpp +++ b/src/burn/engine/engine.cpp | |||
@@ -341,26 +341,44 @@ static HRESULT InitializeEngineState( | |||
341 | wzParam = &pEngineState->argv[i][2 + lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_ATTACHED)]; | 341 | wzParam = &pEngineState->argv[i][2 + lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_ATTACHED)]; |
342 | if (L'=' != wzParam[-1] || L'\0' == wzParam[0]) | 342 | if (L'=' != wzParam[-1] || L'\0' == wzParam[0]) |
343 | { | 343 | { |
344 | ExitOnRootFailure(hr = E_INVALIDARG, "Missing required parameter for switch: %ls", BURN_COMMANDLINE_SWITCH_FILEHANDLE_ATTACHED); | 344 | pEngineState->fInvalidCommandLine = TRUE; |
345 | TraceLog(E_INVALIDARG, "Missing required parameter for switch: %ls", BURN_COMMANDLINE_SWITCH_FILEHANDLE_ATTACHED); | ||
346 | } | ||
347 | else | ||
348 | { | ||
349 | hr = StrStringToUInt64(wzParam, 0, &qw); | ||
350 | if (FAILED(hr)) | ||
351 | { | ||
352 | TraceLog(hr, "Failed to parse file handle: '%ls'", wzParam); | ||
353 | hr = S_OK; | ||
354 | } | ||
355 | else | ||
356 | { | ||
357 | hSourceEngineFile = (HANDLE)qw; | ||
358 | } | ||
345 | } | 359 | } |
346 | |||
347 | hr = StrStringToUInt64(wzParam, 0, &qw); | ||
348 | ExitOnFailure(hr, "Failed to parse file handle: '%ls'", (wzParam)); | ||
349 | |||
350 | hSourceEngineFile = (HANDLE)qw; | ||
351 | } | 360 | } |
352 | if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &pEngineState->argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF), BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF, lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF))) | 361 | if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &pEngineState->argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF), BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF, lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF))) |
353 | { | 362 | { |
354 | wzParam = &pEngineState->argv[i][2 + lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF)]; | 363 | wzParam = &pEngineState->argv[i][2 + lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF)]; |
355 | if (L'=' != wzParam[-1] || L'\0' == wzParam[0]) | 364 | if (L'=' != wzParam[-1] || L'\0' == wzParam[0]) |
356 | { | 365 | { |
357 | ExitOnRootFailure(hr = E_INVALIDARG, "Missing required parameter for switch: %ls", BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF); | 366 | pEngineState->fInvalidCommandLine = TRUE; |
367 | TraceLog(E_INVALIDARG, "Missing required parameter for switch: %ls", BURN_COMMANDLINE_SWITCH_FILEHANDLE_SELF); | ||
368 | } | ||
369 | else | ||
370 | { | ||
371 | hr = StrStringToUInt64(wzParam, 0, &qw); | ||
372 | if (FAILED(hr)) | ||
373 | { | ||
374 | TraceLog(hr, "Failed to parse file handle: '%ls'", wzParam); | ||
375 | hr = S_OK; | ||
376 | } | ||
377 | else | ||
378 | { | ||
379 | hSectionFile = (HANDLE)qw; | ||
380 | } | ||
358 | } | 381 | } |
359 | |||
360 | hr = StrStringToUInt64(wzParam, 0, &qw); | ||
361 | ExitOnFailure(hr, "Failed to parse file handle: '%ls'", (wzParam)); | ||
362 | |||
363 | hSectionFile = (HANDLE)qw; | ||
364 | } | 382 | } |
365 | } | 383 | } |
366 | } | 384 | } |