summaryrefslogtreecommitdiff
path: root/gwin32.c
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>1999-11-08 09:49:10 +0000
committerTor Lillqvist <tml@src.gnome.org>1999-11-08 09:49:10 +0000
commit22a15d33deaedc0cfa17f6dc7650036b7098d6dc (patch)
treee3fe7e2b1dd72b7773be07092856d7505e642212 /gwin32.c
parent926d0258196facc67aa1cd81e9eb81e0769f1d15 (diff)
downloadglib-22a15d33deaedc0cfa17f6dc7650036b7098d6dc.tar.gz
New function that returns the message string for a Win32 error code.
2000-03-04 Tor Lillqvist <tml@iki.fi> * gwin32.c (g_win32_error_message): New function that returns the message string for a Win32 error code. * glib.h: Declare it. * glib.def: Export it, plus g_node_copy. * gmodule-win32.c: Call g_win32_error_message() to get the error message strings. * libgplugin_a.c * libgplugin_b.c * gmodule.c: Remove LibMain functions that were needed by LCC, which is not a supported compiler. * testgmodule.c (main): Test for G_MODULE_IMPL == G_MODULE_IMPL_WIN32, not G_OS_WIN32. * gmoduleconf.h.win32: Remove LCC stuff from here, too.
Diffstat (limited to 'gwin32.c')
-rw-r--r--gwin32.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/gwin32.c b/gwin32.c
index 82f10d477..8aeb5edb4 100644
--- a/gwin32.c
+++ b/gwin32.c
@@ -793,3 +793,26 @@ g_win32_getlocale (void)
return g_strdup (bfr);
}
+
+gchar *
+g_win32_error_message (gint error)
+{
+ gchar *msg;
+ gchar *retval;
+ int nbytes;
+
+ nbytes = FormatMessage (FORMAT_MESSAGE_ALLOCATE_BUFFER
+ |FORMAT_MESSAGE_IGNORE_INSERTS
+ |FORMAT_MESSAGE_FROM_SYSTEM,
+ NULL, error, 0,
+ (LPTSTR) &msg, 0, NULL);
+ if (nbytes > 2 && error[nbytes-1] == '\n' && error[nbytes-2] == '\r')
+ error[nbytes-2] = '\0';
+
+ retval = g_strdup (msg);
+
+ if (msg != NULL)
+ LocalFree (msg);
+
+ return retval;
+}