When using Print::StartPrintJob with a PrinterMode object, duplex remains set on default value for the printer settings, and printing is done without considering PrinterMode.SetDuplexing function value.
PrinterMode pm;
pm.SetDuplexing(PrinterMode::e_Duplex_None);
Print::StartPrintJob(Document, PrinterName.GetString(),
PrinterJob.GetString(), “”, &PageSet, &printerMode, false);
//if default for printer is duplex, document is printed in duplex mode, and without duplex as set by the funcion call.
The Duplex setting is no longer supported in Windows PC with XPS print path (all modern versions).
The best option would be to ignore Duplex setting initially, and instead to Print to a virtual printer, such as Microsoft Print to PDF, or Microsoft XPS Document Writer, and then send that PDF/XPS output to the printer yourself using MS APIs.