I'm not sure what's the best way of registering print processor. The alternative is to register winprint in winspool when driver is added.
-- v2: winprint: Register winprint print processor.
From: Piotr Caban piotr@codeweavers.com
--- dlls/winprint/printproc.c | 7 +++++++ dlls/winprint/winprint.spec | 1 + loader/wine.inf.in | 1 + 3 files changed, 9 insertions(+)
diff --git a/dlls/winprint/printproc.c b/dlls/winprint/printproc.c index d7d9cce9d93..c984aa89c44 100644 --- a/dlls/winprint/printproc.c +++ b/dlls/winprint/printproc.c @@ -193,3 +193,10 @@ BOOL WINAPI ClosePrintProcessor(HANDLE pp) LocalFree(data); return TRUE; } + +HRESULT WINAPI DllRegisterServer(void) +{ + AddPrintProcessorW(NULL, (WCHAR *)L"Windows 4.0", (WCHAR *)L"winprint.dll", (WCHAR *)L"winprint"); + AddPrintProcessorW(NULL, NULL, (WCHAR *)L"winprint.dll", (WCHAR *)L"winprint"); + return S_OK; +} diff --git a/dlls/winprint/winprint.spec b/dlls/winprint/winprint.spec index b7b4642b695..5389f678528 100644 --- a/dlls/winprint/winprint.spec +++ b/dlls/winprint/winprint.spec @@ -1,3 +1,4 @@ +@ stdcall -private DllRegisterServer() @ stdcall ClosePrintProcessor(ptr) @ stdcall ControlPrintProcessor(ptr long) @ stdcall EnumPrintProcessorDatatypesW(ptr ptr long ptr long ptr ptr) diff --git a/loader/wine.inf.in b/loader/wine.inf.in index 127d1f9ad6a..32a74a5950e 100644 --- a/loader/wine.inf.in +++ b/loader/wine.inf.in @@ -2077,6 +2077,7 @@ HKLM,%CurrentVersion%\Telephony\Country List\998,"SameAreaRule",,"G" 11,,winegstreamer.dll,1 11,,wineqtdecoder.dll,1 11,,winevulkan.dll,1 +55,,winprint.dll,1 11,,wintrust.dll,1 11,,iexplore.exe,1
On Mon Dec 5 16:26:52 2022 +0000, Huw Davies wrote:
Could we add a `DllRegisterServer` to `winprint.dll`?
I've pushed a version that uses DllRegisterServer for print processor registration. I've added also the registration for "Windows 4.0" case so printing doesn't break when one changes windows version. It depends on AddPrintProcessor() patch (MR !1672).
This merge request was approved by Huw Davies.