Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

215 lines
7.3 KiB

/*****************************************************************************
*
* $Workfile: TcpMon.h $
*
* Copyright (C) 1997 - 1999 Hewlett-Packard Company.
* Copyright (C) 1997 - 1999 Microsoft Corporation.
* All rights reserved.
*
* 11311 Chinden Blvd.
* Boise, Idaho 83714
*
*****************************************************************************/
#ifndef INC_HPSPPMON_H
#define INC_HPSPPMON_H
#include <wininet.h>
#include <splcom.h>
#include "debug.h"
#include "tcpxcv.h"
typedef BOOL (* SETPORTPARAM)(LPTSTR, LPTSTR, DWORD, LPBYTE);
typedef BOOL (* ENUMPORTPARAM)(LPTSTR, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD);
// externs
extern int g_cntGlobalAlloc;
extern int g_csGlobalCount;
extern HINSTANCE g_hInstance;
extern HINSTANCE g_hTcpMib;
extern HINSTANCE g_hSpoolLib;
extern SETPORTPARAM g_pfnSetPort;
extern ENUMPORTPARAM g_pfnEnumPorts;
// Additional Dll's
#define TCPMIB_DLL_NAME TEXT("tcpmib.dll")
// macros
#define ENTER_CRITICAL_SECTION(cs, fn, ln, csrc) ( debugCSect("DEBUG -- EnterCriticalSection count = ", ++g_csGlobalCount, fn, ln, csrc), EnterCriticalSection(cs) )
#define EXIT_CRITICAL_SECTION(cs, fn, ln, csrc) ( debugCSect("DEBUG -- ExitCriticalSection count = ", --g_csGlobalCount, fn, ln, csrc), LeaveCriticalSection(cs) )
#if defined (UNICODE) || defined (_UNICODE)
#define MBCS_TO_UNICODE(dest, destsize, src) \
{ \
_ASSERTE(strlen(src)<(size_t)destsize); /* make sure dest is big enough -- should a bigger buffer be allocated? */ \
MultiByteToWideChar(CP_ACP, 0L, src, -1, dest, destsize); \
(dest)[destsize - 1 ] = '\0'; \
}
#define UNICODE_TO_MBCS(dest, destsize, src, srcsize) \
{ \
_ASSERTE((int)srcsize == -1 || _tcslen(src)<=(size_t)srcsize); /* make sure the source string did not go past the provided buffer size */ \
WideCharToMultiByte(CP_ACP, 0L, src, -1, dest, destsize, NULL, NULL); \
(dest)[destsize - 1 ] = '\0'; \
}
#define SIZEOF_IN_CHAR(buf) (sizeof(buf)/sizeof(buf[0]))
#define STRLEN_IN_BYTES(buf) (_tcslen(buf)*sizeof(TCHAR)) // String length in bytes
#define STRLENN_IN_BYTES(buf) (_tcslen(buf)*sizeof(TCHAR)+sizeof(TCHAR)) // string length including NULL terminator
#endif
// Required Winsock version info
#define WS_VERSION_REQUIRED (0x0101) // WinSock V1.1 is required
#define WS_VERSION_MAJOR HIBYTE(WS_VERSION_REQUIRED)
#define WS_VERSION_MINOR LOBYTE(WS_VERSION_REQUIRED)
// strings
#define NULLSTR TEXT("");
#ifdef HP_BUILD
#define PORTMONITOR_CLASS_NAME TEXT("STDTCPMON")
#define PORTMONITOR_HELP_FILE TEXT("HPTCPMUI.HLP")
#define PORTMONITOR_NAME TEXT("HPTCPMON.DLL")
#define PORTMONITOR_UI_NAME TEXT("HPTcpMUI.dll")
#define PORTMONITOR_DESC TEXT("HP Standard TCP/IP Port")
#define SZEVENTLOG_NAME TEXT("HPTcpMon")
#define PORTMONITOR_INI_FILE TEXT("\\HPTcpMon.ini")
#else
#define PORTMONITOR_CLASS_NAME TEXT("HPJETADMIN")
#define PORTMONITOR_HELP_FILE TEXT("TCPMON.HLP")
#define PORTMONITOR_NAME TEXT("TCPMON.DLL")
#define PORTMONITOR_UI_NAME TEXT("TCPMonUI.dll")
#define PORTMONITOR_DESC TEXT("Standard TCP/IP Port")
#define SZEVENTLOG_NAME TEXT("TCPMon")
#define PORTMONITOR_INI_FILE TEXT("\\TcpMon.ini")
#endif
#define DEFAULT_SNMP_COMMUNITYA "public"
#define DEFAULT_SNMP_COMUNITY TEXT( DEFAULT_SNMP_COMMUNITYA )
#define DEFAULT_QUEUE TEXT( "LPR" )
#define TCP_PROTOCOL TEXT( "TCP_IP" )
// Defaults
#define DEFAULT_PORT_NUMBER 9100
#define DEFAULT_PROTOCOL 1
#define DEFAULT_VERSION 1
// SNMP Constants
#define DEFAULT_SNMP_DEVICE_INDEX 1
// lengths
#define MAX_SECTION_NAME 64
#define MAX_PRINTERNAME_LEN MAX_UNC_PRINTER_NAME // printer name
#define MAX_FULLY_QUALIFIED_HOSTNAME_LEN 128 // fully qualified hostname length
#define MAX_PORT_DESCRIPTION_LEN 256
#define MAX_NUM_OF_DEVICEPORTS 1024
//Status Constants
#define PORT_STATUS_IDLE 0
#define PORT_STATUS_ERROR 1
#define PORT_STATUS_PRINTING 2
#define STATUS_ERROR_FACTOR 20
#define STATUS_PRINTINT_FACTOR 10
#define STATUS_ERROR_MIN 10 // Seconds
class CPortMgr;
#define MONITOR_SIGNATURE (0xE9324C33)
typedef struct _MONITOR_HANDLE {
DWORD cb;
DWORD dSignature;
CPortMgr *pPortMgr;
} MONITOR_HANDLE, *PMONITOR_HANDLE;
typedef struct _SNMP_INFO
{
TCHAR sztSNMPCommunity[MAX_SNMP_COMMUNITY_STR_LEN];
TCHAR sztAddress[MAX_NETWORKNAME_LEN];
DWORD dwSNMPEnabled;
DWORD dwSNMPDeviceIndex;
} SNMP_INFO, *PSNMP_INFO;
// This must be included after the length definitions because
// the structures in it depend on these definitions.
#define SPOOLER_SUPPORTED_LEVEL 2 // spooler supported level
#ifdef __cplusplus
extern "C" {
#endif
DWORD EncodeMonitorHandle( PHANDLE phMonitor, CPortMgr *pPortMgr );
DWORD ValidateMonitorHandle( HANDLE hMonitor );
DWORD FreeMonitorHandle( HANDLE hMonitor );
BOOL WINAPI EndDocPort (HANDLE hPort);
BOOL WINAPI StartDocPort(HANDLE hPort,
LPTSTR pPrinterName,
DWORD jobId,
DWORD level,
LPBYTE pDocInfo);
BOOL AddPortExW(LPTSTR psztName,
DWORD Level,
LPBYTE lpBuffer,
LPTSTR psztMonitorName);
BOOL WINAPI AddPortUIEx(LPBYTE pData);
BOOL WINAPI ConfigPortUIEx(const LPBYTE pData);
BOOL ClusterOpenPort(HANDLE hcKey,
LPTSTR pName,
PHANDLE pHandle);
BOOL ClusterXcvOpenPort( HANDLE hcKey,
LPCTSTR pszObject,
ACCESS_MASK GrantedAccess,
PHANDLE phXcv);
BOOL ClusterAddPort(HANDLE hcKey,
LPTSTR psztName,
HWND hWnd,
LPTSTR psztMonitorName);
BOOL ClusterAddPortExW( HANDLE hcKey,
LPTSTR psztName,
DWORD Level,
LPBYTE lpBuffer,
LPTSTR psztMonitorName);
BOOL ClusterConfigurePort( HANDLE hcKey,
LPTSTR psztName,
HWND hWnd,
LPTSTR psztPortName);
BOOL ClusterDeletePort( HANDLE hcKey,
LPTSTR psztName,
HWND hWnd,
LPTSTR psztPortName);
BOOL ClusterEnumPorts( HANDLE hcKey,
LPTSTR psztName,
DWORD Level, // 1 (PORT_INFO_1) or 2 (PORT_INFO_2)
LPBYTE pPorts, // port data is written to
DWORD cbBuf, // buffer size of pPorts points to
LPDWORD pcbNeeded, // needed buffer size
LPDWORD pcReturned) ; // number of structs written to pPorts
VOID ClusterShutdown( HANDLE hTcpMon );
_inline char *strncpyn(char *pszdest, const char *pszsrc, size_t n) {
(strncpy( pszdest, pszsrc, n))[n - 1] = NULL;
return pszdest;
}
#ifdef __cplusplus
}
#endif
#endif // INC_HPSPPMON_H