[PATCH] gdi32/tests/dc.c: add test for CreateDC("WINSPOOL",...)
Marcel Partap
mpartap at gmx.net
Sun Dec 9 16:38:06 CST 2007
---
dlls/gdi32/tests/Makefile.in | 2 +-
dlls/gdi32/tests/dc.c | 51 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 52 insertions(+), 1 deletions(-)
diff --git a/dlls/gdi32/tests/Makefile.in b/dlls/gdi32/tests/Makefile.in
index 31cc771..b584003 100644
--- a/dlls/gdi32/tests/Makefile.in
+++ b/dlls/gdi32/tests/Makefile.in
@@ -3,7 +3,7 @@ TOPOBJDIR = ../../..
SRCDIR = @srcdir@
VPATH = @srcdir@
TESTDLL = gdi32.dll
-IMPORTS = user32 gdi32 kernel32
+IMPORTS = user32 gdi32 kernel32 winspool
CTESTS = \
bitmap.c \
diff --git a/dlls/gdi32/tests/dc.c b/dlls/gdi32/tests/dc.c
index 72cd155..226a31d 100644
--- a/dlls/gdi32/tests/dc.c
+++ b/dlls/gdi32/tests/dc.c
@@ -27,6 +27,9 @@
#include "wingdi.h"
#include "winuser.h"
#include "winerror.h"
+#include "winnls.h"
+#include "winspool.h"
+
static void dump_region(HRGN hrgn)
{
@@ -49,6 +52,53 @@ static void dump_region(HRGN hrgn)
HeapFree( GetProcessHeap(), 0, data );
}
+static void test_createdc_winspool_printer(LPCSTR printername)
+{
+ HDC winspoolhdc = 0;
+
+ winspoolhdc = CreateDCA("WINSPOOL", printername, NULL, NULL);
+ ok( winspoolhdc != 0, "winspoolhdc = %p\n", winspoolhdc );
+ DeleteDC(winspoolhdc);
+}
+
+static void test_createdc_winspool(void)
+{
+ PPRINTER_INFO_1A pPrinterInfo = NULL;
+ DWORD dwNeeded = 0;
+ DWORD dwSize = 0;
+ DWORD dwPrinterCount;
+ INT i;
+
+ EnumPrintersA(PRINTER_ENUM_LOCAL, NULL, 1, NULL, 0, &dwNeeded, &dwPrinterCount);
+ if (dwNeeded > 0)
+ {
+ if (!(pPrinterInfo = HeapAlloc(GetProcessHeap(), 0, dwNeeded)))
+ {
+ trace("allocating %d Bytes on heap failed with LastError() = %d\n", dwNeeded, GetLastError());
+ return;
+ } else
+ dwSize = dwNeeded;
+
+ if (!EnumPrintersA(PRINTER_ENUM_LOCAL, NULL, 1, (LPBYTE) pPrinterInfo, dwSize, &dwNeeded, &dwPrinterCount))
+ {
+ trace("EnumPrinters failed with LastError() = %d\n", GetLastError());
+ HeapFree(GetProcessHeap(), 0, pPrinterInfo);
+ return;
+ }
+ for (i = 0; i < dwPrinterCount; i++)
+ {
+ printf("%02d: %s\n", i+1, pPrinterInfo[i].pName);
+ test_createdc_winspool_printer(pPrinterInfo[i].pName);
+ }
+ HeapFree(GetProcessHeap(), 0, pPrinterInfo);
+ }
+ else
+ {
+ trace("EnumPrinters failed with LastError() = %d\n", GetLastError());
+ return;
+ }
+}
+
static void test_savedc_2(void)
{
HWND hwnd;
@@ -175,6 +225,7 @@ static void test_savedc(void)
START_TEST(dc)
{
+ test_createdc_winspool();
test_savedc();
test_savedc_2();
}
--
1.5.3.7
--------------040101030204050907020908--
More information about the wine-patches
mailing list