spoolss: Implement SplInitializeWinSpoolDrv.
This commit is contained in:
parent
3e6307f20a
commit
a2b70095f6
|
@ -121,7 +121,7 @@
|
||||||
@ stub SplCommitSpoolData
|
@ stub SplCommitSpoolData
|
||||||
@ stub SplDriverUnloadComplete
|
@ stub SplDriverUnloadComplete
|
||||||
@ stub SplGetSpoolFileInfo
|
@ stub SplGetSpoolFileInfo
|
||||||
@ stub SplInitializeWinSpoolDrv
|
@ stdcall SplInitializeWinSpoolDrv(ptr)
|
||||||
@ stub SplIsUpgrade
|
@ stub SplIsUpgrade
|
||||||
@ stub SplProcessPnPEvent
|
@ stub SplProcessPnPEvent
|
||||||
@ stub SplReadPrinter
|
@ stub SplReadPrinter
|
||||||
|
|
|
@ -27,6 +27,10 @@
|
||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(spoolss);
|
WINE_DEFAULT_DEBUG_CHANNEL(spoolss);
|
||||||
|
|
||||||
|
/* ################################ */
|
||||||
|
|
||||||
|
static HMODULE hwinspool;
|
||||||
|
static const WCHAR winspooldrvW[] = {'w','i','n','s','p','o','o','l','.','d','r','v',0};
|
||||||
|
|
||||||
/******************************************************************
|
/******************************************************************
|
||||||
*
|
*
|
||||||
|
@ -161,3 +165,47 @@ HANDLE WINAPI RevertToPrinterSelf(void)
|
||||||
FIXME("() stub\n");
|
FIXME("() stub\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/******************************************************************
|
||||||
|
* SplInitializeWinSpoolDrv [SPOOLSS.@]
|
||||||
|
*
|
||||||
|
* Dynamic load "winspool.drv" and fill an array with some function-pointer
|
||||||
|
*
|
||||||
|
* PARAMS
|
||||||
|
* table [I] array of function-pointer to fill
|
||||||
|
*
|
||||||
|
* RETURNS
|
||||||
|
* Success: TRUE
|
||||||
|
* Failure: FALSE
|
||||||
|
*
|
||||||
|
* NOTES
|
||||||
|
* Native "spoolss.dll" from w2k fill the table with 11 Function-Pointer.
|
||||||
|
* We implement the XP-Version (The table has only 9 Pointer)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
BOOL WINAPI SplInitializeWinSpoolDrv(LPVOID * table)
|
||||||
|
{
|
||||||
|
DWORD res;
|
||||||
|
|
||||||
|
TRACE("(%p)\n", table);
|
||||||
|
|
||||||
|
hwinspool = LoadLibraryW(winspooldrvW);
|
||||||
|
if (!hwinspool) return FALSE;
|
||||||
|
|
||||||
|
table[0] = (void *) GetProcAddress(hwinspool, "OpenPrinterW");
|
||||||
|
table[1] = (void *) GetProcAddress(hwinspool, "ClosePrinter");
|
||||||
|
table[2] = (void *) GetProcAddress(hwinspool, "SpoolerDevQueryPrintW");
|
||||||
|
table[3] = (void *) GetProcAddress(hwinspool, "SpoolerPrinterEvent");
|
||||||
|
table[4] = (void *) GetProcAddress(hwinspool, "DocumentPropertiesW");
|
||||||
|
table[5] = (void *) GetProcAddress(hwinspool, (LPSTR) 212); /* LoadPrinterDriver */
|
||||||
|
table[6] = (void *) GetProcAddress(hwinspool, (LPSTR) 213); /* RefCntLoadDriver */
|
||||||
|
table[7] = (void *) GetProcAddress(hwinspool, (LPSTR) 214); /* RefCntUnloadDriver */
|
||||||
|
table[8] = (void *) GetProcAddress(hwinspool, (LPSTR) 215); /* ForceUnloadDriver */
|
||||||
|
|
||||||
|
for (res = 0; res < 9; res++) {
|
||||||
|
if (table[res] == NULL) return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue