winspool.drv: Add stubs for IsValidDevmodeW and IsValidDevmodeA.

David Hedberg dhedberg at codeweavers.com
Mon May 9 01:27:09 CDT 2011


---
 dlls/winspool.drv/info.c            |   32 ++++++++++++++++++++++++++++++++
 dlls/winspool.drv/tests/info.c      |   23 +++++++++++++++++++++++
 dlls/winspool.drv/winspool.drv.spec |    2 ++
 3 files changed, 57 insertions(+), 0 deletions(-)

diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index 6d81f52..282fc7e 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -1775,6 +1775,38 @@ LONG WINAPI DocumentPropertiesW(HWND hWnd, HANDLE hPrinter,
     return ret;
 }
 
+/*****************************************************************************
+ *          IsValidDevmodeA            [WINSPOOL.@]
+ *
+ * Validate a DEVMODE structure and fix errors if possible.
+ *
+ */
+BOOL WINAPI IsValidDevmodeA(PDEVMODEA *pDevMode, size_t DevmodeSize)
+{
+    FIXME("(%p,%d): stub\n", pDevMode, DevmodeSize);
+
+    if(!pDevMode)
+        return FALSE;
+
+    return TRUE;
+}
+
+/*****************************************************************************
+ *          IsValidDevmodeW            [WINSPOOL.@]
+ *
+ * Validate a DEVMODE structure and fix errors if possible.
+ *
+ */
+BOOL WINAPI IsValidDevmodeW(PDEVMODEW *pDevMode, size_t DevmodeSize)
+{
+    FIXME("(%p,%d): stub\n", pDevMode, DevmodeSize);
+
+    if(!pDevMode)
+        return FALSE;
+
+    return TRUE;
+}
+
 /******************************************************************
  *              OpenPrinterA        [WINSPOOL.@]
  *
diff --git a/dlls/winspool.drv/tests/info.c b/dlls/winspool.drv/tests/info.c
index da4fc38..1922937 100644
--- a/dlls/winspool.drv/tests/info.c
+++ b/dlls/winspool.drv/tests/info.c
@@ -75,6 +75,7 @@ static BOOL  (WINAPI * pGetPrinterDriverW)(HANDLE, LPWSTR, DWORD, LPBYTE, DWORD,
 static BOOL  (WINAPI * pGetPrinterW)(HANDLE, DWORD, LPBYTE, DWORD, LPDWORD);
 static BOOL  (WINAPI * pSetDefaultPrinterA)(LPCSTR);
 static DWORD (WINAPI * pXcvDataW)(HANDLE, LPCWSTR, PBYTE, DWORD, PBYTE, DWORD, PDWORD, PDWORD);
+static BOOL  (WINAPI * pIsValidDevmodeW)(PDEVMODEW, size_t);
 
 
 /* ################################ */
@@ -2852,6 +2853,26 @@ static void test_DeviceCapabilities(void)
     GlobalFree(prn_dlg.hDevNames);
 }
 
+static void test_IsValidDevmodeW(void)
+{
+    BOOL br;
+
+    if (!pIsValidDevmodeW)
+    {
+        win_skip("IsValidDevmodeW not implemented.\n");
+        return;
+    }
+
+    br = pIsValidDevmodeW(NULL, 0);
+    ok(br == FALSE, "Got %d\n", br);
+
+    br = pIsValidDevmodeW(NULL, 1);
+    ok(br == FALSE, "Got %d\n", br);
+
+    br = pIsValidDevmodeW(NULL, sizeof(DEVMODEW));
+    ok(br == FALSE, "Got %d\n", br);
+}
+
 START_TEST(info)
 {
     hwinspool = GetModuleHandleA("winspool.drv");
@@ -2863,6 +2884,7 @@ START_TEST(info)
     pGetPrinterW = (void *) GetProcAddress(hwinspool, "GetPrinterW");
     pSetDefaultPrinterA = (void *) GetProcAddress(hwinspool, "SetDefaultPrinterA");
     pXcvDataW = (void *) GetProcAddress(hwinspool, "XcvDataW");
+    pIsValidDevmodeW = (void *) GetProcAddress(hwinspool, "IsValidDevmodeW");
 
     on_win9x = check_win9x();
     if (on_win9x)
@@ -2898,6 +2920,7 @@ START_TEST(info)
     test_SetDefaultPrinter();
     test_XcvDataW_MonitorUI();
     test_XcvDataW_PortIsValid();
+    test_IsValidDevmodeW();
 
     /* Cleanup our temporary file */
     DeleteFileA(tempfileA);
diff --git a/dlls/winspool.drv/winspool.drv.spec b/dlls/winspool.drv/winspool.drv.spec
index 9151b11..bdf346c 100644
--- a/dlls/winspool.drv/winspool.drv.spec
+++ b/dlls/winspool.drv/winspool.drv.spec
@@ -145,6 +145,8 @@
 @ stdcall GetPrinterDriverDirectoryW(wstr wstr long ptr long ptr)
 @ stdcall GetPrinterDriverW(long wstr long ptr long ptr)
 @ stdcall GetPrinterW(long long ptr long ptr)
+@ stdcall IsValidDevmodeA(ptr long)
+@ stdcall IsValidDevmodeW(ptr long)
 @ stdcall OpenPrinterA(str ptr ptr)
 @ stdcall OpenPrinterW(wstr ptr ptr)
 @ stub PlayGdiScriptOnPrinterIC
-- 
1.7.5.rc3




More information about the wine-patches mailing list