次の方法で共有


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 構造体に含まれています。

Windows XP では 、MONITOR2 構造が Windows 2000 よりも大きくなります。 Windows XP Driver Development Kit (DDK) で開発されたモニターが Windows XP および Windows 2000 にインストールされるようにするには、モニターで次の操作を行う必要があります。

  • 実行時のチェックを実行して、モニターが実行されているオペレーティング システムのバージョンを確認します。
  • モニターが Windows 2000 で実行されている場合は、この構造体の Windows 2000 バージョンに適したサイズの MONITOR2_SIZE_WIN2K (Winsplp.h で定義) に、MONITOR2構造体の cbSize メンバーを設定する必要があります。

次の関数は、現在のオペレーティング システムのバージョンが 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;

要件

要件
対象プラットフォーム デスクトップ
Header winsplp.h (Winsplp.h を含む)

こちらもご覧ください

MONITORINIT