PRINTDLG

PRINTDLG構造体で、簡単な設定変更が出来る。

PRINTDLGA (commdlg.h) - Win32 apps | Microsoft Docs

ページ範囲を指定して印刷ぐらいなら、PRINTDLGでセットできる。

pd.FlagsにPD_PAGENUMSを追加し、1ページ目から4ページ目まである中の、2ページ目から3ページ目までを印刷する。
StartPageは、2ページ印刷するので、2回でいいみたい。(ここがわからないけど、今のところこれで成功したので。)

印刷開始
印刷開始

印刷開始。

PD_PAGENUMSを付けないと、ページ指定にならないので注意。
PD_PAGENUMSを付けないと、ページ指定にならないので注意。

PD_PAGENUMSを付けないと、ページ指定にならないので注意。

2ページ分印刷された
2ページ分印刷された

2ページ分印刷された。

Sample/winapi/PRINTDLG_struct/PRINTDLG_struct/src/PRINTDLG_struct at master · bg1bgst333/Sample · GitHub