Уважаемые, следующая проблема:
Функция PrintDlg не возвращает корректное значение бита PD_COLLATE поля Flags структуры PRINTDLG. Каким бы ни был установлен режим "разобрать по копиям" в диалоге, бит PD_COLLATE поля Flags возвращается нулевым. Как получить корректное значение этого режима после его установки пользователем?
msdn поясняет, что если PD_USEDEVMODECOPIESANDCOLLATE того же поля Flags установлен, то PD_COLLATE (и nCopies) не будут устанавливаться в структуре PRINTDLG, а сразу в hDevMode установятся dmCopies и dmCollate, если устройство их поддерживает. Но в том-то и дело, что в моем случае PD_USEDEVMODECOPIESANDCOLLATE не установлен.
Последовательность действий такая:
бит PD_USEDEVMODECOPIESANDCOLLATE устанавливается (и так установлен) в 0
бит PD_COLLATE устанавливается в 0 или 1 (всеравно)
Инициализируется диалог:
в нем Collate check box сначала почему-то всегда Checked
теперь Collate check box можно устанавливать в любое положение
Далее если:
диалог завершается через OK, то бит PD_COLLATE всегда 0
если
диалог завершается через Cancel, то поле Flags не изменяется.
Возможно мне неизвесны некие особенности настройки/вызова PrintDlg, Сеть на эту тему как-то невыразительна

.
Буду рад вашему совету или рекомендации где его найти.
//Работаю в Delphi5 под W2000, свою задачу решаю через API.