다음을 통해 공유


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 구조는 Windows XP에서 Windows 2000보다 큽 수 있습니다. 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