I have a small DLL that hooks into the spooler on windows platforms. It hooks the StartDocPrinter
function, with the result, that every time a print job hits the spooler my DLL is called. This DLL worked fine on all platforms before windows 8.
The DLL are also able to hook into the windows 8 spooler.
The DLL makes a TCP/IP connection to a service, that can run on the local machine or on a remote server.
The problem is:
On windows 8 there are two "desktops", the native Metro desktop and a Windows 7 alike desktop.
If the service runs on the same machine and I submit a print job from the Windows 7 alike desktop the print job enters the spooler, the DLL is called and is able to connect to the service, but if I submit a print job from the Metro desktop (f.ex. select print from the Internet explorer), the print job enters the spooler, the DLL is called but is not able to connect to the service and recieves an 10060 TCP/IP errorcode
.
If the service is on a remote server submitting print jobs from both desktops works fine.
When running the service locally, I have tried to use both 127.0.0.1
and the machines own IPV4 address, but the result is the same when submitting the print from the Metro desktop.
I have tried to disable the firewalls, but that does not solve the issue.
Anyone who knows what could cause this behavior?