{G|S}etPrinterData[Ex]
Huw D M Davies
h.davies1 at physics.ox.ac.uk
Fri Feb 2 07:59:49 CST 2001
Huw D M Davies <hdavies at codeweavers.com>
Implement Set/GetPrinterData[Ex].
Remove ordinals from winspool.drv.spec .
--
Dr. Huw D M Davies | Clarendon Laboratory
h.davies1 at physics.ox.ac.uk | Parks Road
Tel: +44 1865 272390 | Oxford OX1 3PU
Fax: +44 1865 272400 | UK
-------------- next part --------------
Index: include/winspool.h
===================================================================
RCS file: /home/wine/wine/include/winspool.h,v
retrieving revision 1.17
diff -u -r1.17 winspool.h
--- include/winspool.h 2000/07/23 13:38:08 1.17
+++ include/winspool.h 2001/02/02 13:47:27
@@ -957,11 +957,27 @@
LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
#define GetPrinterData WINELIB_NAME_AW(GetPrinterData)
+DWORD WINAPI GetPrinterDataExA(HANDLE hPrinter, LPSTR pKeyName,
+ LPSTR pValueName, LPDWORD pType,
+ LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
+DWORD WINAPI GetPrinterDataExW(HANDLE hPrinter, LPWSTR pKeyName,
+ LPWSTR pValueName, LPDWORD pType,
+ LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded);
+#define GetPrinterDataEx WINELIB_NAME_AW(GetPrinterDataEx)
+
DWORD WINAPI SetPrinterDataA(HANDLE hPrinter, LPSTR pValueName, DWORD Type,
LPBYTE pData, DWORD cbData);
DWORD WINAPI SetPrinterDataW(HANDLE hPrinter, LPWSTR pValueName, DWORD Type,
LPBYTE pData, DWORD cbData);
#define SetPrinterData WINELIB_NAME_AW(SetPrinterData)
+
+DWORD WINAPI SetPrinterDataExA(HANDLE hPrinter, LPSTR pKeyName,
+ LPSTR pValueName, DWORD Type,
+ LPBYTE pData, DWORD cbData);
+DWORD WINAPI SetPrinterDataExW(HANDLE hPrinter, LPWSTR pKeyName,
+ LPWSTR pValueName, DWORD Type,
+ LPBYTE pData, DWORD cbData);
+#define SetPrinterDataEx WINELIB_NAME_AW(SetPrinterDataEx)
DWORD WINAPI WaitForPrinterChange(HANDLE hPrinter, DWORD Flags);
HANDLE WINAPI FindFirstPrinterChangeNotification(HANDLE hPrinter,
Index: dlls/winspool/info.c
===================================================================
RCS file: /home/wine/wine/dlls/winspool/info.c,v
retrieving revision 1.30
diff -u -r1.30 info.c
--- dlls/winspool/info.c 2001/01/09 20:52:17 1.30
+++ dlls/winspool/info.c 2001/02/02 13:47:35
@@ -73,6 +73,8 @@
's','s','o','r',0};
static WCHAR Printer_DriverW[] = {'P','r','i','n','t','e','r',' ','D','r','i',
'v','e','r',0};
+static WCHAR PrinterDriverDataW[] = {'P','r','i','n','t','e','r','D','r','i',
+ 'v','e','r','D','a','t','a',0};
static WCHAR Separator_FileW[] = {'S','e','p','a','r','a','t','o','r',' ','F',
'i','l','e',0};
static WCHAR Share_NameW[] = {'S','h','a','r','e',' ','N','a','m','e',0};
@@ -151,6 +153,34 @@
return pOpenedPrinter;
}
+/******************************************************************
+ * WINSPOOL_GetOpenedPrinterRegKey
+ *
+ */
+static DWORD WINSPOOL_GetOpenedPrinterRegKey(HANDLE hPrinter, HKEY *phkey)
+{
+ LPOPENEDPRINTER lpOpenedPrinter = WINSPOOL_GetOpenedPrinter(hPrinter);
+ DWORD ret;
+ HKEY hkeyPrinters;
+
+ if(!lpOpenedPrinter)
+ return ERROR_INVALID_HANDLE;
+
+ if((ret = RegCreateKeyA(HKEY_LOCAL_MACHINE, Printers, &hkeyPrinters)) !=
+ ERROR_SUCCESS)
+ return ret;
+
+ if(RegOpenKeyW(hkeyPrinters, lpOpenedPrinter->lpsPrinterName, phkey)
+ != ERROR_SUCCESS) {
+ ERR("Can't find opened printer %s in registry\n",
+ debugstr_w(lpOpenedPrinter->lpsPrinterName));
+ RegCloseKey(hkeyPrinters);
+ return ERROR_INVALID_PRINTER_NAME; /* ? */
+ }
+ RegCloseKey(hkeyPrinters);
+ return ERROR_SUCCESS;
+}
+
/***********************************************************
* DEVMODEcpyAtoW
*/
@@ -2370,4 +2400,164 @@
{
FIXME("(%s,%ld,%p,%ld,%p,%p), stub!\n",name,level,ports,bufsize,bufneeded,bufreturned);
return FALSE;
+}
+
+/******************************************************************************
+ * SetPrinterDataExA (WINSPOOL)
+ */
+DWORD WINAPI SetPrinterDataExA(HANDLE hPrinter, LPSTR pKeyName,
+ LPSTR pValueName, DWORD Type,
+ LPBYTE pData, DWORD cbData)
+{
+ HKEY hkeyPrinter, hkeySubkey;
+ DWORD ret;
+
+ TRACE("(%08x, %s, %s %08lx, %p, %08lx)\n", hPrinter, debugstr_a(pKeyName),
+ debugstr_a(pValueName), Type, pData, cbData);
+
+ if((ret = WINSPOOL_GetOpenedPrinterRegKey(hPrinter, &hkeyPrinter))
+ != ERROR_SUCCESS)
+ return ret;
+
+ if((ret = RegCreateKeyA(hkeyPrinter, pKeyName, &hkeySubkey))
+ != ERROR_SUCCESS) {
+ ERR("Can't create subkey %s\n", debugstr_a(pKeyName));
+ RegCloseKey(hkeyPrinter);
+ return ret;
+ }
+ ret = RegSetValueExA(hkeySubkey, pValueName, 0, Type, pData, cbData);
+ RegCloseKey(hkeySubkey);
+ RegCloseKey(hkeyPrinter);
+ return ret;
+}
+
+/******************************************************************************
+ * SetPrinterDataExW (WINSPOOL)
+ */
+DWORD WINAPI SetPrinterDataExW(HANDLE hPrinter, LPWSTR pKeyName,
+ LPWSTR pValueName, DWORD Type,
+ LPBYTE pData, DWORD cbData)
+{
+ HKEY hkeyPrinter, hkeySubkey;
+ DWORD ret;
+
+ TRACE("(%08x, %s, %s %08lx, %p, %08lx)\n", hPrinter, debugstr_w(pKeyName),
+ debugstr_w(pValueName), Type, pData, cbData);
+
+ if((ret = WINSPOOL_GetOpenedPrinterRegKey(hPrinter, &hkeyPrinter))
+ != ERROR_SUCCESS)
+ return ret;
+
+ if((ret = RegCreateKeyW(hkeyPrinter, pKeyName, &hkeySubkey))
+ != ERROR_SUCCESS) {
+ ERR("Can't create subkey %s\n", debugstr_w(pKeyName));
+ RegCloseKey(hkeyPrinter);
+ return ret;
+ }
+ ret = RegSetValueExW(hkeySubkey, pValueName, 0, Type, pData, cbData);
+ RegCloseKey(hkeySubkey);
+ RegCloseKey(hkeyPrinter);
+ return ret;
+}
+
+/******************************************************************************
+ * SetPrinterDataA (WINSPOOL)
+ */
+DWORD WINAPI SetPrinterDataA(HANDLE hPrinter, LPSTR pValueName, DWORD Type,
+ LPBYTE pData, DWORD cbData)
+{
+ return SetPrinterDataExA(hPrinter, "PrinterDriverData", pValueName, Type,
+ pData, cbData);
+}
+
+/******************************************************************************
+ * SetPrinterDataW (WINSPOOL)
+ */
+DWORD WINAPI SetPrinterDataW(HANDLE hPrinter, LPWSTR pValueName, DWORD Type,
+ LPBYTE pData, DWORD cbData)
+{
+ return SetPrinterDataExW(hPrinter, PrinterDriverDataW, pValueName, Type,
+ pData, cbData);
+}
+
+/******************************************************************************
+ * GetPrinterDataExA (WINSPOOL)
+ */
+DWORD WINAPI GetPrinterDataExA(HANDLE hPrinter, LPSTR pKeyName,
+ LPSTR pValueName, LPDWORD pType,
+ LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded)
+{
+ HKEY hkeyPrinter, hkeySubkey;
+ DWORD ret;
+
+ TRACE("(%08x, %s, %s %p, %p, %08lx, %p)\n", hPrinter,
+ debugstr_a(pKeyName), debugstr_a(pValueName), pType, pData, nSize,
+ pcbNeeded);
+
+ if((ret = WINSPOOL_GetOpenedPrinterRegKey(hPrinter, &hkeyPrinter))
+ != ERROR_SUCCESS)
+ return ret;
+
+ if((ret = RegOpenKeyA(hkeyPrinter, pKeyName, &hkeySubkey))
+ != ERROR_SUCCESS) {
+ WARN("Can't open subkey %s\n", debugstr_a(pKeyName));
+ RegCloseKey(hkeyPrinter);
+ return ret;
+ }
+ *pcbNeeded = nSize;
+ ret = RegQueryValueExA(hkeySubkey, pValueName, 0, pType, pData, pcbNeeded);
+ RegCloseKey(hkeySubkey);
+ RegCloseKey(hkeyPrinter);
+ return ret;
+}
+
+/******************************************************************************
+ * GetPrinterDataExW (WINSPOOL)
+ */
+DWORD WINAPI GetPrinterDataExW(HANDLE hPrinter, LPWSTR pKeyName,
+ LPWSTR pValueName, LPDWORD pType,
+ LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded)
+{
+ HKEY hkeyPrinter, hkeySubkey;
+ DWORD ret;
+
+ TRACE("(%08x, %s, %s %p, %p, %08lx, %p)\n", hPrinter,
+ debugstr_w(pKeyName), debugstr_w(pValueName), pType, pData, nSize,
+ pcbNeeded);
+
+ if((ret = WINSPOOL_GetOpenedPrinterRegKey(hPrinter, &hkeyPrinter))
+ != ERROR_SUCCESS)
+ return ret;
+
+ if((ret = RegOpenKeyW(hkeyPrinter, pKeyName, &hkeySubkey))
+ != ERROR_SUCCESS) {
+ WARN("Can't open subkey %s\n", debugstr_w(pKeyName));
+ RegCloseKey(hkeyPrinter);
+ return ret;
+ }
+ *pcbNeeded = nSize;
+ ret = RegQueryValueExW(hkeySubkey, pValueName, 0, pType, pData, pcbNeeded);
+ RegCloseKey(hkeySubkey);
+ RegCloseKey(hkeyPrinter);
+ return ret;
+}
+
+/******************************************************************************
+ * GetPrinterDataA (WINSPOOL)
+ */
+DWORD WINAPI GetPrinterDataA(HANDLE hPrinter, LPSTR pValueName, LPDWORD pType,
+ LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded)
+{
+ return GetPrinterDataExA(hPrinter, "PrinterDriverData", pValueName, pType,
+ pData, nSize, pcbNeeded);
+}
+
+/******************************************************************************
+ * GetPrinterDataW (WINSPOOL)
+ */
+DWORD WINAPI GetPrinterDataW(HANDLE hPrinter, LPWSTR pValueName, LPDWORD pType,
+ LPBYTE pData, DWORD nSize, LPDWORD pcbNeeded)
+{
+ return GetPrinterDataExW(hPrinter, PrinterDriverDataW, pValueName, pType,
+ pData, nSize, pcbNeeded);
}
Index: dlls/winspool/winspool.drv.spec
===================================================================
RCS file: /home/wine/wine/dlls/winspool/winspool.drv.spec,v
retrieving revision 1.8
diff -u -r1.8 winspool.drv.spec
--- dlls/winspool/winspool.drv.spec 2000/11/29 18:38:25 1.8
+++ dlls/winspool/winspool.drv.spec 2001/02/02 13:47:35
@@ -9,126 +9,130 @@
debug_channels (winspool)
-101 stub ADVANCEDSETUPDIALOG
-102 stub AbortPrinter
-103 stdcall AddFormA(long long ptr) AddFormA
-104 stdcall AddFormW(long long ptr) AddFormW
-105 stdcall AddJobA(long long ptr long ptr) AddJobA
-106 stdcall AddJobW(long long ptr long ptr) AddJobW
-107 stdcall AddMonitorA(str long ptr) AddMonitorA
-108 stub AddMonitorW
-109 stub AddPortA
-110 stub AddPortExA
-111 stub AddPortExW
-112 stub AddPortW
-113 stub AddPrintProcessorA
-114 stub AddPrintProcessorW
-115 stub AddPrintProvidorA
-116 stub AddPrintProvidorW
-117 stdcall AddPrinterA(str long ptr) AddPrinterA
-118 stub AddPrinterConnectionA
-119 stub AddPrinterConnectionW
-120 stdcall AddPrinterDriverA(str long ptr) AddPrinterDriverA
-121 stdcall AddPrinterDriverW(wstr long ptr) AddPrinterDriverW
-122 stdcall AddPrinterW(wstr long ptr) AddPrinterW
-123 stub AdvancedDocumentPropertiesA
-124 stub AdvancedDocumentPropertiesW
-125 stub AdvancedSetupDialog
-126 stdcall ClosePrinter(long) ClosePrinter
-127 stub ConfigurePortA
-128 stub ConfigurePortW
-129 stub ConnectToPrinterDlg
-130 stub CreatePrinterIC
-131 stub DEVICECAPABILITIES
-132 stub DEVICEMODE
-133 stdcall DeleteFormA(long str) DeleteFormA
-134 stdcall DeleteFormW(long wstr) DeleteFormW
-135 stdcall DeleteMonitorA(str str str) DeleteMonitorA
-136 stub DeleteMonitorW
-137 stdcall DeletePortA(str long str) DeletePortA
-138 stub DeletePortW
-139 stub DeletePrintProcessorA
-140 stub DeletePrintProcessorW
-141 stub DeletePrintProvidorA
-142 stub DeletePrintProvidorW
-143 stdcall DeletePrinter(long) DeletePrinter
-144 stub DeletePrinterConnectionA
-145 stub DeletePrinterConnectionW
-146 stdcall DeletePrinterDriverA(str str str) DeletePrinterDriverA
-147 stub DeletePrinterDriverW
-148 stub DeletePrinterIC
-149 stub DevQueryPrint
-150 stdcall DeviceCapabilities(str str long ptr ptr) DeviceCapabilitiesA
-151 stdcall DeviceCapabilitiesA(str str long ptr ptr) DeviceCapabilitiesA
-152 stdcall DeviceCapabilitiesW(wstr wstr long wstr ptr) DeviceCapabilitiesW
-153 stub DeviceMode
-154 stub DocumentEvent
-155 stdcall DocumentPropertiesA(long long ptr ptr ptr long) DocumentPropertiesA
-156 stdcall DocumentPropertiesW(long long ptr ptr ptr long) DocumentPropertiesW
-157 stub EXTDEVICEMODE
-158 stub EndDocPrinter
-159 stub EndPagePrinter
-160 stub EnumFormsA
-161 stub EnumFormsW
-162 stdcall EnumJobsA(long long long long ptr long ptr ptr) EnumJobsA
-163 stdcall EnumJobsW(long long long long ptr long ptr ptr) EnumJobsW
-164 stub EnumMonitorsA
-165 stub EnumMonitorsW
-166 stdcall EnumPortsA(ptr long ptr ptr ptr ptr) EnumPortsA
-167 stub EnumPortsW
-168 stub EnumPrintProcessorDatatypesA
-169 stub EnumPrintProcessorDatatypesW
-170 stub EnumPrintProcessorsA
-171 stub EnumPrintProcessorsW
-172 stdcall EnumPrinterDriversA(str str long ptr long ptr ptr) EnumPrinterDriversA
-173 stdcall EnumPrinterDriversW(wstr wstr long ptr long ptr ptr) EnumPrinterDriversW
-174 stdcall EnumPrintersA(long ptr long ptr long ptr ptr) EnumPrintersA
-175 stdcall EnumPrintersW(long ptr long ptr long ptr ptr) EnumPrintersW
-176 stub ExtDeviceMode
-177 stub FindClosePrinterChangeNotification
-178 stub FindFirstPrinterChangeNotification
-179 stub FindNextPrinterChangeNotification
-180 stub FreePrinterNotifyInfo
-181 stdcall GetFormA(long str long ptr long ptr) GetFormA
-182 stdcall GetFormW(long wstr long ptr long ptr) GetFormW
-183 stub GetJobA
-184 stub GetJobW
-185 stub GetPrintProcessorDirectoryA
-186 stub GetPrintProcessorDirectoryW
-187 stdcall GetPrinterA(long long ptr long ptr) GetPrinterA
-188 stub GetPrinterDataA
-189 stub GetPrinterDataW
-190 stdcall GetPrinterDriverA(long str long ptr long ptr) GetPrinterDriverA
-191 stdcall GetPrinterDriverDirectoryA(str str long ptr long ptr) GetPrinterDriverDirectoryA
-192 stdcall GetPrinterDriverDirectoryW(wstr wstr long ptr long ptr) GetPrinterDriverDirectoryW
-193 stdcall GetPrinterDriverW(long str long ptr long ptr) GetPrinterDriverW
-194 stdcall GetPrinterW(long long ptr long ptr) GetPrinterW
-195 stub InitializeDll
-196 stdcall OpenPrinterA(str ptr ptr) OpenPrinterA
-197 stdcall OpenPrinterW(wstr ptr ptr) OpenPrinterW
-198 stub PlayGdiScriptOnPrinterIC
-199 stub PrinterMessageBoxA
-200 stub PrinterMessageBoxW
-201 stdcall PrinterProperties(long long) PrinterProperties
-202 stdcall ReadPrinter(long ptr long ptr) ReadPrinter
-203 stdcall ResetPrinterA(long ptr) ResetPrinterA
-204 stdcall ResetPrinterW(long ptr) ResetPrinterW
-205 stub ScheduleJob
-206 stub SetAllocFailCount
-207 stdcall SetFormA(long str long ptr) SetFormA
-208 stdcall SetFormW(long wstr long ptr) SetFormW
-209 stdcall SetJobA(long long long ptr long) SetJobA
-210 stdcall SetJobW(long long long ptr long) SetJobW
-211 stdcall SetPrinterA(long long ptr long) SetPrinterA
-212 stub SetPrinterDataA
-213 stub SetPrinterDataW
-214 stdcall SetPrinterW(long long ptr long) SetPrinterW
-215 stub SpoolerDevQueryPrintW
-216 stub SpoolerInit
-217 stub StartDocDlgA
-218 stub StartDocDlgW
-219 stub StartDocPrinterA
-220 stub StartDocPrinterW
-221 stub StartPagePrinter
-222 stub WaitForPrinterChange
-223 stdcall WritePrinter(long ptr long ptr) WritePrinter
+@ stub ADVANCEDSETUPDIALOG
+@ stub AbortPrinter
+@ stdcall AddFormA(long long ptr) AddFormA
+@ stdcall AddFormW(long long ptr) AddFormW
+@ stdcall AddJobA(long long ptr long ptr) AddJobA
+@ stdcall AddJobW(long long ptr long ptr) AddJobW
+@ stdcall AddMonitorA(str long ptr) AddMonitorA
+@ stub AddMonitorW
+@ stub AddPortA
+@ stub AddPortExA
+@ stub AddPortExW
+@ stub AddPortW
+@ stub AddPrintProcessorA
+@ stub AddPrintProcessorW
+@ stub AddPrintProvidorA
+@ stub AddPrintProvidorW
+@ stdcall AddPrinterA(str long ptr) AddPrinterA
+@ stub AddPrinterConnectionA
+@ stub AddPrinterConnectionW
+@ stdcall AddPrinterDriverA(str long ptr) AddPrinterDriverA
+@ stdcall AddPrinterDriverW(wstr long ptr) AddPrinterDriverW
+@ stdcall AddPrinterW(wstr long ptr) AddPrinterW
+@ stub AdvancedDocumentPropertiesA
+@ stub AdvancedDocumentPropertiesW
+@ stub AdvancedSetupDialog
+@ stdcall ClosePrinter(long) ClosePrinter
+@ stub ConfigurePortA
+@ stub ConfigurePortW
+@ stub ConnectToPrinterDlg
+@ stub CreatePrinterIC
+@ stub DEVICECAPABILITIES
+@ stub DEVICEMODE
+@ stdcall DeleteFormA(long str) DeleteFormA
+@ stdcall DeleteFormW(long wstr) DeleteFormW
+@ stdcall DeleteMonitorA(str str str) DeleteMonitorA
+@ stub DeleteMonitorW
+@ stdcall DeletePortA(str long str) DeletePortA
+@ stub DeletePortW
+@ stub DeletePrintProcessorA
+@ stub DeletePrintProcessorW
+@ stub DeletePrintProvidorA
+@ stub DeletePrintProvidorW
+@ stdcall DeletePrinter(long) DeletePrinter
+@ stub DeletePrinterConnectionA
+@ stub DeletePrinterConnectionW
+@ stdcall DeletePrinterDriverA(str str str) DeletePrinterDriverA
+@ stub DeletePrinterDriverW
+@ stub DeletePrinterIC
+@ stub DevQueryPrint
+@ stdcall DeviceCapabilities(str str long ptr ptr) DeviceCapabilitiesA
+@ stdcall DeviceCapabilitiesA(str str long ptr ptr) DeviceCapabilitiesA
+@ stdcall DeviceCapabilitiesW(wstr wstr long wstr ptr) DeviceCapabilitiesW
+@ stub DeviceMode
+@ stub DocumentEvent
+@ stdcall DocumentPropertiesA(long long ptr ptr ptr long) DocumentPropertiesA
+@ stdcall DocumentPropertiesW(long long ptr ptr ptr long) DocumentPropertiesW
+@ stub EXTDEVICEMODE
+@ stub EndDocPrinter
+@ stub EndPagePrinter
+@ stub EnumFormsA
+@ stub EnumFormsW
+@ stdcall EnumJobsA(long long long long ptr long ptr ptr) EnumJobsA
+@ stdcall EnumJobsW(long long long long ptr long ptr ptr) EnumJobsW
+@ stub EnumMonitorsA
+@ stub EnumMonitorsW
+@ stdcall EnumPortsA(ptr long ptr ptr ptr ptr) EnumPortsA
+@ stub EnumPortsW
+@ stub EnumPrintProcessorDatatypesA
+@ stub EnumPrintProcessorDatatypesW
+@ stub EnumPrintProcessorsA
+@ stub EnumPrintProcessorsW
+@ stdcall EnumPrinterDriversA(str str long ptr long ptr ptr) EnumPrinterDriversA
+@ stdcall EnumPrinterDriversW(wstr wstr long ptr long ptr ptr) EnumPrinterDriversW
+@ stdcall EnumPrintersA(long ptr long ptr long ptr ptr) EnumPrintersA
+@ stdcall EnumPrintersW(long ptr long ptr long ptr ptr) EnumPrintersW
+@ stub ExtDeviceMode
+@ stub FindClosePrinterChangeNotification
+@ stub FindFirstPrinterChangeNotification
+@ stub FindNextPrinterChangeNotification
+@ stub FreePrinterNotifyInfo
+@ stdcall GetFormA(long str long ptr long ptr) GetFormA
+@ stdcall GetFormW(long wstr long ptr long ptr) GetFormW
+@ stub GetJobA
+@ stub GetJobW
+@ stub GetPrintProcessorDirectoryA
+@ stub GetPrintProcessorDirectoryW
+@ stdcall GetPrinterA(long long ptr long ptr) GetPrinterA
+@ stdcall GetPrinterDataA(long str ptr ptr long ptr) GetPrinterDataA
+@ stdcall GetPrinterDataExA(long str str ptr ptr long ptr) GetPrinterDataExA
+@ stdcall GetPrinterDataExW(long wstr wstr ptr ptr long ptr) GetPrinterDataExW
+@ stdcall GetPrinterDataW(long wstr ptr ptr long ptr) GetPrinterDataW
+@ stdcall GetPrinterDriverA(long str long ptr long ptr) GetPrinterDriverA
+@ stdcall GetPrinterDriverDirectoryA(str str long ptr long ptr) GetPrinterDriverDirectoryA
+@ stdcall GetPrinterDriverDirectoryW(wstr wstr long ptr long ptr) GetPrinterDriverDirectoryW
+@ stdcall GetPrinterDriverW(long str long ptr long ptr) GetPrinterDriverW
+@ stdcall GetPrinterW(long long ptr long ptr) GetPrinterW
+@ stub InitializeDll
+@ stdcall OpenPrinterA(str ptr ptr) OpenPrinterA
+@ stdcall OpenPrinterW(wstr ptr ptr) OpenPrinterW
+@ stub PlayGdiScriptOnPrinterIC
+@ stub PrinterMessageBoxA
+@ stub PrinterMessageBoxW
+@ stdcall PrinterProperties(long long) PrinterProperties
+@ stdcall ReadPrinter(long ptr long ptr) ReadPrinter
+@ stdcall ResetPrinterA(long ptr) ResetPrinterA
+@ stdcall ResetPrinterW(long ptr) ResetPrinterW
+@ stub ScheduleJob
+@ stub SetAllocFailCount
+@ stdcall SetFormA(long str long ptr) SetFormA
+@ stdcall SetFormW(long wstr long ptr) SetFormW
+@ stdcall SetJobA(long long long ptr long) SetJobA
+@ stdcall SetJobW(long long long ptr long) SetJobW
+@ stdcall SetPrinterA(long long ptr long) SetPrinterA
+@ stdcall SetPrinterDataA(long str long ptr long) SetPrinterDataA
+@ stdcall SetPrinterDataExA(long str str long ptr long) SetPrinterDataExA
+@ stdcall SetPrinterDataExW(long wstr wstr long ptr long) SetPrinterDataExW
+@ stdcall SetPrinterDataW(long wstr long ptr long) SetPrinterDataW
+@ stdcall SetPrinterW(long long ptr long) SetPrinterW
+@ stub SpoolerDevQueryPrintW
+@ stub SpoolerInit
+@ stub StartDocDlgA
+@ stub StartDocDlgW
+@ stub StartDocPrinterA
+@ stub StartDocPrinterW
+@ stub StartPagePrinter
+@ stub WaitForPrinterChange
+@ stdcall WritePrinter(long ptr long ptr) WritePrinter
More information about the wine-patches
mailing list