in src/main/cpp/launcher/windows/src/Main.c [216:262]
void showErrorW(LauncherProperties * props, const char * error, const DWORD varArgsNumber, ...) {
WCHAR * errorTitle = NULL;
WCHAR * errorMessage = NULL;
DWORD totalLength = 0;
DWORD counter=0;
WCHAR * result = NULL;
va_list ap;
getI18nPropertyTitleDetail(props, error, & errorTitle, &errorMessage);
totalLength=getLengthW(errorMessage);
va_start(ap, varArgsNumber);
while((counter++)<varArgsNumber) {
WCHAR * arg = va_arg( ap, WCHAR * );
totalLength+=getLengthW(arg);
}
va_end(ap);
result = newpWCHAR(totalLength + 1);
va_start(ap, varArgsNumber);
if(errorMessage!=NULL) {
wvsprintfW(result, errorMessage, ap);
}
va_end(ap);
if(!isSilent(props)) {
HANDLE * events = (HANDLE *) LocalAlloc(LPTR, sizeof(HANDLE)*2);
hide(props, hwndProgressTitle);
hide(props, hwndPB);
setErrorDetailString(props, result);
setErrorTitleString(props, errorTitle);
setButtonString(props, getI18nProperty(props, EXIT_BUTTON_PROP));
show(props, hwndErrorDetail);
show(props, hwndErrorTitle);
show(props, hwndButton);
events[0] = buttonPressed;
events[1] = closingWindowsRequired;
WaitForMultipleObjects(2, events, FALSE, INFINITE);
FREE(events);
}
FREE(result);
FREE(errorTitle);
FREE(errorMessage);
}