Этот код, встроенный в .Net для любой платформы ЦП и работающий на 64-разрядной машине, просто возвращает DialogResult of Cancel без отображения ожидаемого диалогового окна.
Dim dlg As New System.Windows.Forms.PrintDialog
If dlg.ShowDialog() = Windows.Forms.DialogResult.OK Then
'... print the document '
End If
Тем не менее, он отлично работает, когда приложение создано для платформы x86 и работает на 64-битной машине. Как вы можете отобразить диалог с 64-битной компиляцией?