Save As dialog box is displayed behind the application that's printing to the XPS Document Writer
- You run a 32-bit application on a 64-bit version of Windows 7.
- You print from the application to a Microsoft XPS Document Writer (MXDW) printer.
Additionally, you may experience the following symptoms:
- The application seems to stop responding (hang) until you enter a file name or cancel the printing task.
- The application that's printing doesn't become the foreground (active) application when the Save As dialog box is closed.
Note This problem may also occur when you print to a different printer whose driver displays the Save As dialog box or another modal dialog box. The printer driver for the Adobe PDF printer is this type of driver.
A 32-bit process cannot load 64-bit DLLs. Therefore, 64-bit versions of Windows support printing from 32-bit processes through the Splwow64.exe process. Splwow64.exe is a 64-bit process that can load 64-bit printer drivers and that handles printing on behalf of 32-bit processes.
When an application calls the StartDoc function to print to the XPS Document Writer printer, the XPS Document Writer printer driver displays a Save As dialog box so that users can specify the name and location of the XPS file. The owner window of the dialog box is typically the active window of the thread that is calling the StartDoc function, and the dialog box will appear over the active window.
When a 32-bit application calls the StartDoc function on a 64-bit version of Windows, the Splwow64.exe process calls in to the XPS Document Writer printer driver on behalf of the 32-bit application. In this scenario, the Save As dialog box is unowned because the thread in the Splwow64.exe process does not have an active window. The dialog box may appear behind the application that is printing because the Splwow64.exe process does not have permission to set the foreground window. Also, since the dialog is unowned, the application that called the StartDoc function may not become the foreground application when the dialog is closed.
The StartDoc call does not return until the dialog box is dismissed, so the application may seem to stop responding.
The Save As dialog box has its own button in the Windows Explorer taskbar if it is created by the Splwow64.exe process. This is because the dialog box is unowned. The taskbar button also flashes when the Splwow64.exe process cannot set the foreground window.
The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, about the performance or reliability of these products.
Article ID: 2567869 - Last Review: 08/25/2016 19:52:00 - Revision: 4.0