peOutputDestination = PRINT_TO_PRINTER_NO_DIALOG means printing to the default printer
peOutputDestination = PRINT_TO_PRINTER means using the print dialog when the psPrinterName hasn't been set or is not set to a correct / existing printer (phPrintDlg must be zero).

If above does not resolve the problem, tell use if (and what) values are used for piFlags of the print dialog object (phoPrintDialog)