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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk