Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

796 lines
16 KiB

//
// inetprop.h : header file
//
#ifndef _INETPROP_H_
#define _INETPROP_H_
#include "svcloc.h"
//===========================================================================
//
// Utility Functions
//
//===========================================================================
#ifdef WIN95
#define NETAPIBUFFERFREE(__x__) // Not supported
#else
#define NETAPIBUFFERFREE(__x__) NetApiBufferFree(__x__)
#endif
NET_API_STATUS
GetInetComment(
LPCTSTR lpwstrServer, // Server whose comment is to be queried.
DWORD dwServiceMask, // INet service mask
int cchComment, // Size of comment buffer in characters
LPTSTR lpstrComment // Comment buffer.
);
NET_API_STATUS
QueryInetServiceStatus(
LPCTSTR lpszServer,
LPCTSTR lpszService,
int * pnState
);
NET_API_STATUS
ChangeInetServiceState(
LPCTSTR lpszServer, // Server name
LPCTSTR lpszService, // Service name
int nNewState, // INetService* definition.
int * pnCurrentState // Ptr to current state (will be changed)
);
//
// True modal dialog proc
//
LRESULT CALLBACK
MfcModalDlgProc(
HWND hWnd,
UINT message,
WPARAM wParam,
LPARAM lParam
);
//===========================================================================
//
// Utility classes
//
//===========================================================================
//
// Pure virtual base class for INetApi objects
//
class COMDLL CInetConfig : public CObjectPlus
{
public:
//
// Constructor/Destructor
//
CInetConfig(
DWORD dwServiceMask,
CStringList * pServerList,
CWnd * pParent = NULL
);
//
// Copy constructor
//
CInetConfig(
const CInetConfig & inetConfig
);
~CInetConfig();
//
// Access
//
public:
inline NET_API_STATUS QueryError() const
{
return m_err;
}
//
// The derived classes should provide a method to
// fill the data structure...
//
public:
NET_API_STATUS GetInfo();
NET_API_STATUS SetInfo(BOOL fCommon = FALSE);
public:
inline LPCTSTR GetPrimaryServer()
{
return m_pServerList->GetHead();
}
protected:
virtual void DestroyContents();
void Initialize();
protected:
/* PURE */ virtual NET_API_STATUS GetApiStructure(LPCTSTR lpstrServer) = 0;
/* PURE */ virtual NET_API_STATUS SetApiStructure(LPCTSTR lpstrServer,
BOOL fCommon = FALSE) = 0;
protected:
NET_API_STATUS m_err; // API Error
BOOL m_fAllocatedByAPI; // TRUE if the structure was allocated
// by the API
CStringList * m_pServerList; // List of servers connected
DWORD m_dwServiceMask; // Service mask
LPVOID m_pInfo; // actual data (depends on derived class)
CWnd * m_pParent; // Parent window (or NULL)
};
/////////////////////////////////////////////////////////////////////////////
//
// InetAGlobalConfigInfo API wrapper
//
class COMDLL CInetAGlobalConfigInfo : public CInetConfig
{
public:
CInetAGlobalConfigInfo(
DWORD dwServiceMask,
CStringList * pServerList,
CWnd * pParent = NULL
);
public:
//
// Set memcache values -- values are in bytes.
//
void SetValues(
DWORD dwMemCache,
DWORD dwMaxNetworkUse
);
void SetValues(
DWORD dwMaxNetworkUse
);
#ifdef _INET_ACCESS
void SetValues(
BOOL fEnableFiltering,
int nGrantedDenied,
LPINET_ACCS_DOMAIN_FILTER_LIST GrantList,
LPINET_ACCS_DOMAIN_FILTER_LIST DenyList
);
void SetValues(
LPINETA_DISK_CACHE_LOC_LIST lpCacheEntries
);
#endif // _INET_ACCESS
inline LPINETA_GLOBAL_CONFIG_INFO GetData()
{
return (LPINETA_GLOBAL_CONFIG_INFO)m_pInfo;
}
protected:
void Initialize();
virtual NET_API_STATUS GetApiStructure(LPCTSTR lpstrServer);
virtual NET_API_STATUS SetApiStructure(LPCTSTR lpstrServer,
BOOL fCommon = FALSE);
};
/////////////////////////////////////////////////////////////////////////////
//
// InetAConfigInfo API wrapper
//
//
// BUGBUG: pass all strings as CString& and allocate within
// SetValues.
//
// Allow only some items to be set (with field control)
// ignore others that are not dirty
//
class COMDLL CInetAConfigInfo : public CInetConfig
{
public:
CInetAConfigInfo(
DWORD dwServiceMask,
CStringList * pServerList,
CWnd * pParent = NULL
);
public:
#ifdef _INET_INFO
//
// Set virtual roots
//
void SetValues(
LPINETA_VIRTUAL_ROOT_LIST lpVirtualRoots
);
//
// Set site securiy information
//
void SetValues(
LPINETA_IP_SEC_LIST GrantList,
LPINETA_IP_SEC_LIST DenyList
);
#endif // _INET_INFO
//
// Set logging information
//
void SetValues(
LPINETA_LOG_CONFIGURATION lpLogInfo
);
//
// Set service info
//
void SetValues(
LPWSTR lpszServerComment,
LPWSTR lpszAdminEmail,
LPWSTR lpszAdminName
);
void SetValues(
LPWSTR lpszServerComment
);
#ifdef _INET_INFO
//
// Set service info (Gopher Service Page)
//
#ifndef NO_LSA
void SetValues(
LPWSTR lpszServerComment,
LPWSTR lpszAdminEmail,
LPWSTR lpszAdminName,
UINT nTCPPort,
int nMaxConnections,
int nConnectionTimeOut,
LPWSTR lpszAnonUserName,
LPCTSTR lpszPassword
);
void SetValues(
LPWSTR lpszServerComment,
UINT nTCPPort,
int nMaxConnections,
int nConnectionTimeOut,
DWORD dwAuthentication,
LPWSTR lpszAnonUserName,
LPCTSTR lpszPassword
);
void SetValues(
LPWSTR lpszServerComment,
int nConnectionTimeOut,
DWORD dwAuthentication,
LPWSTR lpszAnonUserName,
LPCTSTR lpszPassword
);
void SetValues(
LPWSTR lpszServerComment,
UINT nTCPPort,
int nMaxConnections,
int nConnectionTimeOut,
LPWSTR lpszAnonUserName,
LPCTSTR lpszPassword
);
//
// Set sessions info
//
void SetValues(
UINT nTCPPort,
int nMaxConnections,
int nConnectionTimeOut,
DWORD dwAuthentication,
LPWSTR lpszAnonUserName,
LPCTSTR lpszPassword
);
//
// Set sessions info w/o authentication
//
void SetValues(
UINT nTCPPort,
int nMaxConnections,
int nConnectionTimeOut,
LPWSTR lpszAnonUserName,
LPCTSTR lpszPassword
);
#else
void SetValues(
LPWSTR lpszServerComment,
LPWSTR lpszAdminEmail,
LPWSTR lpszAdminName,
UINT nTCPPort,
int nMaxConnections,
int nConnectionTimeOut
);
void SetValues(
LPWSTR lpszServerComment,
UINT nTCPPort,
int nMaxConnections,
int nConnectionTimeOut,
DWORD dwAuthentication
);
void SetValues(
LPWSTR lpszServerComment,
int nConnectionTimeOut,
DWORD dwAuthentication
);
void SetValues(
LPWSTR lpszServerComment,
UINT nTCPPort,
int nMaxConnections,
int nConnectionTimeOut
);
//
// Set sessions info
//
void SetValues(
UINT nTCPPort,
int nMaxConnections,
int nConnectionTimeOut,
DWORD dwAuthentication
);
//
// Set sessions info w/o authentication
//
void SetValues(
UINT nTCPPort,
int nMaxConnections,
int nConnectionTimeOut
);
#endif // NO_LSA
#endif // _INET_INFO
#ifdef _INET_ACCESS
//
// This one is used in Catapult
//
void SetValues(
int nMaxConnections,
LPWSTR lpszServerComment,
LPWSTR lpszAdminEmail,
LPWSTR lpszAdminName
);
#endif // _INET_ACCESS
inline LPINETA_CONFIG_INFO GetData()
{
return (LPINETA_CONFIG_INFO)m_pInfo;
}
protected:
void Initialize();
virtual NET_API_STATUS GetApiStructure(LPCTSTR lpstrServer);
virtual NET_API_STATUS SetApiStructure(LPCTSTR lpstrServer,
BOOL fCommon = FALSE);
};
/////////////////////////////////////////////////////////////////////////////
//
// Service capability object
//
class COMDLL CInetServiceCap
{
public:
CInetServiceCap(
CStringList * pServerList
);
public:
//
// Server Capabilities
//
#ifdef _INET_INFO
inline BOOL Is10ConnectionLimitEnforced() const
{
return (m_Flag & IIS_CAP1_10_CONNECTION_LIMIT) != 0L;
}
inline BOOL IsODBCLoggingEnabled() const
{
return (m_Flag & IIS_CAP1_ODBC_LOGGING) != 0L;
}
inline BOOL IsVirtualServerEnabled() const
{
return (m_Flag & IIS_CAP1_VIRTUAL_SERVER) != 0L;
}
inline BOOL IsIpAccessCheckEnabled() const
{
return (m_Flag & IIS_CAP1_IP_ACCESS_CHECK) != 0L;
}
inline BOOL IsBwThrottlingEnabled() const
{
return (m_Flag & IIS_CAP1_BW_THROTTLING) != 0L;
}
inline BOOL IsVer3OrAbove() const
{
return(m_MajorVersion>=3);
}
#else
//
// Version Cap not defined in ACCESS -- assume everything is
// supported
//
inline BOOL IsODBCLoggingEnabled() const
{
return TRUE;
}
inline BOOL IsVirtualServerEnabled() const
{
return TRUE;
}
inline BOOL IsIpAccessCheckEnabled() const
{
return TRUE;
}
inline BOOL IsBwThrottlingEnabled() const
{
return TRUE;
}
inline BOOL IsVer3OrAbove() const
{
return(TRUE);
}
#endif // _INET_INFO
inline NET_API_STATUS QueryError() const
{
return m_err;
}
NET_API_STATUS GetInfo();
private:
//
// Taken straight from inetinfo.h
//
DWORD m_CapVersion; // Version number of this structure
DWORD m_ProductType; // Product type
DWORD m_MajorVersion; // Major version number
DWORD m_MinorVersion; // Minor Version number
DWORD m_BuildNumber; // Build number
DWORD m_Flag;
DWORD m_Mask;
NET_API_STATUS m_err;
CStringList * m_pServerList;
};
/////////////////////////////////////////////////////////////////////////////
//
// INetPropertySheet
//
class COMDLL INetPropertySheet : public CPropertySheet
{
DECLARE_DYNAMIC(INetPropertySheet)
//
// Construction/destruction
//
public:
INetPropertySheet(
UINT nIDCaption,
DWORD dwServiceMask,
CStringList *pServerList = NULL,
CWnd* pParentWnd = NULL,
UINT iSelectPage = 0
);
INetPropertySheet(
LPCTSTR pszCaption,
DWORD dwServiceMask,
CStringList *pServerList = NULL,
CWnd* pParentWnd = NULL,
UINT iSelectPage = 0
);
virtual ~INetPropertySheet();
//
// Overrides
//
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(INetPropertySheet)
//}}AFX_VIRTUAL
//
// Access
//
public:
NET_API_STATUS QueryError() const;
inline LPINETA_GLOBAL_CONFIG_INFO GetInetGlobalData()
{
return m_inetGlobal.GetData();
}
inline LPINETA_CONFIG_INFO GetInetConfigData()
{
return m_inetConfig.GetData();
}
inline NET_API_STATUS QueryGlobalError() const
{
return m_inetGlobal.QueryError();
}
inline NET_API_STATUS QueryConfigError() const
{
return m_inetConfig.QueryError();
}
inline NET_API_STATUS QueryCapError() const
{
return m_inetCap.QueryError();
}
//
// Is the current service connection on the local machine?
//
inline BOOL IsLocal() const
{
return m_fLocal;
}
inline BOOL SingleServerSelected() const
{
return m_fSingleServerSelected;
}
inline CInetAGlobalConfigInfo & GetGlobal()
{
return m_inetGlobal;
}
inline CInetAConfigInfo & GetConfig()
{
return m_inetConfig;
}
NET_API_STATUS SavePages(BOOL fUpdateData = FALSE);
//
// Server Capabilities
//
public:
inline BOOL Is10ConnectionLimitEnforced() const
{
return m_inetCap.Is10ConnectionLimitEnforced();
}
inline BOOL IsODBCLoggingEnabled() const
{
return m_inetCap.IsODBCLoggingEnabled();
}
inline BOOL IsNCSALoggingEnabled() const
{
//return m_inetCap.IsNCSALoggingEnabled();
return ( m_dwServiceMask & INET_W3_SERVICE ) != 0L;
}
inline BOOL IsVirtualServerEnabled()
{
return m_inetCap.IsVirtualServerEnabled();
}
inline BOOL IsVer3OrAbove() const
{
return m_inetCap.IsVer3OrAbove();
}
inline BOOL IsAdvancedEnabled()
{
return m_inetCap.IsIpAccessCheckEnabled()
&& m_inetCap.IsBwThrottlingEnabled();
}
//
// Generated message map functions
//
protected:
//{{AFX_MSG(INetPropertySheet)
//}}AFX_MSG
afx_msg void OnApplyNow();
DECLARE_MESSAGE_MAP()
void Initialize();
BOOL IsCurrentServerLocal(CStringList * pServerList);
private:
CInetAGlobalConfigInfo m_inetGlobal;
CInetAConfigInfo m_inetConfig;
CInetServiceCap m_inetCap;
BOOL m_fSingleServerSelected;
BOOL m_fLocal;
DWORD m_dwServiceMask;
};
/////////////////////////////////////////////////////////////////////////////
//
// INetPropertyPage dialog
//
class COMDLL INetPropertyPage : public CPropertyPage
{
DECLARE_DYNAMIC(INetPropertyPage)
//
// Construction/Destruction
//
public:
INetPropertyPage(
UINT nIDTemplate,
INetPropertySheet * pSheet,
HINSTANCE hSelfHandle,
UINT nIDCaption = 0
);
INetPropertyPage(
LPCTSTR lpszTemplateName,
INetPropertySheet * pSheet,
HINSTANCE hSelfHandle,
UINT nIDCaption = 0
);
~INetPropertyPage();
//
// Dialog Data
//
//{{AFX_DATA(INetPropertyPage)
//enum { IDD = _UNKNOWN_RESOURCE_ID_ };
// NOTE - ClassWizard will add data members here.
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_DATA
//
// Overrides
//
public:
//
// Derived classes must provide their own SaveInfo. Notice
// that this function may be called after the dialog
// is dismissed, so all DDX/DDV transfer must have been
// performed already in fUpdataData is FALSE
//
/* PURE */ virtual NET_API_STATUS SaveInfo(
BOOL fUpdateData = FALSE
) = 0;
virtual void OnOK();
#ifndef _COMSTATIC
virtual BOOL OnSetActive();
virtual BOOL OnKillActive();
#endif
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(INetPropertyPage)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
protected:
//
// Generated message map functions
//
//{{AFX_MSG(INetPropertyPage)
// NOTE: the ClassWizard will add member functions here
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
virtual BOOL OnInitDialog();
protected:
inline INetPropertySheet * GetSheet()
{
return m_pSheet;
}
inline LPINETA_GLOBAL_CONFIG_INFO GetInetGlobalData()
{
return GetSheet()->GetInetGlobalData();
}
inline LPINETA_CONFIG_INFO GetInetConfigData()
{
return GetSheet()->GetInetConfigData();
}
inline CInetAGlobalConfigInfo & GetGlobal()
{
return GetSheet()->GetGlobal();
}
inline CInetAConfigInfo & GetConfig()
{
return GetSheet()->GetConfig();
}
inline NET_API_STATUS QueryGlobalError() const
{
return m_pSheet->QueryGlobalError();
}
inline NET_API_STATUS QueryConfigError() const
{
return m_pSheet->QueryConfigError();
}
//
// Is the current service connection on the local machine?
//
inline BOOL IsLocal() const
{
return m_pSheet->IsLocal();
}
inline BOOL SingleServerSelected() const
{
return m_pSheet->SingleServerSelected();
}
inline BOOL IsDirty() const
{
return m_bChanged;
}
#if _MFC_VER >= 0x0400
//
// Keep private information on page dirty state, necessary for
// SaveInfo() later.
//
public:
void SetModified( BOOL bChanged = TRUE );
protected:
BOOL m_bChanged;
#endif // _MFC_VER >= 0x0400
private:
INetPropertySheet * m_pSheet;
HINSTANCE m_hOldInstance;
HINSTANCE m_hSelfHandle;
};
#endif