Freigeben über


MONITOR2 Struktur (winsplp.h)

Die MONITOR2 Struktur enthält Zeiger auf die von Druckmonitoren definierten Funktionen.

Syntax

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;

Angehörige

cbSize

Gibt die Größe der MONITOR2 Struktur in Byte an.

pfnEnumPorts

Die EnumPorts-Funktion einer Portmonitor-SERVER-DLL zählt die ports auf, die der Portmonitor unterstützt.

pfnOpenPort

Zeiger auf die OpenPort-Funktion des Druckmonitors.

pfnOpenPortEx

Die OpenPortEx-Funktion eines Sprachmonitors öffnet einen Druckeranschluss.

pfnStartDocPort

Die StartDocPort--Funktion eines Druckmonitors führt die aufgaben aus, die zum Starten eines Druckauftrags am angegebenen Port erforderlich sind.

pfnWritePort

Zeiger auf die WritePort--Funktion des Druckmonitors.

pfnReadPort

Zeiger auf die ReadPort-funktion des Druckmonitors.

pfnEndDocPort

Die EndDocPort-funktion eines Druckmonitors führt die aufgaben aus, die zum Beenden eines Druckauftrags am angegebenen Port erforderlich sind.

pfnClosePort

Zeiger auf die ClosePort-Funktion des Druckmonitors.

pfnAddPort

Vorsicht

Die AddPort--Funktion ist veraltet und sollte nicht verwendet werden.

AddPort erstellt einen Port und fügt ihn zur Liste der Ports hinzu, die derzeit vom angegebenen Monitor in der Spoolerumgebung unterstützt werden.

pfnAddPortEx

(Veraltet. Muss NULL sein.) Zeiger auf die AddPortEx--Funktion des Druckmonitors. (Portmonitore nur.)

pfnConfigurePort

Vorsicht

Die ConfigurePort--Funktion ist veraltet und sollte nicht verwendet werden. Verwenden Sie stattdessen ConfigurePortUI-.

ConfigurePort- ist eine Portverwaltungsfunktion, die den angegebenen Port konfiguriert.

pfnDeletePort

Vorsicht

Die DeletePort-Funktion ist veraltet und sollte nicht verwendet werden.

DeletePort einen Port aus der Umgebung des Monitors löscht.

pfnGetPrinterDataFromPort

Zeiger auf die GetPrinterDataFromPort-Funktion des Druckmonitors.

pfnSetPortTimeOuts

Die SetPortTimeOuts Einer Portüberwachungsserver-DLL legt Porttimeoutwerte für einen offenen Port fest.

pfnXcvOpenPort

Zeiger auf die XcvOpenPort--Funktion des Druckmonitors. (Portmonitore nur.)

pfnXcvDataPort

Zeiger auf die XcvDataPort--Funktion des Druckmonitors. (Portmonitore nur.)

pfnXcvClosePort

Zeiger auf die XcvClosePort--Funktion des Druckmonitors. (Portmonitore nur.)

pfnShutdown

Zeigen Sie auf die Herunterfahren-Funktion des Druckmonitors.

pfnSendRecvBidiDataFromPort

Zeiger auf die SendRecvBidiDataFromPort-Funktion des Druckmonitors.

pfnNotifyUsedPorts

Zeiger auf die NotifyUsedPorts--Funktion des Druckmonitors.

pfnNotifyUnusedPorts

Zeiger auf die NotifyUnusedPorts-Funktion des Druckmonitors.

pfnPowerEvent

Zeiger auf die PowerEvent--Funktion des Druckmonitors.

Bemerkungen

Jeder Sprachmonitor und jede Portmonitor-Server-DLL müssen eine MONITOR2 Struktur bereitstellen. Der Monitor muss Werte für alle Strukturmber angeben und die Adresse der Struktur als Rückgabewert für die InitializePrintMonitor2--Funktion angeben.

Wenn eine Funktion nicht definiert ist, muss der Mauszeiger NULL sein.

Die MONITOR2 Struktur ist in Windows XP größer als in Windows 2000. Um sicherzustellen, dass ein mit dem Windows XP Driver Development Kit (DDK) entwickelter Monitor unter Windows XP und Windows 2000 installiert wird, muss der Monitor folgendes ausführen:

  • Führen Sie eine Laufzeitüberprüfung durch, um zu ermitteln, auf welcher Betriebssystemversion der Monitor ausgeführt wird.
  • Wenn der Monitor unter Windows 2000 ausgeführt wird, muss der cbSize Member der MONITOR2-Struktur auf MONITOR2_SIZE_WIN2K (definiert in Winsplp.h) festgelegt werden, die für die Windows 2000-Version dieser Struktur geeignet ist.

Die folgende Funktion bestimmt, ob die aktuelle Betriebssystemversion Windows 2000 ist.

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);
}

Für einen Monitor, der unter Windows 2000 geladen wird, legt der folgende Code die MONITOR2 Struktur cbSize Member entsprechend fest.

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

Anforderungen

Anforderung Wert
Header- winsplp.h (include Winsplp.h)

Siehe auch

InitializePrintMonitor2-

MONITORUI-