diff options
Diffstat (limited to '')
| -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 | } |
