With this code, I get the default printer in Windows:
var DefaultPrinter: array[0..79] of Char;
Winapi.Windows.GetProfileString('windows', 'device', '', DefaultPrinter, SizeOf(DefaultPrinter) - 1);
// Result: "HP Color LaserJet MFP M477fdn,winspool,Ne09:"
But as soon as the user changes the printer setting in the IE Print Preview dialog, that is not the printer where IE will print to.
So how can I get the name of the printer set by the user in the IE Print Preview dialog?