|
@@ -3083,8 +3083,27 @@ void OS_Windows::move_window_to_foreground() {
|
|
|
}
|
|
|
|
|
|
Error OS_Windows::shell_open(String p_uri) {
|
|
|
- ShellExecuteW(NULL, NULL, p_uri.c_str(), NULL, NULL, SW_SHOWNORMAL);
|
|
|
- return OK;
|
|
|
+ INT_PTR ret = (INT_PTR)ShellExecuteW(nullptr, nullptr, p_uri.c_str(), nullptr, nullptr, SW_SHOWNORMAL);
|
|
|
+ if (ret > 32) {
|
|
|
+ return OK;
|
|
|
+ } else {
|
|
|
+ switch (ret) {
|
|
|
+ case ERROR_FILE_NOT_FOUND:
|
|
|
+ case SE_ERR_DLLNOTFOUND:
|
|
|
+ return ERR_FILE_NOT_FOUND;
|
|
|
+ case ERROR_PATH_NOT_FOUND:
|
|
|
+ return ERR_FILE_BAD_PATH;
|
|
|
+ case ERROR_BAD_FORMAT:
|
|
|
+ return ERR_FILE_CORRUPT;
|
|
|
+ case SE_ERR_ACCESSDENIED:
|
|
|
+ return ERR_UNAUTHORIZED;
|
|
|
+ case 0:
|
|
|
+ case SE_ERR_OOM:
|
|
|
+ return ERR_OUT_OF_MEMORY;
|
|
|
+ default:
|
|
|
+ return FAILED;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
String OS_Windows::get_locale() const {
|