网络打印机 获取默认纸张以及支持的纸张类型错误
软件的打印设置 是由“胖无极”的改造而来的,使用一直正常。
只是最近一旦在 网络打印机而且打印机类型比较新的情况下就会报错
============================================
============================================
//boolean of_getprinter(unsignedlong hpprinter,nvo_prnparam n_prnparam)
//获取打印机的属性信息
Printer_Info_2 lstr_info
blob pBackup
if not of_GetPrinter(hpPrinter, lstr_info) then return false
//打印机的DefaultSource、DefaultPaperSize、DefaultOrientation
if os = WIN9X then GetPrinter9xDM(lstr_info.pDevMode, n_prnparam)
if os = WINNT or os = WIN2K then GetPrinterNTDM(lstr_info.pDevMode, n_prnparam)
//调用第二次的原因: win98里, 好象内存的管理不同与win2k
//当发生CopyMem后, 内存的一些元素好象被释放掉了,为什么win2k没有这种情况?
//关注.
if not of_GetPrinter(hpPrinter, lstr_info) then return false
===================================
===================================
//boolean GetPrinterNTDM(unsignedlong a_pdevmode,nvo_prnparam n_prnparam)
//获取打印机的DefaultSource、DefaultPaperSize、DefaultOrientation
DevModeNT ldmnt
CopyMem(ldmnt, a_pDevMode, DEVMODENT_LEN) //此处报错
n_prnparam.DefaultSource = ldmnt.dmDefaultSource
n_prnparam.DefaultPaperSize = ldmnt.dmPaperSize
n_prnparam.DefaultOrientation = ldmnt.dmOrientation
return true