winspool.drv: Add stubs for IsValidDevmodeW and IsValidDevmodeA.
diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c
index 6d81f52..5201e30 100644
--- a/dlls/winspool.drv/info.c
+++ b/dlls/winspool.drv/info.c
@@ -1775,6 +1775,38 @@
return ret;
}
+/*****************************************************************************
+ * IsValidDevmodeA [WINSPOOL.@]
+ *
+ * Validate a DEVMODE structure and fix errors if possible.
+ *
+ */
+BOOL WINAPI IsValidDevmodeA(PDEVMODEA *pDevMode, SIZE_T size)
+{
+ FIXME("(%p,%ld): stub\n", pDevMode, size);
+
+ if(!pDevMode)
+ return FALSE;
+
+ return TRUE;
+}
+
+/*****************************************************************************
+ * IsValidDevmodeW [WINSPOOL.@]
+ *
+ * Validate a DEVMODE structure and fix errors if possible.
+ *
+ */
+BOOL WINAPI IsValidDevmodeW(PDEVMODEW *pDevMode, SIZE_T size)
+{
+ FIXME("(%p,%ld): stub\n", pDevMode, size);
+
+ 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..2ef049f 100644
--- a/dlls/winspool.drv/tests/info.c
+++ b/dlls/winspool.drv/tests/info.c
@@ -75,6 +75,7 @@
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 @@
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 @@
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 @@
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