[LOCALSPL]
[reactos.git] / reactos / win32ss / printing / providers / localspl / main.c
index 2565b1c..ae0b16e 100644 (file)
@@ -11,7 +11,7 @@
 WCHAR wszSpoolDirectory[MAX_PATH];
 DWORD cchSpoolDirectory;
 
-// Constants
+// Global Constants
 const WCHAR wszCurrentEnvironment[] =
 #if defined(_X86_)
     L"Windows NT x86";
@@ -23,17 +23,22 @@ const WCHAR wszCurrentEnvironment[] =
     #error Unsupported architecture
 #endif
 
+const DWORD cbCurrentEnvironment = sizeof(wszCurrentEnvironment);
+
+const WCHAR wszDefaultDocumentName[] = L"Local Downlevel Document";
+
 const WCHAR* wszPrintProviderInfo[3] = {
     L"Windows NT Local Print Providor",     // Name
     L"Windows NT Local Printers",           // Description
     L"Locally connected Printers"           // Comment
 };
 
-static const PRINTPROVIDOR PrintProviderFunctions = {
+// Local Constants
+static const PRINTPROVIDOR _PrintProviderFunctions = {
     LocalOpenPrinter,                           // fpOpenPrinter
-    NULL,                                       // fpSetJob
-    NULL,                                       // fpGetJob
-    NULL,                                       // fpEnumJobs
+    LocalSetJob,                                // fpSetJob
+    LocalGetJob,                                // fpGetJob
+    LocalEnumJobs,                              // fpEnumJobs
     NULL,                                       // fpAddPrinter
     NULL,                                       // fpDeletePrinter
     NULL,                                       // fpSetPrinter
@@ -56,8 +61,8 @@ static const PRINTPROVIDOR PrintProviderFunctions = {
     NULL,                                       // fpAbortPrinter
     NULL,                                       // fpReadPrinter
     LocalEndDocPrinter,                         // fpEndDocPrinter
-    NULL,                                       // fpAddJob
-    NULL,                                       // fpScheduleJob
+    LocalAddJob,                                // fpAddJob
+    LocalScheduleJob,                           // fpScheduleJob
     NULL,                                       // fpGetPrinterData
     NULL,                                       // fpSetPrinterData
     NULL,                                       // fpWaitForPrinterChange
@@ -67,8 +72,8 @@ static const PRINTPROVIDOR PrintProviderFunctions = {
     NULL,                                       // fpGetForm
     NULL,                                       // fpSetForm
     NULL,                                       // fpEnumForms
-    NULL,                                       // fpEnumMonitors
-    NULL,                                       // fpEnumPorts
+    LocalEnumMonitors,                          // fpEnumMonitors
+    LocalEnumPorts,                             // fpEnumPorts
     NULL,                                       // fpAddPort
     NULL,                                       // fpConfigurePort
     NULL,                                       // fpDeletePort
@@ -139,18 +144,23 @@ DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
         case DLL_PROCESS_ATTACH:
             DisableThreadLibraryCalls(hinstDLL);
             _GetSpoolDirectory();
-            InitializePrintProcessorTable();
-            InitializePrinterTable();
-            break;
-    }
 
-    return TRUE;
+            return InitializePrintMonitorList() &&
+                   InitializePortList() &&
+                   InitializePrintProcessorList() &&
+                   InitializePrinterList() &&
+                   InitializeGlobalJobList();
+
+        default:
+            return TRUE;
+    }
 }
 
 BOOL WINAPI
 InitializePrintProvidor(LPPRINTPROVIDOR pPrintProvidor, DWORD cbPrintProvidor, LPWSTR pFullRegistryPath)
 {
-    CopyMemory(pPrintProvidor, &PrintProviderFunctions, min(cbPrintProvidor, sizeof(PRINTPROVIDOR)));
+    CopyMemory(pPrintProvidor, &_PrintProviderFunctions, min(cbPrintProvidor, sizeof(PRINTPROVIDOR)));
 
+    SetLastError(ERROR_SUCCESS);
     return TRUE;
 }