struktur MONITOR2 (winsplp.h)

Struktur MONITOR2 berisi penunjuk ke fungsi yang ditentukan oleh monitor cetak.

Sintaks

typedef struct _MONITOR2 {
  DWORD  cbSize;
  BOOL( )(HANDLE hMonitor,LPWSTR pName,DWORD Level,LPBYTE pPorts,DWORD cbBuf,LPDWORD pcbNeeded,LPDWORD pcReturned)  *pfnEnumPorts;
  BOOL( )(HANDLE hMonitor,LPWSTR pName,PHANDLE pHandle)  *pfnOpenPort;
  BOOL()(HANDLE hMonitor,HANDLE hMonitorPort,LPWSTR pPortName,LPWSTR pPrinterName,PHANDLE pHandle,_MONITOR2 *pMonitor2)  * pfnOpenPortEx;
  BOOL( )(HANDLE hPort,LPWSTR pPrinterName,DWORD JobId,DWORD Level,LPBYTE pDocInfo)  *pfnStartDocPort;
  BOOL( )(HANDLE hPort,LPBYTE pBuffer,DWORD cbBuf,LPDWORD pcbWritten)  *pfnWritePort;
  BOOL( )(HANDLE hPort,LPBYTE pBuffer,DWORD cbBuffer,LPDWORD pcbRead)  *pfnReadPort;
  BOOL( )(HANDLE hPort)  *pfnEndDocPort;
  BOOL( )(HANDLE hPort)  *pfnClosePort;
  BOOL( )(HANDLE hMonitor,LPWSTR pName,HWND hWnd,LPWSTR pMonitorName)  *pfnAddPort;
  BOOL( )(HANDLE hMonitor,LPWSTR pName,DWORD Level,LPBYTE lpBuffer,LPWSTR lpMonitorName)  *pfnAddPortEx;
  BOOL( )(HANDLE hMonitor,LPWSTR pName,HWND hWnd,LPWSTR pPortName)  *pfnConfigurePort;
  BOOL( )(HANDLE hMonitor,LPWSTR pName,HWND hWnd,LPWSTR pPortName)  *pfnDeletePort;
  BOOL( )(HANDLE hPort,DWORD ControlID,LPWSTR pValueName,LPWSTR lpInBuffer,DWORD cbInBuffer,LPWSTR lpOutBuffer,DWORD cbOutBuffer,LPDWORD lpcbReturned)  *pfnGetPrinterDataFromPort;
  BOOL( )(HANDLE hPort,LPCOMMTIMEOUTS lpCTO,DWORD reserved)  *pfnSetPortTimeOuts;
  BOOL( )(HANDLE hMonitor,LPCWSTR pszObject,ACCESS_MASK GrantedAccess,PHANDLE phXcv)  *pfnXcvOpenPort;
  DWORD( )(HANDLE hXcv,LPCWSTR pszDataName,PBYTE pInputData,DWORD cbInputData,PBYTE pOutputData,DWORD cbOutputData,PDWORD pcbOutputNeeded) *pfnXcvDataPort;
  BOOL( )(HANDLE hXcv)  *pfnXcvClosePort;
  VOID( )(HANDLE hMonitor)  *pfnShutdown;
  DWORD()(HANDLE hPort,DWORD dwAccessBit,LPCWSTR pAction,PBIDI_REQUEST_CONTAINER pReqData,PBIDI_RESPONSE_CONTAINER *ppResData) * pfnSendRecvBidiDataFromPort;
  DWORD()(HANDLE hMonitor,DWORD cPorts,PCWSTR *ppszPorts) * pfnNotifyUsedPorts;
  DWORD()(HANDLE hMonitor,DWORD cPorts,PCWSTR *ppszPorts) * pfnNotifyUnusedPorts;
  DWORD()(HANDLE hMonitor,DWORD event,POWERBROADCAST_SETTING *pSettings) * pfnPowerEvent;
} MONITOR2, *PMONITOR2, *LPMONITOR2;

Anggota

cbSize

Menentukan ukuran, dalam byte, dari struktur MONITOR2.

pfnEnumPorts

Fungsi EnumPorts server monitor port DLL menghitung port yang didukung oleh pemantau port.

pfnOpenPort

