winspool.drv: Fix some test failures on Win9x/WinMe.

This commit is contained in:
Paul Vriens 2010-02-06 15:37:24 +01:00 committed by Alexandre Julliard
parent 9fd4f4a44a
commit edf0b4a061
1 changed files with 23 additions and 3 deletions

View File

@ -115,6 +115,22 @@ static DWORD access_denied_reported = 0;
/* ################################ */ /* ################################ */
static BOOL on_win9x = FALSE;
static BOOL check_win9x(void)
{
if (pGetPrinterW)
{
SetLastError(0xdeadbeef);
pGetPrinterW(NULL, 0, NULL, 0, NULL);
return (GetLastError() == ERROR_CALL_NOT_IMPLEMENTED);
}
else
{
return TRUE;
}
}
static void find_default_printer(VOID) static void find_default_printer(VOID)
{ {
static char buffer[DEFAULT_PRINTER_SIZE]; static char buffer[DEFAULT_PRINTER_SIZE];
@ -1156,7 +1172,7 @@ static void test_EnumPrinterDrivers(void)
} }
/* EnumPrinterDriversA returns the same number of bytes as EnumPrinterDriversW */ /* EnumPrinterDriversA returns the same number of bytes as EnumPrinterDriversW */
if (pEnumPrinterDriversW) if (!on_win9x && pEnumPrinterDriversW)
{ {
DWORD double_needed; DWORD double_needed;
DWORD double_returned; DWORD double_returned;
@ -2266,7 +2282,7 @@ static void test_GetPrinter(void)
ok(needed > 0,"not expected needed buffer size %d\n", needed); ok(needed > 0,"not expected needed buffer size %d\n", needed);
/* GetPrinterA returns the same number of bytes as GetPrinterW */ /* GetPrinterA returns the same number of bytes as GetPrinterW */
if (! ret && pGetPrinterW && level != 6 && level != 7) if (!on_win9x && !ret && pGetPrinterW && level != 6 && level != 7)
{ {
DWORD double_needed; DWORD double_needed;
ret = pGetPrinterW(hprn, level, NULL, 0, &double_needed); ret = pGetPrinterW(hprn, level, NULL, 0, &double_needed);
@ -2351,7 +2367,7 @@ static void test_GetPrinterDriver(void)
} }
/* GetPrinterDriverA returns the same number of bytes as GetPrinterDriverW */ /* GetPrinterDriverA returns the same number of bytes as GetPrinterDriverW */
if (! ret && pGetPrinterDriverW) if (!on_win9x && !ret && pGetPrinterDriverW)
{ {
DWORD double_needed; DWORD double_needed;
ret = pGetPrinterDriverW(hprn, NULL, level, NULL, 0, &double_needed); ret = pGetPrinterDriverW(hprn, NULL, level, NULL, 0, &double_needed);
@ -2668,6 +2684,10 @@ START_TEST(info)
pXcvDataW = (void *) GetProcAddress(hwinspool, "XcvDataW"); pXcvDataW = (void *) GetProcAddress(hwinspool, "XcvDataW");
pAddPortExA = (void *) GetProcAddress(hwinspool, "AddPortExA"); pAddPortExA = (void *) GetProcAddress(hwinspool, "AddPortExA");
on_win9x = check_win9x();
if (on_win9x)
win_skip("Several W-functions are not available on Win9x/WinMe\n");
find_default_printer(); find_default_printer();
find_local_server(); find_local_server();
find_tempfile(); find_tempfile();