Stub implementations for AbortPrinter, AddPortEx{A,W},
AddPrinterConnection{A,W}, ConnectToPrinterDlg,
DeletePrinterConnection{A,W}, EnumForms{A,W}, EnumPrinterData{A,W],
ExtDeviceMode, Find{Close,First,Next}PrinterChangeNotification,
FreePrinterNotifyInfo, ScheduleJob.

diff --git a/dlls/winspool/info.c b/dlls/winspool/info.c
index ff5686f..44370a1 100644
--- a/dlls/winspool/info.c
+++ b/dlls/winspool/info.c
@@ -3923,6 +3923,15 @@
 }
 
 /******************************************************************************
+ *      AbortPrinter (WINSPOOL.@)
+ */
+BOOL WINAPI AbortPrinter( HANDLE hPrinter )
+{
+    FIXME("(%p), stub!\n", hPrinter);
+    return TRUE;
+}
+
+/******************************************************************************
  *		AddPortA (WINSPOOL.@)
  */
 BOOL WINAPI AddPortA(LPSTR pName, HWND hWnd, LPSTR pMonitorName)
@@ -3941,6 +3950,48 @@
 }
 
 /******************************************************************************
+ *             AddPortExA (WINSPOOL.@)
+ *
+ * Adds a print spooler port without presenting a user interface.
+ */
+BOOL WINAPI AddPortExA(HANDLE hMonitor, LPSTR pName, DWORD Level, LPBYTE lpBuffer, LPSTR lpMonitorName)
+{
+    FIXME("(%p, %s, %ld, %p, %s), stub!\n",hMonitor, debugstr_a(pName), Level,
+          lpBuffer, debugstr_a(lpMonitorName));
+    return FALSE;
+}
+
+/******************************************************************************
+ *             AddPortExW (WINSPOOL.@)
+ *
+ * See AddPortExW.
+ */
+BOOL WINAPI AddPortExW(HANDLE hMonitor, LPWSTR pName, DWORD Level, LPBYTE lpBuffer, LPWSTR lpMonitorName)
+{
+    FIXME("(%p, %s, %ld, %p, %s), stub!\n", hMonitor, debugstr_w(pName), Level,
+          lpBuffer, debugstr_w(lpMonitorName));
+    return FALSE;
+}
+
+/******************************************************************************
+ *      AddPrinterConnectionA (WINSPOOL.@)
+ */
+BOOL WINAPI AddPrinterConnectionA( LPSTR pName )
+{
+    FIXME("%s\n", debugstr_a(pName));
+    return FALSE;
+}
+
+/******************************************************************************
+ *      AddPrinterConnectionW (WINSPOOL.@)
+ */
+BOOL WINAPI AddPrinterConnectionW( LPWSTR pName )
+{
+    FIXME("%s\n", debugstr_w(pName));
+    return FALSE;
+}
+
+/******************************************************************************
  *		AddPrinterDriverExW (WINSPOOL.@)
  */
 BOOL WINAPI AddPrinterDriverExW( LPWSTR pName, DWORD Level,
@@ -3983,6 +4034,33 @@
 }
 
 /******************************************************************************
+ *      ConnectToPrinterDlg (WINSPOOL.@)
+ */
+HANDLE WINAPI ConnectToPrinterDlg( HWND hWnd, DWORD Flags )
+{
+    FIXME("%p %lx\n", hWnd, Flags);
+    return NULL;
+}
+
+/******************************************************************************
+ *      DeletePrinterConnectionA (WINSPOOL.@)
+ */
+BOOL WINAPI DeletePrinterConnectionA( LPSTR pName )
+{
+    FIXME("%s\n", debugstr_a(pName));
+    return TRUE;
+}
+
+/******************************************************************************
+ *      DeletePrinterConnectionW (WINSPOOL.@)
+ */
+BOOL WINAPI DeletePrinterConnectionW( LPWSTR pName )
+{
+    FIXME("%s\n", debugstr_w(pName));
+    return TRUE;
+}
+
+/******************************************************************************
  *		DeletePrinterDriverExW (WINSPOOL.@)
  */
 BOOL WINAPI DeletePrinterDriverExW( LPWSTR pName, LPWSTR pEnvironment,
@@ -4066,6 +4144,26 @@
     return TRUE;
 }
 
