2000-05-14 18:05:10 +04:00
module spool
struct BUFFER5 {
uint32 buf_len;
2000-05-16 15:55:06 +04:00
uint16 buffer[buf_len];
2000-05-14 18:05:10 +04:00
};
2000-05-16 16:43:53 +04:00
struct BUFFERP {
uint32 buf_len;
BUFFER5 *buf;
};
2000-05-14 18:05:10 +04:00
struct UNISTR2 {
uint32 max_len;
uint32 undoc;
uint32 str_len;
2000-05-16 15:55:06 +04:00
uint16 buffer[str_len];
2000-05-14 18:05:10 +04:00
};
2000-05-16 16:43:53 +04:00
struct LPWSTR {
UNISTR2 *str;
};
struct VERSION {
uint32 version;
uint32 build;
uint32 osversion;
2000-05-14 18:05:10 +04:00
};
struct NTTIME {
uint32 low;
uint32 high;
};
2000-05-16 16:43:53 +04:00
struct DWORD {
uint32 x;
};
2000-05-14 18:05:10 +04:00
struct PRINTER_DRIVER_INFO_LEVEL_3 {
2000-05-16 16:43:53 +04:00
DWORD cversion;
LPWSTR name;
LPWSTR environment;
LPWSTR driverpath;
LPWSTR datafile;
LPWSTR configfile;
LPWSTR helpfile;
LPWSTR monitorname;
LPWSTR defaultdatatype;
BUFFERP dependentfiles;
2000-05-14 18:05:10 +04:00
};
struct PRINTER_DRIVER_INFO_LEVEL_6 {
2000-06-09 06:59:50 +04:00
DWORD dummy1;
DWORD version;
LPWSTR name;
LPWSTR environment;
LPWSTR driverpath;
LPWSTR datafile;
LPWSTR configfile;
LPWSTR helpfile;
LPWSTR monitorname;
LPWSTR defaultdatatype;
BUFFERP dependentfiles;
BUFFERP previousnames;
NTTIME driverdate;
VERSION driverversion;
LPWSTR mfgname;
LPWSTR oemurl;
LPWSTR hardwareid;
LPWSTR provider;
2000-05-14 18:05:10 +04:00
};
struct PRINTER_DRIVER_INFO {
uint32 level;
2000-05-15 17:41:05 +04:00
union *info[level] {
2000-05-14 18:05:10 +04:00
case 3 PRINTER_DRIVER_INFO_LEVEL_3 info_3;
case 6 PRINTER_DRIVER_INFO_LEVEL_6 info_6;
}
};
2000-05-16 15:55:06 +04:00
struct R_GETPRINTERDATA {
uint32 type;
uint32 size;
uint8 *data;
uint32 needed;
uint32 status;
};