共用方式為


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 成員設定為 MONITOR2_SIZE_WIN2K (定義於 Winsplp.h 中),此結構適用於 Windows 2000 版本的大小。

下列函式會判斷目前的作系統版本是否為 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