From: Tor Lillqvist Date: Mon, 8 Nov 1999 09:49:10 +0000 (+0000) Subject: New function that returns the message string for a Win32 error code. X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=22a15d33deaedc0cfa17f6dc7650036b7098d6dc;p=dana%2Fcg-glib.git New function that returns the message string for a Win32 error code. 2000-03-04 Tor Lillqvist * 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. --- diff --git a/glib/gwin32.c b/glib/gwin32.c index 82f10d47..8aeb5edb 100644 --- a/glib/gwin32.c +++ b/glib/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; +} diff --git a/gwin32.c b/gwin32.c index 82f10d47..8aeb5edb 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; +}