Форум: "WinAPI";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
ВнизДлина имени принтера в DeviceMode Найти похожие ветки
← →
dmk © (2004-09-25 15:02) [0]Ограничение на длину имени принтера в WinApi - 32 знака.
Об этом говорит константа CCHDEVICENAME.
Пытаюсь создать информационный контекст с длиной имени
более 32 символов и функция возвращает 0.
Вот имя: "Microsoft Office Document Image Writer".
Но другие программы обходят как то обходят это.
Подскажите! Как решить проблему?
Нужен информационный контекст с параметрами принтера.
PrinterDC := CreateIC(nil, PChar(FPrnName), nil, PDeviceModeA(@FDevMode^));
← →
PGM_X (2004-09-25 23:26) [1]MSDN
lpszDriver
[in] Pointer to a null-terminated character string that specifies the name of the device driver (for example, Epson).
lpszDevice
[in] Pointer to a null-terminated character string that specifies the name of the specific output device being used, as shown by the Print Manager (for example, Epson FX-80). It is not the printer model name. The lpszDevice parameter must be used.
Может надо указывать первый параметр тоже? Формально здесь ограничений по длине для второго нет. Ограничения CCHDEVICENAME только в возвращаемой структуре DEVMODE. Полагаю dmSize в ней правильно инициализировано :-).
← →
dmk © (2004-09-26 14:29) [2]Первый и третий параметры совсем не обязательны.
>Ограничения CCHDEVICENAME только в возвращаемой структуре DEVMODE
Вот я про что и говорю! Если в DevMode имя принтера задано не полностью, то контекст не создается =(
← →
dmk © (2004-09-26 14:41) [3]>Формально здесь ограничений по длине для второго нет.
Так я про второй параметр и не говорю.
Структура DevMode тоже должна быть правильно заполнена.
Во! Нашел!!!!! =)
Оказывается я неправильно заполнял массив имени.
Нужно просто взять первые 32 символа имени и скопировать их
в dmDeviceName,а 32 символ не заполнять нулем, как делал я.
Тогда все работает.
Только вот странно, если в системе будет 2 принтера
с таким длинным и одинаковым именем, а окончание которое не влезает в 32 символа будет различаться, то сможет ли система определить нужный девайс?
← →
PGM_X (2004-09-27 00:06) [4]> Только вот странно, если в системе будет 2 принтера с таким длинным и одинаковым именем, а окончание которое не влезает в 32 символа будет различаться, то сможет ли система определить нужный девайс?
Так для этого наверное второй параметр и нужен? В нем-то огрвничений нет.
← →
dmk © (2004-09-27 02:49) [5]>Так для этого наверное второй параметр и нужен? В нем-то огрвничений нет.
Логично и достоверно.
В общем создал я 3 таких принтера - проблем пока не было.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.039 c