Penunjuk ke fungsi OpenPort monitor cetak.

pfnOpenPortEx

Fungsi OpenPortEx monitor bahasa membuka port printer.

pfnStartDocPort

Fungsi StartDocPort monitor cetak melakukan tugas yang diperlukan untuk memulai pekerjaan cetak pada port yang ditentukan.

pfnWritePort

Arahkan ke fungsi WritePort monitor cetak.

pfnReadPort

Arahkan ke fungsi ReadPort monitor cetak.

pfnEndDocPort

Fungsi EndDocPort monitor cetak melakukan tugas yang diperlukan untuk mengakhiri pekerjaan cetak pada port yang ditentukan.

pfnClosePort

Arahkan ke fungsi ClosePort monitor cetak.

pfnAddPort

Perhatian

Fungsi AddPort sudah usang dan tidak boleh digunakan.

AddPort membuat port dan menambahkannya ke daftar port yang saat ini didukung oleh monitor yang ditentukan di lingkungan penampung.

pfnAddPortEx

(Usang. Harus NULL.) Arahkan ke fungsi AddPortEx monitor cetak. (Port hanya memantau.)

pfnConfigurePort

Perhatian

Fungsi ConfigurePort sudah usang dan tidak boleh digunakan. Gunakan ConfigurePortUI sebagai gantinya.

ConfigurePort adalah fungsi manajemen port yang mengonfigurasi port yang ditentukan.

pfnDeletePort

Perhatian

Fungsi DeletePort sudah usang dan tidak boleh digunakan.

DeletePort menghapus port dari lingkungan monitor.

pfnGetPrinterDataFromPort

Arahkan ke fungsi GetPrinterDataFromPort monitor cetak.

pfnSetPortTimeOuts

Fungsi SetPortTimeOuts server monitor port menetapkan nilai batas waktu port untuk port terbuka.

pfnXcvOpenPort

Arahkan ke fungsi XcvOpenPort monitor cetak. (Port hanya memantau.)

pfnXcvDataPort

Arahkan ke fungsi XcvDataPort monitor cetak. (Port hanya memantau.)

pfnXcvClosePort

Arahkan ke fungsi XcvClosePort monitor cetak. (Port hanya memantau.)

pfnShutdown

Penunjuk ke fungsi Matikan monitor cetak.

pfnSendRecvBidiDataFromPort

Arahkan ke fungsi SendRecvBidiDataFromPort monitor cetak.

pfnNotifyUsedPorts

Arahkan ke fungsi NotifyUsedPorts monitor cetak.

pfnNotifyUnusedPorts

Arahkan ke fungsi NotifyUnusedPorts monitor cetak.

pfnPowerEvent

Arahkan ke fungsi PowerEvent monitor cetak.

Keterangan

Setiap pemantau bahasa dan setiap DLL server pemantau port harus menyediakan struktur MONITOR2. Monitor harus menyediakan nilai untuk semua anggota struktur, dan menentukan alamat struktur sebagai nilai pengembalian untuk fungsi InitializePrintMonitor2 .

Jika fungsi tidak ditentukan, penunjuknya harus NULL.

Struktur MONITOR2 lebih besar di Windows XP daripada di Windows 2000. Untuk memastikan bahwa monitor yang dikembangkan dengan Windows XP Driver Development Kit (DDK) akan diinstal pada Windows XP dan Windows 2000, monitor harus melakukan hal berikut:

  • Lakukan pemeriksaan run-time untuk menentukan versi sistem operasi mana yang dijalankan monitor.
  • Jika monitor berjalan pada Windows 2000, monitor harus mengatur anggota cbSize dari struktur MONITOR2 ke MONITOR2_SIZE_WIN2K (didefinisikan dalam Winsplp.h), ukuran yang sesuai untuk versi Windows 2000 dari struktur ini.

Fungsi berikut menentukan apakah versi sistem operasi saat ini adalah 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);
}

Untuk monitor yang dimuat pada Windows 2000, kode berikut menetapkan anggota cbSize struktur MONITOR2 dengan tepat.

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

Persyaratan

Persyaratan Nilai
Header winsplp.h (termasuk Winsplp.h)

Lihat juga

InitializePrintMonitor2

MONITORUI