+/******************************************************************************
+ *      EnumFormsA (WINSPOOL.@)
+ */
+BOOL WINAPI EnumFormsA( HANDLE hPrinter, DWORD Level, LPBYTE pForm,
+    DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned )
+{
+    FIXME("%p %lx %p %lx %p %p\n", hPrinter, Level, pForm, cbBuf, pcbNeeded, pcReturned);
+    return FALSE;
+}
+
+/******************************************************************************
+ *      EnumFormsW (WINSPOOL.@)
+ */
+BOOL WINAPI EnumFormsW( HANDLE hPrinter, DWORD Level, LPBYTE pForm,
+    DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned )
+{
+    FIXME("%p %lx %p %lx %p %p\n", hPrinter, Level, pForm, cbBuf, pcbNeeded, pcReturned);
+    return FALSE;
+}
+
 /*****************************************************************************
  *          EnumMonitorsA [WINSPOOL.@]
  *
@@ -4109,6 +4207,32 @@
 }
 
 /*****************************************************************************
+ *          EnumPrinterDataA [WINSPOOL.@]
+ *
+ */
+DWORD WINAPI EnumPrinterDataA( HANDLE hPrinter, DWORD dwIndex, LPSTR pValueName,
+    DWORD cbValueName, LPDWORD pcbValueName, LPDWORD pType, LPBYTE pData,
+    DWORD cbData, LPDWORD pcbData )
+{
+    FIXME("%p %lx %p %lx %p %p %p %lx %p\n", hPrinter, dwIndex, pValueName,
+          cbValueName, pcbValueName, pType, pData, cbData, pcbData);
+    return ERROR_NO_MORE_ITEMS;
+}
+
+/*****************************************************************************
+ *          EnumPrinterDataW [WINSPOOL.@]
+ *
+ */
+DWORD WINAPI EnumPrinterDataW( HANDLE hPrinter, DWORD dwIndex, LPWSTR pValueName,
+    DWORD cbValueName, LPDWORD pcbValueName, LPDWORD pType, LPBYTE pData,
+    DWORD cbData, LPDWORD pcbData )
+{
+    FIXME("%p %lx %p %lx %p %p %p %lx %p\n", hPrinter, dwIndex, pValueName,
+          cbValueName, pcbValueName, pType, pData, cbData, pcbData);
+    return ERROR_NO_MORE_ITEMS;
+}
+
+/*****************************************************************************
  *          EnumPrintProcessorDatatypesA [WINSPOOL.@]
  *
  */
@@ -4162,6 +4286,64 @@
 }
 
 /*****************************************************************************
+ *          ExtDeviceMode [WINSPOOL.@]
+ *
+ */
+LONG WINAPI ExtDeviceMode( HWND hWnd, HANDLE hInst, LPDEVMODEA pDevModeOutput,
+    LPSTR pDeviceName, LPSTR pPort, LPDEVMODEA pDevModeInput, LPSTR pProfile,
+    DWORD fMode)
+{
+    FIXME("Stub: %p %p %p %s %s %p %s %lx\n", hWnd, hInst, pDevModeOutput,
+          debugstr_a(pDeviceName), debugstr_a(pPort), pDevModeInput,
+          debugstr_a(pProfile), fMode);
+    return -1;
+}
+
+/*****************************************************************************
+ *          FindClosePrinterChangeNotification [WINSPOOL.@]
+ *
+ */
+BOOL WINAPI FindClosePrinterChangeNotification( HANDLE hChange )
+{
+    FIXME("Stub: %p\n", hChange);
+    return TRUE;
+}
+
+/*****************************************************************************
+ *          FindFirstPrinterChangeNotification [WINSPOOL.@]
+ *
+ */
+HANDLE WINAPI FindFirstPrinterChangeNotification( HANDLE hPrinter,
+    DWORD fdwFlags, DWORD fdwOptions, LPVOID pPrinterNotifyOptions )
+{
+    FIXME("Stub: %p %lx %lx %p\n",
+          hPrinter, fdwFlags, fdwOptions, pPrinterNotifyOptions);
+    return INVALID_HANDLE_VALUE;
+}
+
+/*****************************************************************************
+ *          FindNextPrinterChangeNotification [WINSPOOL.@]
+ *
+ */
+BOOL WINAPI FindNextPrinterChangeNotification( HANDLE hChange, PDWORD pdwChange,
+    LPVOID pPrinterNotifyOptions, LPVOID *ppPrinterNotifyInfo )
+{
+    FIXME("Stub: %p %p %p %p\n",
+          hChange, pdwChange, pPrinterNotifyOptions, ppPrinterNotifyInfo);
+    return FALSE;
+}
+
+/*****************************************************************************
+ *          FreePrinterNotifyInfo [WINSPOOL.@]
+ *
+ */
+BOOL WINAPI FreePrinterNotifyInfo( PPRINTER_NOTIFY_INFO pPrinterNotifyInfo )
+{
+    FIXME("Stub: %p\n", pPrinterNotifyInfo);
+    return TRUE;
+}
+
+/*****************************************************************************
  *          GetJobA [WINSPOOL.@]
  *
  */
