summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--redo/common_windows.go5
-rw-r--r--redo/dialog_windows.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/redo/common_windows.go b/redo/common_windows.go
index 38a5510..3ec4ddd 100644
--- a/redo/common_windows.go
+++ b/redo/common_windows.go
@@ -21,6 +21,11 @@ func xpanichresult(msg *C.char, hresult C.HRESULT) {
panic(fmt.Errorf("%s; HRESULT: 0x%X", C.GoString(msg), hresult))
}
+//export xpaniccomdlg
+func xpaniccomdlg(msg *C.char, err C.DWORD) {
+ panic(fmt.Errorf("%s; comdlg32.dll extended error: 0x%X", C.GoString(msg), err))
+}
+
//export xmissedmsg
func xmissedmsg(purpose *C.char, f *C.char, uMsg C.UINT) {
panic(fmt.Errorf("%s window procedure message %d does not return a value (bug in %s)", C.GoString(purpose), uMsg, C.GoString(f)))
diff --git a/redo/dialog_windows.c b/redo/dialog_windows.c
index fff8e95..8b942f3 100644
--- a/redo/dialog_windows.c
+++ b/redo/dialog_windows.c
@@ -47,7 +47,7 @@ WCHAR *openFile(void)
err = CommDlgExtendedError();
if (err == 0) // user cancelled
return NULL;
- xpanic("error running open file dialog", GetLastError());
+ xpaniccomdlg("error running open file dialog", err);
}
return filenameBuffer;
}