ตั้งค่าสถานะสำหรับ Print Spooler API ใน C # หรือไม่

ในบทความ MSDN API, มันบอกว่า:

ฟันธงหน่อย.. หากคุณตั้งค่าสถานะ PRINTER_NOTIFY_OPTIONS_REFRESH ในการเรียกฟังก์ชัน FindNextPrinterChangeNotification ฟังก์ชันนี้จะให้ข้อมูลปัจจุบันสำหรับฟิลด์ข้อมูลเครื่องพิมพ์ที่ได้รับการตรวจสอบทั้งหมด ฟังก์ชัน FindFirstPrinterChangeNotification ละเว้นสมาชิกค่าสถานะ

อย่างไรก็ตาม ฉันไม่พบ API ใดที่บอกค่าของแฟล็ก PRINTER_NOTIFY_OPTIONS_REFRESH ได้ นี่คือโครงสร้างของฉัน:

[StructLayout(LayoutKind.Sequential)]
public class PRINTER_NOTIFY_OPTIONS
{
    public int dwVersion = 2;
    public int dwFlags;
    public int Count = 2;
    public IntPtr lpTypes;

    public PRINTER_NOTIFY_OPTIONS()
    {
        int bytesNeeded = (2 + PRINTER_NOTIFY_OPTIONS_TYPE.JOB_FIELDS_COUNT + PRINTER_NOTIFY_OPTIONS_TYPE.PRINTER_FIELDS_COUNT) * 2;
        PRINTER_NOTIFY_OPTIONS_TYPE pJobTypes = new PRINTER_NOTIFY_OPTIONS_TYPE();
        lpTypes = Marshal.AllocHGlobal(bytesNeeded);
        Marshal.StructureToPtr(pJobTypes, lpTypes, true);
    }
}

ฉันจะตั้งค่า dwFlags ตามเอกสาร API ได้อย่างไร นอกจากนี้ยังมีแฟล็กอื่นๆ อีกมากมายในเอกสารที่ไม่มีค่าเช่นกัน พวกเขาเก็บไว้ที่ไหน?


person Luke Vo    schedule 11.01.2016    source แหล่งที่มา


คำตอบ (1)


ที่ด้านล่างของเอกสาร คุณจะอ้างถึง:

ส่วนหัว: Winspool.h

สำเนาไฟล์นี้ของคุณน่าจะอยู่ใน C:\Program Files (x86)\Windows Kits\8.1\Include\um

เปิดในโปรแกรมแก้ไขข้อความแล้วค้นหาค่าคงที่ คุณจะเห็นค่าของมันคือ 1

#define PRINTER_NOTIFY_OPTIONS_REFRESH  0x01

หากคุณไม่มีไฟล์ส่วนหัว คุณสามารถติดตั้ง Windows SDK หรือเพียงแค่ google สำหรับ "define PRINTER_NOTIFY_OPTIONS_REFRESH"

person Alex K.    schedule 11.01.2016
comment
เย็น! ขอบคุณสำหรับเคล็ดลับของ Google ฉันลองใช้ชื่อธงบน Google แล้ว แต่ไม่พบอะไรเลย - person Luke Vo; 11.01.2016
comment
ฉันขอถามอีกหนึ่งคำถามได้ไหม? ในการอ้างอิงระบุว่าไฟล์ DLL คือ Spoolss.dll อย่างไรก็ตาม ถ้าฉันใช้ [DllImport("winspool.drv"... มันใช้งานได้ แต่ [DllImport("Spoolss.dll"... มันไม่ทำงานเหรอ? - person Luke Vo; 11.01.2016
comment
นั่นคือที่ที่ฟังก์ชันถูกใช้งาน คุณเรียกมันผ่าน Winspool.drv ซึ่งเป็นอินเทอร์เฟซไคลเอนต์ไปยังระบบตัวจัดคิว - person Alex K.; 11.01.2016
comment
ฉันเห็น. ขอบคุณมาก! - person Luke Vo; 11.01.2016