GetPrinterで、プリンタ情報を取得する。
GetPrinter function (Winspool.h) - Win32 apps | Microsoft Docs
https://support.microsoft.com/ja-jp/help/140285/how-to-modify-printer-settings-by-using-setprinter
プリンタの設定変更となると、DEVMODEが必要となり、プリンタ情報(Level2)の取得が必要となる。
GetPrinterにNULLを渡して必要なサイズを取得して、サイズ分GlobalAllocして、ハンドルをGlobalLockして、GetPrinterでPRINTER_INFO_2を取得。
C:\Users\bg1\Documents\test>GetPrinter.exe Default Printer: EPSON PX-S06 Series hPrinter = 0x005bb57c dwNeeded = 8944 pi2->pDevMode->dmDeviceName = EPSON PX-S06 Series C:\Users\bg1\Documents\test>
こうやってデバイス名を取得出来たりする。
Sample/winapi/GetPrinter/GetPrinter/src/GetPrinter at master · bg1bgst333/Sample · GitHub