@@ -4184,3 +4366,13 @@
           cbBuf, pcbNeeded);
     return FALSE;
 }
+
+/*****************************************************************************
+ *          ScheduleJob [WINSPOOL.@]
+ *
+ */
+BOOL WINAPI ScheduleJob( HANDLE hPrinter, DWORD dwJobID )
+{
+    FIXME("Stub: %p %lx\n", hPrinter, dwJobID);
+    return FALSE;
+}
diff --git a/dlls/winspool/winspool.drv.spec b/dlls/winspool/winspool.drv.spec
index daac701..70f0a79 100644
--- a/dlls/winspool/winspool.drv.spec
+++ b/dlls/winspool/winspool.drv.spec
@@ -1,6 +1,6 @@
 100 stub @
 @ stub ADVANCEDSETUPDIALOG
-@ stub AbortPrinter
+@ stdcall AbortPrinter(long)
 @ stdcall AddFormA(long long ptr)
 @ stdcall AddFormW(long long ptr)
 @ stdcall AddJobA(long long ptr long ptr)
@@ -8,16 +8,16 @@
 @ stdcall AddMonitorA(str long ptr)
 @ stdcall AddMonitorW(wstr long ptr)
 @ stdcall AddPortA(str ptr str)
-@ stub AddPortExA
-@ stub AddPortExW
+@ stdcall AddPortExA(ptr str long ptr str)
+@ stdcall AddPortExW(ptr wstr long ptr wstr)
 @ stdcall AddPortW(wstr long wstr)
 @ stdcall AddPrintProcessorA(str str str str)
 @ stdcall AddPrintProcessorW(wstr wstr wstr wstr)
 @ stdcall AddPrintProvidorA(str long ptr)
 @ stdcall AddPrintProvidorW(wstr long ptr)
 @ stdcall AddPrinterA(str long ptr)
-@ stub AddPrinterConnectionA
-@ stub AddPrinterConnectionW
+@ stdcall AddPrinterConnectionA(str)
+@ stdcall AddPrinterConnectionW(wstr)
 @ stdcall AddPrinterDriverA(str long ptr)
 @ stdcall AddPrinterDriverW(wstr long ptr)
 @ stdcall AddPrinterDriverExA(str long ptr long)
@@ -29,7 +29,7 @@
 @ stdcall ClosePrinter(long)
 @ stdcall ConfigurePortA(str long str)
 @ stdcall ConfigurePortW(wstr long wstr)
-@ stub ConnectToPrinterDlg
+@ stdcall ConnectToPrinterDlg(long long)
 @ stub CreatePrinterIC
 @ stub DEVICECAPABILITIES
 @ stub DEVICEMODE
@@ -44,8 +44,8 @@
 @ stdcall DeletePrintProvidorA(str str str)
 @ stdcall DeletePrintProvidorW(wstr wstr wstr)
 @ stdcall DeletePrinter(long)
-@ stub DeletePrinterConnectionA
-@ stub DeletePrinterConnectionW
+@ stdcall DeletePrinterConnectionA(str)
+@ stdcall DeletePrinterConnectionW(wstr)
 @ stdcall DeletePrinterDataExA(long str str)
 @ stdcall DeletePrinterDataExW(long wstr wstr)
 @ stdcall DeletePrinterDriverA(str str str)
@@ -64,8 +64,8 @@
 @ stub EXTDEVICEMODE
 @ stdcall EndDocPrinter(long)
 @ stdcall EndPagePrinter(long)
-@ stub EnumFormsA
-@ stub EnumFormsW
+@ stdcall EnumFormsA(long long ptr long ptr ptr)
+@ stdcall EnumFormsW(long long ptr long ptr ptr)
 @ stdcall EnumJobsA(long long long long ptr long ptr ptr)
 @ stdcall EnumJobsW(long long long long ptr long ptr ptr)
 @ stdcall EnumMonitorsA(str long ptr long long long)
@@ -76,19 +76,19 @@
 @ stdcall EnumPrintProcessorDatatypesW(wstr wstr long ptr long ptr ptr)
 @ stdcall EnumPrintProcessorsA(str str long ptr long ptr ptr)
 @ stdcall EnumPrintProcessorsW(wstr wstr long ptr long ptr ptr)
-@ stub EnumPrinterDataA
+@ stdcall EnumPrinterDataA(long long ptr long ptr ptr ptr long ptr)
 @ stdcall EnumPrinterDataExA(long str ptr long ptr ptr)
 @ stdcall EnumPrinterDataExW(long wstr ptr long ptr ptr)
