Partager via


structure MONITOR2 (winsplp.h)

La structure MONITOR2 contient des pointeurs vers les fonctions définies par les moniteurs d’impression.

Syntaxe

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;

Membres

cbSize

Spécifie la taille, en octets, de la structure MONITOR2.

pfnEnumPorts

La fonction enumPorts d’un serveur de moniteur de ports énumère les ports pris en charge par le moniteur de port.

pfnOpenPort

Pointeur vers la fonction OpenPort du moniteur d’impression.

pfnOpenPortEx

La fonction OpenPortEx d’un moniteur de langage ouvre un port d’imprimante.

pfnStartDocPort

La fonction StartDocPort d’un moniteur d’impression effectue les tâches requises pour démarrer un travail d’impression sur le port spécifié.

pfnWritePort

Pointeur vers la fonction WritePort du moniteur d’impression.

pfnReadPort

Pointeur vers la fonction ReadPort du moniteur d’impression.

pfnEndDocPort

La fonction EndDocPort d’un moniteur d’impression effectue les tâches requises pour mettre fin à un travail d’impression sur le port spécifié.

pfnClosePort

Pointeur vers la fonction ClosePort du moniteur d’impression.

pfnAddPort

Prudence

La fonction AddPort est obsolète et ne doit pas être utilisée.

AddPort crée un port et l’ajoute à la liste des ports actuellement pris en charge par le moniteur spécifié dans l’environnement du spouleur.

pfnAddPortEx

(Obsolète. Doit être NULL.) Pointeur vers la fonction AddPortEx du moniteur d’impression. (Moniteurs de port uniquement.)

pfnConfigurePort

Prudence

La fonction ConfigurePort est obsolète et ne doit pas être utilisée. Utilisez à la place ConfigurePortUI.

ConfigurePort est une fonction de gestion des ports qui configure le port spécifié.

pfnDeletePort

Prudence

La fonction DeletePort est obsolète et ne doit pas être utilisée.

DeletePort supprime un port de l’environnement du moniteur.

pfnGetPrinterDataFromPort

Pointeur vers la fonction GetPrinterDataFromPort du moniteur d’impression.

pfnSetPortTimeOuts

La DLL du serveur de surveillance de port SetPortTimeOuts fonction définit les valeurs de délai d’attente du port pour un port ouvert.

pfnXcvOpenPort

Pointeur vers la fonction XcvOpenPort du moniteur d’impression. (Moniteurs de port uniquement.)

pfnXcvDataPort

Pointeur vers la fonction XcvDataPort du moniteur d’impression. (Moniteurs de port uniquement.)

pfnXcvClosePort

Pointeur vers la fonction XcvClosePort du moniteur d’impression. (Moniteurs de port uniquement.)

pfnShutdown

Pointeur vers la fonction d’arrêt du moniteur d’impression.

pfnSendRecvBidiDataFromPort

Pointeur vers la fonction SendRecvBidiDataFromPort du moniteur d’impression.

pfnNotifyUsedPorts

Pointeur vers la fonction NotifyUsedPorts du moniteur d’impression.

pfnNotifyUnusedPorts

Pointeur vers la fonction NotifyUnusedPorts du moniteur d’impression.

pfnPowerEvent

Pointeur vers la fonction PowerEvent du moniteur d’impression.

Remarques

Chaque moniteur de langage et chaque DLL du serveur de moniteur de port doivent fournir une structure MONITOR2. Le moniteur doit fournir des valeurs pour tous les membres de la structure et spécifier l’adresse de la structure comme valeur de retour pour sa fonction InitializePrintMonitor2.

Si une fonction n’est pas définie, son pointeur doit être NULL.

La structure MONITOR2 est plus grande dans Windows XP que dans Windows 2000. Pour vous assurer qu’un moniteur développé avec le Kit de développement de pilotes Windows XP (DDK) s’installe sur Windows XP et Windows 2000, le moniteur doit effectuer les opérations suivantes :

  • Effectuez une vérification au moment de l’exécution pour déterminer la version du système d’exploitation sur laquelle le moniteur s’exécute.
  • Si le moniteur s’exécute sur Windows 2000, il doit définir la cbSize membre de la structure MONITOR2 sur MONITOR2_SIZE_WIN2K (définie dans Winsplp.h), la taille appropriée pour la version de Windows 2000 de cette structure.

La fonction suivante détermine si la version actuelle du système d’exploitation est 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);
}

Pour un moniteur qui se charge sur Windows 2000, le code suivant définit le cbSize membre de la structure de MONITOR2.

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

Exigences

Exigence Valeur
d’en-tête winsplp.h (include Winsplp.h)

Voir aussi

InitializePrintMonitor2

MONITORUI