Compartir a través de


Función InitializePrintMonitor2 (winsplp.h)

La función InitializePrintMonitor2 de un monitor de impresión inicializa un monitor de impresión para su uso con servidores de impresión agrupados.

Sintaxis

LPMONITOR2 InitializePrintMonitor2(
  [in]  PMONITORINIT pMonitorInit,
  [out] PHANDLE      phMonitor
);

Parámetros

[in] pMonitorInit

Puntero proporcionado por el autor de la llamada a una estructura MONITORINIT .

[out] phMonitor

Ubicación proporcionada por el autor de la llamada en la que la función devuelve un identificador de monitor.

Valor devuelto

Si la operación se realiza correctamente, la función debe devolver un puntero a una estructura MONITOR2 . De lo contrario, la función debe llamar a SetLastError (descrita en la documentación de Microsoft Windows SDK) para establecer un código de error y devolver NULL.

Comentarios

La función InitializePrintMonitor2 debe exportarse mediante monitores de lenguaje y archivos DLL del servidor de supervisión de puerto. Se llama a la función inmediatamente después de cargar el archivo DLL del monitor y no se llama de nuevo hasta que se vuelve a cargar el archivo DLL. Sus propósitos son permitir que el monitor se inicialice y proporcionar al administrador de colas punteros a funciones de supervisión internas. Los punteros de función se encuentran en una estructura MONITOR2 .

La estructura MONITOR2 es mayor en Windows XP que en Windows 2000. Para asegurarse de que un monitor desarrollado con el Kit de desarrollo de controladores de Windows XP (DDK) se instalará en Windows XP y Windows 2000, el monitor debe hacer lo siguiente:

  • Realice una comprobación en tiempo de ejecución para determinar en qué versión del sistema operativo se ejecuta el monitor.
  • Si el monitor se ejecuta en Windows 2000, debe establecer el miembro cbSize de la estructura de MONITOR2 en MONITOR2_SIZE_WIN2K (definido en Winsplp.h), el tamaño adecuado para la versión de Windows 2000 de esta estructura.

La siguiente función determina si la versión actual del sistema operativo es 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);
}

Para un monitor que se carga en Windows 2000, el código siguiente establece el miembro cbSize de la estructura MONITOR2 apropiadamente.

if ( Is_Win2000( ) )
    Monitor2.cbSize = MONITOR2_SIZE_WIN2K;

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado winsplp.h (incluya Winsplp.h)

Consulte también

MONITORINIT