From a4d50f82ff60558596ed8976b62140283f8c01c3 Mon Sep 17 00:00:00 2001 From: Colin Finck Date: Fri, 19 Jun 2015 15:05:58 +0000 Subject: [PATCH 1/1] [LOCALSPL_APITEST] 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 --- .../apitests/localspl/dll/fpEnumPrinters.c | 26 ++------------- rostests/apitests/localspl/dll/main.c | 32 +++++++++++++++++++ 2 files changed, 35 insertions(+), 23 deletions(-) diff --git a/rostests/apitests/localspl/dll/fpEnumPrinters.c b/rostests/apitests/localspl/dll/fpEnumPrinters.c index cbe75739c9a..82cb5e7a8a6 100644 --- a/rostests/apitests/localspl/dll/fpEnumPrinters.c +++ b/rostests/apitests/localspl/dll/fpEnumPrinters.c @@ -18,40 +18,20 @@ #include "../localspl_apitest.h" #include +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; diff --git a/rostests/apitests/localspl/dll/main.c b/rostests/apitests/localspl/dll/main.c index 0a0e1b1c62d..fc63db4d83b 100644 --- a/rostests/apitests/localspl/dll/main.c +++ b/rostests/apitests/localspl/dll/main.c @@ -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) -- 2.17.1