-@ stub EnumPrinterDataW
+@ stdcall EnumPrinterDataW(long long ptr long ptr ptr ptr long ptr) 
 @ stdcall EnumPrinterDriversA(str str long ptr long ptr ptr)
 @ stdcall EnumPrinterDriversW(wstr wstr long ptr long ptr ptr)
 @ stdcall EnumPrintersA(long ptr long ptr long ptr ptr)
 @ stdcall EnumPrintersW(long ptr long ptr long ptr ptr)
-@ stub ExtDeviceMode
-@ stub FindClosePrinterChangeNotification
-@ stub FindFirstPrinterChangeNotification
-@ stub FindNextPrinterChangeNotification
-@ stub FreePrinterNotifyInfo
+@ stdcall ExtDeviceMode(long long ptr str str ptr str long)
+@ stdcall FindClosePrinterChangeNotification(long)
+@ stdcall FindFirstPrinterChangeNotification(long long long ptr)
+@ stdcall FindNextPrinterChangeNotification(long ptr ptr ptr)
+@ stdcall FreePrinterNotifyInfo(ptr)
 @ stdcall GetDefaultPrinterA(ptr ptr)
 @ stdcall GetDefaultPrinterW(ptr ptr)
 @ stdcall GetFormA(long str long ptr long ptr)
@@ -116,7 +116,7 @@
 @ stdcall ReadPrinter(long ptr long ptr)
 @ stdcall ResetPrinterA(long ptr)
 @ stdcall ResetPrinterW(long ptr)
-@ stub ScheduleJob
+@ stdcall ScheduleJob(long long)
 @ stub SetAllocFailCount
 @ stdcall SetFormA(long str long ptr)
 @ stdcall SetFormW(long wstr long ptr)
diff --git a/include/winspool.h b/include/winspool.h
index 3dfac1e..faa3ce8 100644
--- a/include/winspool.h
+++ b/include/winspool.h
@@ -1062,6 +1062,14 @@
 			  DWORD cbBuf, LPDWORD pcbNeeded, LPDWORD pcReturned);
 #define EnumMonitors WINELIB_NAME_AW(EnumMonitors)
 
+DWORD WINAPI EnumPrinterDataA( HANDLE hPrinter, DWORD dwIndex, LPSTR pValueName,
+    DWORD cbValueName, LPDWORD pcbValueName, LPDWORD pType, LPBYTE pData,
+    DWORD cbData, LPDWORD pcbData );
+DWORD WINAPI EnumPrinterDataW( HANDLE hPrinter, DWORD dwIndex, LPWSTR pValueName,
+    DWORD cbValueName, LPDWORD pcbValueName, LPDWORD pType, LPBYTE pData,
+    DWORD cbData, LPDWORD pcbData );
+#define EnumPrinterData WINELIB_NAME_AW(EnumPrinterData)
+
 BOOL WINAPI AddMonitorA(LPSTR pName, DWORD Level, LPBYTE pMonitors);
 BOOL WINAPI AddMonitorW(LPWSTR pName, DWORD Level, LPBYTE pMonitors);
 #define AddMonitor WINELIB_NAME_AW(AddMonitor)
@@ -1082,6 +1090,12 @@
 BOOL WINAPI AddPortW(LPWSTR pName, HWND hWnd, LPWSTR pMonitorName);
 #define AddPort WINELIB_NAME_AW(AddPort)
 
+BOOL WINAPI AddPortExA(HANDLE hMonitor, LPSTR pName, DWORD Level,
+                       LPBYTE lpBuffer, LPSTR lpMonitorName);
+BOOL WINAPI AddPortExW(HANDLE hMonitor, LPWSTR pName, DWORD Level,
+                       LPBYTE lpBuffer, LPWSTR lpMonitorName);
+#define AddPortEx WINELIB_NAME_AW(AddPortEx)
+
 BOOL WINAPI ConfigurePortA(LPSTR pName, HWND hWnd, LPSTR pPortName);
 BOOL WINAPI ConfigurePortW(LPWSTR pName, HWND hWnd, LPWSTR pPortName);
 #define ConfigurePort WINELIB_NAME_AW(ConfigurePort)
@@ -1124,7 +1138,9 @@
 				LPDWORD pcbEnumValues, LPDWORD pnEnumValues);
 #define EnumPrinterDataEx WINELIB_NAME_AW(EnumPrinterDataEx)
 
-
+LONG WINAPI ExtDeviceMode( HWND hWnd, HANDLE hInst, LPDEVMODEA pDevModeOutput,
+    LPSTR pDeviceName, LPSTR pPort, LPDEVMODEA pDevModeInput, LPSTR pProfile,
+    DWORD fMode);
 
 #ifdef __cplusplus
 } /* extern "C" */