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) |