8 use vars qw(@ISA @EXPORT @EXPORT_OK);
14 my $module_declarations = {
15 "AddFormA" => ["long", ["long", "long", "ptr"]],
16 "AddFormW" => ["long", ["long", "long", "ptr"]],
17 "AddJobA" => ["long", ["long", "long", "ptr", "long", "ptr"]],
18 "AddJobW" => ["long", ["long", "long", "ptr", "long", "ptr"]],
19 "AddMonitorA" => ["long", ["str", "long", "ptr"]],
20 "AddPrinterA" => ["long", ["str", "long", "ptr"]],
21 "AddPrinterDriverA" => ["long", ["str", "long", "ptr"]],
22 "AddPrinterDriverW" => ["long", ["wstr", "long", "ptr"]],
23 "AddPrinterW" => ["long", ["wstr", "long", "ptr"]],
24 "ClosePrinter" => ["long", ["long"]],
25 "DeleteFormA" => ["long", ["long", "str"]],
26 "DeleteFormW" => ["long", ["long", "wstr"]],
27 "DeleteMonitorA" => ["long", ["str", "str", "str"]],
28 "DeletePortA" => ["long", ["str", "long", "str"]],
29 "DeletePrinter" => ["long", ["long"]],
30 "DeletePrinterDriverA" => ["long", ["str", "str", "str"]],
31 "DeviceCapabilities" => ["long", ["str", "str", "long", "str", "ptr"]],
32 "DeviceCapabilitiesA" => ["long", ["str", "str", "long", "str", "ptr"]],
33 "DeviceCapabilitiesW" => ["long", ["wstr", "wstr", "long", "wstr", "ptr"]],
34 "DocumentPropertiesA" => ["long", ["long", "long", "str", "ptr", "ptr", "long"]],
35 "DocumentPropertiesW" => ["long", ["long", "long", "wstr", "ptr", "ptr", "long"]],
36 "EnumJobsA" => ["long", ["long", "long", "long", "long", "ptr", "long", "ptr", "ptr"]],
37 "EnumJobsW" => ["long", ["long", "long", "long", "long", "ptr", "long", "ptr", "ptr"]],
38 "EnumPortsA" => ["long", ["str", "long", "ptr", "long", "ptr", "ptr"]],
39 "EnumPrinterDataExA" => ["long", ["long", "str", "ptr", "long", "ptr", "ptr"]],
40 "EnumPrinterDataExW" => ["long", ["long", "wstr", "ptr", "long", "ptr", "ptr"]],
41 "EnumPrinterDriversA" => ["long", ["str", "str", "long", "ptr", "long", "ptr", "ptr"]],
42 "EnumPrinterDriversW" => ["long", ["wstr", "wstr", "long", "ptr", "long", "ptr", "ptr"]],
43 "EnumPrintersA" => ["long", ["long", "str", "long", "ptr", "long", "ptr", "ptr"]],
44 "EnumPrintersW" => ["long", ["long", "wstr", "long", "ptr", "long", "ptr", "ptr"]],
45 "GetDefaultPrinterA" => ["long", ["str", "ptr"]],
46 "GetDefaultPrinterW" => ["long", ["wstr", "ptr"]],
47 "GetFormA" => ["long", ["long", "str", "long", "ptr", "long", "ptr"]],
48 "GetFormW" => ["long", ["long", "wstr", "long", "ptr", "long", "ptr"]],
49 "GetPrinterA" => ["long", ["long", "long", "ptr", "long", "ptr"]],
50 "GetPrinterDataA" => ["long", ["long", "str", "ptr", "ptr", "long", "ptr"]],
51 "GetPrinterDataExA" => ["long", ["long", "str", "str", "ptr", "ptr", "long", "ptr"]],
52 "GetPrinterDataExW" => ["long", ["long", "wstr", "wstr", "ptr", "ptr", "long", "ptr"]],
53 "GetPrinterDataW" => ["long", ["long", "wstr", "ptr", "ptr", "long", "ptr"]],
54 "GetPrinterDriverA" => ["long", ["long", "str", "long", "ptr", "long", "ptr"]],
55 "GetPrinterDriverDirectoryA" => ["long", ["str", "str", "long", "ptr", "long", "ptr"]],
56 "GetPrinterDriverDirectoryW" => ["long", ["wstr", "wstr", "long", "ptr", "long", "ptr"]],
57 "GetPrinterDriverW" => ["long", ["long", "wstr", "long", "ptr", "long", "ptr"]],
58 "GetPrinterW" => ["long", ["long", "long", "ptr", "long", "ptr"]],
59 "OpenPrinterA" => ["long", ["str", "ptr", "ptr"]],
60 "OpenPrinterW" => ["long", ["wstr", "ptr", "ptr"]],
61 "PrinterProperties" => ["long", ["long", "long"]],
62 "ReadPrinter" => ["long", ["long", "ptr", "long", "ptr"]],
63 "ResetPrinterA" => ["long", ["long", "ptr"]],
64 "ResetPrinterW" => ["long", ["long", "ptr"]],
65 "SetFormA" => ["long", ["long", "str", "long", "ptr"]],
66 "SetFormW" => ["long", ["long", "wstr", "long", "ptr"]],
67 "SetJobA" => ["long", ["long", "long", "long", "ptr", "long"]],
68 "SetJobW" => ["long", ["long", "long", "long", "ptr", "long"]],
69 "SetPrinterA" => ["long", ["long", "long", "ptr", "long"]],
70 "SetPrinterDataA" => ["long", ["long", "str", "long", "ptr", "long"]],
71 "SetPrinterDataExA" => ["long", ["long", "str", "str", "long", "ptr", "long"]],
72 "SetPrinterDataExW" => ["long", ["long", "wstr", "wstr", "long", "ptr", "long"]],
73 "SetPrinterDataW" => ["long", ["long", "wstr", "long", "ptr", "long"]],
74 "SetPrinterW" => ["long", ["long", "long", "ptr", "long"]],
75 "WritePrinter" => ["long", ["long", "ptr", "long", "ptr"]]
78 &wine::declare("winspool.drv",%$module_declarations);
79 push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));