From 0cddf6fe210c9783f6abb8be37adf4e256ec6476 Mon Sep 17 00:00:00 2001 From: Huw Davies Date: Wed, 19 May 2021 14:43:12 +0100 Subject: [PATCH] winspool: Forward EnumFormsA() to EnumFormsW(). Signed-off-by: Huw Davies Signed-off-by: Alexandre Julliard --- dlls/winspool.drv/info.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c index d6b66e86bf6..d6aa60a028f 100644 --- a/dlls/winspool.drv/info.c +++ b/dlls/winspool.drv/info.c @@ -7457,12 +7457,20 @@ BOOL WINAPI DeletePrintProvidorW(LPWSTR pName, LPWSTR pEnvironment, LPWSTR pPrin /****************************************************************************** * EnumFormsA (WINSPOOL.@) */ -BOOL WINAPI EnumFormsA( HANDLE hPrinter, DWORD Level, LPBYTE pForm, - DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned ) +BOOL WINAPI EnumFormsA( HANDLE printer, DWORD level, BYTE *form, DWORD size, DWORD *needed, DWORD *count ) { - FIXME("%p %x %p %x %p %p\n", hPrinter, Level, pForm, cbBuf, pcbNeeded, pcReturned); - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); - return FALSE; + const DWORD *string_info = form_string_info( level ); + BOOL ret; + DWORD i; + + if (!string_info) return FALSE; + + ret = EnumFormsW( printer, level, form, size, needed, count ); + if (ret) + for (i = 0; i < *count; i++) + packed_struct_WtoA( form + i * string_info[0], string_info ); + + return ret; } /******************************************************************************