Skip to content

Fix print dialog in Windows 11 and split out common dialogs to own packages#1243

Merged
blairmcg merged 1 commit into
masterfrom
blairmcg/printdialog
Dec 21, 2023
Merged

Fix print dialog in Windows 11 and split out common dialogs to own packages#1243
blairmcg merged 1 commit into
masterfrom
blairmcg/printdialog

Conversation

@blairmcg

Copy link
Copy Markdown
Contributor

Microsoft have made the Unified Print Dialog (UPD) the default in Windows 11. Although the UPD looks more in keeping with the general UI style of Windows 11, it (frankly) doesn't work very well for Win32 apps, e.g. the preview pane is always just blank and the page ranges, etc, don't respect the data passed in. The facility to change a setting such as the selected printer, Apply, and then Cancel, is also completely absent. The extensibility interfaces, IPrintDialogCallback and IPrintDialogServices, are also completely missing. For these reasons it makes sense to revert to the legacy dialog by default.

Implementation of IPrintDialogCallback for PRINTDLGEXW had been left as a TODO for some time. Also this doesn't buy much in and of itself, it was necessary to enable adoption of the new PrintDlgEx API, which has richer capabilities and has been the preferred API for many years (since Vista). Migration to use of Unicode was also missing from the printer dialog integration, so this has also been done.

Finally, all the separate common dialogs have now been split out into their own packages.

…ckages

Microsoft have made the Unified Print Dialog (UPD) the default in Windows
11. Although the UPD looks more in keeping with the general UI style of
Windows 11, it (frankly) doesn't work very well for Win32 apps, e.g. the
preview pane is always just blank and the page ranges, etc, don't respect
the data passed in. The facility to change a setting such as the selected
printer, Apply, and then Cancel, is also completely absent. The
extensibility interfaces, IPrintDialogCallback and IPrintDialogServices,
are also completely missing. For these reasons it makes sense to revert
to the legacy dialog by default.

Implementation of IPrintDialogCallback for PRINTDLGEXW had been left as
a TODO for some time. Also this doesn't buy much in and of itself, it was
necessary to enable adoption of the new PrintDlgEx API, which has richer
capabilities and has been the preferred API for many years (since Vista).
Migration to use of Unicode was also missing from the printer dialog
integration, so this has also been done.

Finally, all the separate common dialogs have now been split out into their
own packages.
@blairmcg blairmcg merged commit 2bd5e3d into master Dec 21, 2023
@blairmcg blairmcg deleted the blairmcg/printdialog branch December 21, 2023 08:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant