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)

Vedi anche

MONITORINIT