You can obtain the current printer, or ask the user to select one, by using current-printer. You can ask the user about configuration by using the functions page-setup-dialog and print-dialog which display the standard Page Setup and Print dialogs.
You can pass the printer object (as returned by current-printer or print-dialog) to APIs with a printer argument, such as with-print-job, page-setup-dialog and print-dialog. The printer object itself is opaque but you can modify the configuration programmatically using set-printer-options.
CAPI User Guide and Reference Manual (Windows version) - 3 Aug 2017