Dalam Artikel API MSDN, dikatakan:
Sedikit bendera. Jika Anda menyetel tanda PRINTER_NOTIFY_OPTIONS_REFRESH dalam panggilan ke fungsi FindNextPrinterChangeNotification, fungsi tersebut menyediakan data terkini untuk semua bidang informasi printer yang dipantau. Fungsi FindFirstPrinterChangeNotification mengabaikan anggota Flags.
Namun, saya tidak dapat menemukan API mana pun yang menunjukkan nilai bendera PRINTER_NOTIFY_OPTIONS_REFRESH
. Ini adalah struktur saya:
[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);
}
}
Bagaimana cara menetapkan nilai dwFlags sesuai dengan dokumentasi API? Juga ada banyak tanda lain dalam dokumen yang tidak memiliki nilai juga. Di mana mereka disimpan?