โครงสร้างของDEVNAMESมีแบบฟอร์มต่อไปนี้:
typedef struct tagDEVNAMES { / * dvnm * /
nbsp WORD wDriverOffset
WORD wDeviceOffset
WORD wOutputOffset
WORD wDefault
/ * สายอักขระที่มีโปรแกรมควบคุม อุปกรณ์ และ ชื่อพอร์ตทำตาม wDefault * /
} DEVNAMES(&N)
โครงสร้างของDEVNAMESประกอบด้วยสตริงที่ระบุโปรแกรมควบคุม อุปกรณ์ และพอร์ตแสดงผลชื่อสำหรับเครื่องพิมพ์ ฟังก์ชันPrintDlgใช้สตริงการเหล่าสมาชิกในกล่องโต้ตอบพิมพ์กำหนดโดยระบบการเตรียมใช้งาน เมื่อผู้ใช้ ปิดกล่องโต้ตอบข้อมูลเกี่ยวกับเครื่องพิมพ์ที่เลือกจะถูกส่งกลับในโครงสร้างนี้?
สมาชิก
wDriverOffset
(Input/Output) ระบุตรงข้ามกับสตริงที่สิ้นสุดด้วยค่า null ที่ประกอบด้วยชื่อแฟ้ม (ไม่ มีส่วนขยาย) ของโปรแกรมควบคุมอุปกรณ์ ในการป้อนข้อมูล สายนี้ถูกใช้เพื่อกำหนดเครื่องพิมพ์เพื่อให้แสดงในกล่องโต้ตอบการเริ่มต้นด้วย?
wDeviceOffset
(Input/Output) ออฟเซตไปสิ้นสุดด้วย null สตริง (สูงสุด 32 ไบต์รวมทั้งเป็น null) ที่ประกอบด้วยชื่อของอุปกรณ์ระบุ ข้อความนี้ต้องเหมือนกับสมาชิกdmDeviceNameของโครงสร้างข้อมูล DEVMODE?
wOutputOffset
(Input/Output) ระบุออฟเซตไปสิ้นสุดด้วย null สายที่ประกอบด้วยชื่ออุปกรณ์ DOS สำหรับสื่อที่ผลผลิตทางกายภาพ (พอร์ตของผลผลิต)?
wDefault
ระบุว่า สายอักขระมีอยู่ในโครงสร้างการDEVNAMESระบุเครื่องพิมพ์เริ่มต้น ข้อความนี้ใช้เพื่อตรวจสอบว่า เครื่องพิมพ์เริ่มต้นมีการเปลี่ยนแปลงเนื่องจากการดำเนินการพิมพ์ล่าสุดไม่ ในการป้อนข้อมูล หากถูกตั้งค่าสถานะDN_DEFAULTPRNค่าอื่น ๆ ที่เกิดขึ้นในโครงสร้างแบบDEVNAMESจะถูกตรวจสอบเทียบกับเครื่องพิมพ์เริ่มต้นปัจจุบัน ถ้าของสายอักขระไม่ตรงกัน ข้อความเตือนจะแสดงการแจ้งให้ผู้ใช้ที่เอกสารอาจต้องถูกฟอร์แมต บนผลผลิต สมาชิกwDefaultจะเปลี่ยนแปลงเฉพาะเมื่อกล่องโต้ตอบการตั้งค่าการพิมพ์แสดง และผู้ใช้ที่เลือกปุ่ม'ตกลง' กำหนดค่าสถานะDN_DEFAULTPRNถ้ามีเลือกเครื่องพิมพ์เริ่มต้น ถ้ามีเลือกเครื่องพิมพ์เฉพาะ ค่าสถานะไม่ได้ตั้งค่า บิตอื่น ๆ ทั้งหมดในสมาชิกนี้สงวนไว้สำหรับการใช้ภายใน โดยขั้นตอนในกล่องโต้ตอบการพิมพ์?
ดูเพิ่มเติมnbspCPrintDialog::CreatePrinterDC(&N)