Huw Davies : winspool: Forward EnumFormsA() to EnumFormsW().

Alexandre Julliard julliard at winehq.org
Wed May 19 14:55:15 CDT 2021


Module: wine
Branch: master
Commit: 0cddf6fe210c9783f6abb8be37adf4e256ec6476
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=0cddf6fe210c9783f6abb8be37adf4e256ec6476

Author: Huw Davies <huw at codeweavers.com>
Date:   Wed May 19 14:43:12 2021 +0100

winspool: Forward EnumFormsA() to EnumFormsW().

Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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;
 }
 
 /******************************************************************************




More information about the wine-cvs mailing list