[LOCALSPL_APITEST]
authorColin Finck <colin@reactos.org>
Fri, 19 Jun 2015 15:05:58 +0000 (15:05 +0000)
committerColin Finck <colin@reactos.org>
Fri, 19 Jun 2015 15:05:58 +0000 (15:05 +0000)
Put the calls that eventually give us the function pointers to localspl into a separate procedure GetLocalsplFuncs to enable further tests easily.

svn path=/branches/colins-printing-for-freedom/; revision=68194

rostests/apitests/localspl/dll/fpEnumPrinters.c
rostests/apitests/localspl/dll/main.c

index cbe7573..82cb5e7 100644 (file)
 #include "../localspl_apitest.h"
 #include <spoolss.h>
 
+extern BOOL GetLocalsplFuncs(LPPRINTPROVIDOR pp);
+
 START_TEST(fpEnumPrinters)
 {
     DWORD cbNeeded;
     DWORD cbTemp;
     DWORD dwReturned;
     DWORD i;
-    HMODULE hLocalspl;
-    PInitializePrintProvidor pfnInitializePrintProvidor;
     PRINTPROVIDOR pp;
     PPRINTER_INFO_1W pPrinterInfo1;
     PVOID pMem;
 
-    // Get us a handle to the loaded localspl.dll.
-    hLocalspl = GetModuleHandleW(L"localspl");
-    if (!hLocalspl)
-    {
-        skip("GetModuleHandleW failed with error %lu!\n", GetLastError());
-        return;
-    }
-
-    // Get a pointer to its InitializePrintProvidor function.
-    pfnInitializePrintProvidor = (PInitializePrintProvidor)GetProcAddress(hLocalspl, "InitializePrintProvidor");
-    if (!pfnInitializePrintProvidor)
-    {
-        skip("GetProcAddress failed with error %lu!\n", GetLastError());
+    if (!GetLocalsplFuncs(&pp))
         return;
-    }
-
-    // Get localspl's function pointers.
-    if (!pfnInitializePrintProvidor(&pp, sizeof(pp), NULL))
-    {
-        skip("pfnInitializePrintProvidor failed with error %lu!\n", GetLastError());
-        return;
-    }
 
     // Verify that localspl only returns information about a single print provider (namely itself).
     cbNeeded = 0xDEADBEEF;
index 0a0e1b1..fc63db4 100644 (file)
@@ -34,6 +34,38 @@ const struct test winetest_testlist[] =
     { 0, 0 }
 };
 
+BOOL
+GetLocalsplFuncs(LPPRINTPROVIDOR pp)
+{
+    HMODULE hLocalspl;
+    PInitializePrintProvidor pfnInitializePrintProvidor;
+
+    // Get us a handle to the loaded localspl.dll.
+    hLocalspl = GetModuleHandleW(L"localspl");
+    if (!hLocalspl)
+    {
+        skip("GetModuleHandleW failed with error %u!\n", GetLastError());
+        return FALSE;
+    }
+
+    // Get a pointer to its InitializePrintProvidor function.
+    pfnInitializePrintProvidor = (PInitializePrintProvidor)GetProcAddress(hLocalspl, "InitializePrintProvidor");
+    if (!pfnInitializePrintProvidor)
+    {
+        skip("GetProcAddress failed with error %u!\n", GetLastError());
+        return FALSE;
+    }
+
+    // Get localspl's function pointers.
+    if (!pfnInitializePrintProvidor(pp, sizeof(PRINTPROVIDOR), NULL))
+    {
+        skip("pfnInitializePrintProvidor failed with error %u!\n", GetLastError());
+        return FALSE;
+    }
+
+    return TRUE;
+}
+
 // Running the tests from the injected DLL and redirecting their output to the pipe.
 BOOL WINAPI
 DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)