InitializePrintMonitor2 함수(winsplp.h)

인쇄 모니터의 InitializePrintMonitor2 함수는 클러스터형 인쇄 서버에 사용할 인쇄 모니터를 초기화합니다.

구문

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

매개 변수

[in] pMonitorInit

MONITORINIT 구조체에 대한 호출자 제공 포인터입니다.

[out] phMonitor

함수가 모니터 핸들을 반환하는 호출자 제공 위치입니다.

반환 값

작업이 성공하면 함수는 MONITOR2 구조체에 대한 포인터를 반환해야 합니다. 그렇지 않으면 함수가 SetLastError(Microsoft Windows SDK 설명서에 설명됨)를 호출하여 오류 코드를 설정하고 NULL 을 반환해야 합니다.

설명

InitializePrintMonitor2 함수는 언어 모니터 및 포트 모니터 서버 DLL을 통해 내보내야 합니다. 이 함수는 모니터 DLL이 로드된 직후에 호출되며 DLL이 다시 로드될 때까지 다시 호출되지 않습니다. 모니터가 자신을 초기화하고 스풀러에 내부 모니터 함수에 대한 포인터를 제공할 수 있도록 하기 위한 것입니다. 함수 포인터는 MONITOR2 구조체에 포함됩니다.

MONITOR2 구조는 2000년 Windows 보다 Windows XP에서 더 큽 수 있습니다. Windows XP DDK(드라이버 개발 키트)로 개발된 모니터가 Windows XP 및 Windows 2000에 설치되도록 하려면 모니터에서 다음을 수행해야 합니다.

  • 런타임 검사를 수행하여 모니터가 실행 중인 운영 체제 버전을 확인합니다.
  • 모니터가 Windows 2000에서 실행되는 경우 MONITOR2 구조체의 cbSize 멤버를 이 구조의 Windows 2000 버전에 적합한 크기인 MONITOR2_SIZE_WIN2K(Winsplp.h에 정의됨)로 설정해야 합니다.

다음 함수는 현재 운영 체제 버전이 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);
}

Windows 2000에서 로드하는 모니터의 경우 다음 코드는 MONITOR2 구조체의 cbSize 멤버를 적절하게 설정합니다.

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

요구 사항

   
대상 플랫폼 데스크톱
헤더 winsplp.h(Winsplp.h 포함)

참고 항목

MONITORINIT