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()); + if (!GetLocalsplFuncs(&pp)) return; - } - - // Get a pointer to its InitializePrintProvidor function. - pfnInitializePrintProvidor = (PInitializePrintProvidor)GetProcAddress(hLocalspl, "InitializePrintProvidor"); - if (!pfnInitializePrintProvidor) - { - skip("GetProcAddress failed with error %lu!\n", GetLastError()); - 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)