Funzione InitializePrintMonitor2 (winsplp.h)
La funzione InitializePrintMonitor2 di un monitor di stampa inizializza un monitor di stampa da usare con i server di stampa cluster.
Sintassi
LPMONITOR2 InitializePrintMonitor2(
[in] PMONITORINIT pMonitorInit,
[out] PHANDLE phMonitor
);
Parametri
[in] pMonitorInit
Puntatore fornito dal chiamante a una struttura MONITORINIT .
[out] phMonitor
Percorso fornito dal chiamante in cui la funzione restituisce un handle di monitoraggio.
Valore restituito
Se l'operazione ha esito positivo, la funzione deve restituire un puntatore a una struttura MONITOR2 . In caso contrario, la funzione deve chiamare SetLastError (descritta nella documentazione di Microsoft Windows SDK) per impostare un codice di errore e restituire NULL.
Commenti
La funzione InitializePrintMonitor2 deve essere esportata dai monitoraggi del linguaggio e dalle DLL del server di monitoraggio delle porte. La funzione viene chiamata immediatamente dopo il caricamento della DLL di monitoraggio e non viene chiamata di nuovo finché la DLL non viene ricaricata. I suoi scopi sono consentire al monitoraggio di inizializzare se stesso e di fornire al puntatore le funzioni di monitoraggio interno. I puntatori alle funzioni sono contenuti in una struttura MONITOR2 .
La struttura MONITOR2 è più grande in Windows XP rispetto a quella di Windows 2000. Per garantire che un monitoraggio sviluppato con Windows XP Driver Development Kit (DDK) installerà in Windows XP e Windows 2000, il monitoraggio deve eseguire le operazioni seguenti:
- Eseguire un controllo di runtime per determinare la versione del sistema operativo in cui è in esecuzione il monitoraggio.
- Se il monitoraggio è in esecuzione in Windows 2000, deve impostare il membro cbSize della struttura MONITOR2 su MONITOR2_SIZE_WIN2K (definito in Winsplp.h), le dimensioni appropriate per La versione di Windows 2000 di questa struttura.
La funzione seguente determina se la versione corrente del sistema operativo è Windows 2000.
BOOL Is_Win2000()
{
OSVERSIONINFOEX osvi;
DWORDLONG dwlConditionMask = 0;
// Initialize the OSVERSIONINFOEX structure.
ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
osvi.dwMajorVersion = 5;
osvi.dwMinorVersion = 0;
// Initialize the condition mask.
VER_SET_CONDITION( dwlConditionMask, VER_MAJORVERSION, VER_EQUAL );
VER_SET_CONDITION( dwlConditionMask, VER_MINORVERSION, VER_EQUAL );
// Perform the test.
return VerifyVersionInfo(
&osvi,
VER_MAJORVERSION | VER_MINORVERSION,
dwlConditionMask);
}
Per un monitoraggio che viene caricato in Windows 2000, il codice seguente imposta in modo appropriato il membro cbSize della struttura di MONITOR2.
if ( Is_Win2000( ) )
Monitor2.cbSize = MONITOR2_SIZE_WIN2K;
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Desktop |
Intestazione | winsplp.h (include Winsplp.h) |