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 を含む) |