X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkprint-win32.c;h=04d614cc3a301bcbed0cbbe2a21fec500ffdc694;hb=32aa7f0582febb614c41e4130ad34ac44ef6efd2;hp=d871961dda8181b179a1fd9a4d9ff9a97965c292;hpb=8ce17cf990f996c02fd88d89abbf8d9ff97dbe9f;p=~andy%2Fgtk diff --git a/gtk/gtkprint-win32.c b/gtk/gtkprint-win32.c index d871961dd..04d614cc3 100644 --- a/gtk/gtkprint-win32.c +++ b/gtk/gtkprint-win32.c @@ -13,9 +13,7 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * License along with this library. If not, see . */ #ifndef _MSC_VER @@ -25,7 +23,6 @@ #include "config.h" #include "gtkprint-win32.h" -#include "gtkalias.h" void gtk_print_win32_devnames_free (GtkPrintWin32Devnames *devnames) @@ -104,51 +101,54 @@ gtk_print_win32_devnames_to_win32_from_printer_name (const char *printer_name) { HGLOBAL global; GtkPrintWin32Devnames *devnames; + devnames = gtk_print_win32_devnames_from_printer_name(printer_name); - if(devnames) - { - global = gtk_print_win32_devnames_to_win32 (devnames); - gtk_print_win32_devnames_free(devnames); - } + if (devnames) + { + global = gtk_print_win32_devnames_to_win32 (devnames); + gtk_print_win32_devnames_free (devnames); + } else global = NULL; + return global; } -/** - used to get printer device information from a printer name - since this can fail, because the user have no right to read printer properties, this function can return NULL -*/ +/* + * Used to get printer device information from a printer name. This + * can fail if the user has no right to read printer properties, so + * this function can return NULL. + */ GtkPrintWin32Devnames * gtk_print_win32_devnames_from_printer_name (const char *printer_name) { HANDLE hprinter; gunichar2* win32_printer_name; GtkPrintWin32Devnames *devnames; + win32_printer_name = g_utf8_to_utf16 (printer_name, -1, NULL, NULL, NULL); - if(OpenPrinterW(win32_printer_name, &hprinter, NULL)) - { - DWORD needed; - PRINTER_INFO_2W* printer_info; - GetPrinterW(hprinter, 2, NULL, 0,&needed); - printer_info = (PRINTER_INFO_2W*)g_malloc((gsize)needed); - GetPrinterW(hprinter, 2, (LPBYTE)printer_info,needed,&needed); - devnames = g_new (GtkPrintWin32Devnames, 1); - devnames->driver = g_utf16_to_utf8(printer_info->pDriverName,-1,NULL,NULL,NULL); - devnames->device = g_strdup(printer_name); - devnames->output = g_utf16_to_utf8(printer_info->pPortName,-1,NULL,NULL,NULL); - devnames->flags = 0; - ClosePrinter(hprinter); - g_free(printer_info); - }else - { - // could not open printer - devnames = NULL; - } - g_free(win32_printer_name); + if (OpenPrinterW (win32_printer_name, &hprinter, NULL)) + { + DWORD needed; + PRINTER_INFO_2W* printer_info; + + GetPrinterW (hprinter, 2, NULL, 0, &needed); + printer_info = (PRINTER_INFO_2W* )g_malloc ((gsize) needed); + GetPrinterW (hprinter, 2, (LPBYTE) printer_info, needed, &needed); + devnames = g_new (GtkPrintWin32Devnames, 1); + devnames->driver = g_utf16_to_utf8 (printer_info->pDriverName, -1, NULL, NULL, NULL); + devnames->device = g_strdup (printer_name); + devnames->output = g_utf16_to_utf8 (printer_info->pPortName, -1, NULL, NULL, NULL); + devnames->flags = 0; + ClosePrinter (hprinter); + g_free (printer_info); + } + else + { + /* Could not open printer */ + devnames = NULL; + } + g_free (win32_printer_name); + return devnames; } - - -#define __GTK_PRINT_WIN32_C__ -#include "gtkaliasdef.c"