Compartilhar via


Função InitializePrintMonitor2 (winsplp.h)

A função InitializePrintMonitor2 de um monitor de impressão inicializa um monitor de impressão para uso com servidores de impressão clusterizados.

Sintaxe

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

Parâmetros

[in] pMonitorInit

Ponteiro fornecido pelo chamador para uma estrutura MONITORINIT .

[out] phMonitor

Local fornecido pelo chamador no qual a função retorna um identificador de monitor.

Retornar valor

Se a operação for bem-sucedida, a função deverá retornar um ponteiro para uma estrutura MONITOR2 . Caso contrário, a função deve chamar SetLastError (descrito na documentação do SDK do Microsoft Windows) para definir um código de erro e retornar NULL.

Comentários

A função InitializePrintMonitor2 deve ser exportada por monitores de idioma e por DLLs do servidor de monitor de porta. A função é chamada imediatamente depois que a DLL do monitor é carregada e não é chamada novamente até que a DLL seja recarregada. Suas finalidades são permitir que o monitor se inicialize e fornecer ao spooler ponteiros para funções de monitor internas. Os ponteiros de função estão contidos em uma estrutura MONITOR2 .

A estrutura MONITOR2 é maior no Windows XP do que no Windows 2000. Para garantir que um monitor desenvolvido com o DDK (Kit de Desenvolvimento de Driver) do Windows XP seja instalado no Windows XP e no Windows 2000, o monitor deve fazer o seguinte:

  • Execute uma marcar em tempo de execução para determinar em qual versão do sistema operacional o monitor está sendo executado.
  • Se o monitor estiver em execução no Windows 2000, ele deverá definir o membro cbSize da estrutura MONITOR2 como MONITOR2_SIZE_WIN2K (definido em Winsplp.h), o tamanho apropriado para a versão do Windows 2000 dessa estrutura.

A função a seguir determina se a versão atual do sistema operacional é o 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 um monitor que está carregando no Windows 2000, o código a seguir define o membro cbSize da estrutura MONITOR2 adequadamente.

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

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho winsplp.h (inclua Winsplp.h)

Confira também

MONITORINIT