Source code of Windows XP (NT5)
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.
|
|
// server.h : Declaration of the CNntpVirtualServer
/////////////////////////////////////////////////////////////////////////////
// Dependencies:
#include "metafact.h"
#include "binding.h"
#include "vroots.h"
#include "ipaccess.h"
/////////////////////////////////////////////////////////////////////////////
// nntpadm
class CNntpVirtualServer : public CComDualImpl<INntpVirtualServer, &IID_INntpVirtualServer, &LIBID_NNTPADMLib>, public ISupportErrorInfo, public CComObjectRoot, public CComCoClass<CNntpVirtualServer,&CLSID_CNntpVirtualServer> { public: CNntpVirtualServer(); virtual ~CNntpVirtualServer (); BEGIN_COM_MAP(CNntpVirtualServer) COM_INTERFACE_ENTRY(IDispatch) COM_INTERFACE_ENTRY(INntpVirtualServer) COM_INTERFACE_ENTRY(ISupportErrorInfo) END_COM_MAP() //DECLARE_NOT_AGGREGATABLE(CNntpVirtualServer)
// Remove the comment from the line above if you don't want your object to
// support aggregation. The default is to support it
DECLARE_REGISTRY(CNntpVirtualServer, _T("Nntpadm.VirtualServer.1"), _T("Nntpadm.VirtualServer"), IDS_NNTPADMINSERVICE_DESC, THREADFLAGS_BOTH) // ISupportsErrorInfo
STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);
// INntpVirtualServer
public:
//////////////////////////////////////////////////////////////////////
// Properties:
//////////////////////////////////////////////////////////////////////
// Which service to configure:
STDMETHODIMP get_Server ( BSTR * pstrServer ); STDMETHODIMP put_Server ( BSTR strServer );
STDMETHODIMP get_ServiceInstance ( long * plServiceInstance ); STDMETHODIMP put_ServiceInstance ( long lServiceInstance );
// Other admin interfaces for virtual server:
STDMETHODIMP get_FeedsAdmin ( IDispatch ** ppIDispatch ); STDMETHODIMP get_GroupsAdmin ( IDispatch ** ppIDispatch ); STDMETHODIMP get_SessionsAdmin ( IDispatch ** ppIDispatch ); STDMETHODIMP get_ExpirationAdmin ( IDispatch ** ppIDispatch ); STDMETHODIMP get_RebuildAdmin ( IDispatch ** ppIDispatch );
STDMETHODIMP get_VirtualRoots ( INntpVirtualRoots ** ppVirtualRoots ); STDMETHODIMP get_VirtualRootsDispatch ( IDispatch ** ppVirtualRoots );
STDMETHODIMP get_TcpAccess ( ITcpAccess ** ppTcpAccess ); /*
STDMETHODIMP get_HomeDirectory ( INntpVirtualRoot ** ppVirtualRoot ); STDMETHODIMP put_HomeDirectory ( INntpVirtualRoot * pVirtualRoot ); */
// Overridable server properties:
STDMETHODIMP get_ArticleTimeLimit ( long * plArticleTimeLimit ); STDMETHODIMP put_ArticleTimeLimit ( long lArticleTimeLimit );
STDMETHODIMP get_HistoryExpiration ( long * plHistoryExpiration ); STDMETHODIMP put_HistoryExpiration ( long lHistoryExpiration );
STDMETHODIMP get_HonorClientMsgIDs ( BOOL * pfHonorClientMsgIDs ); STDMETHODIMP put_HonorClientMsgIDs ( BOOL fHonorClientMsgIDs );
STDMETHODIMP get_SmtpServer ( BSTR * pstrSmtpServer ); STDMETHODIMP put_SmtpServer ( BSTR strSmtpServer );
STDMETHODIMP get_AdminEmail ( BSTR * pstrAdminEmail ); STDMETHODIMP put_AdminEmail ( BSTR strAdminEmail );
STDMETHODIMP get_AllowClientPosts ( BOOL * pfAllowClientPosts ); STDMETHODIMP put_AllowClientPosts ( BOOL fAllowClientPosts );
STDMETHODIMP get_AllowFeedPosts ( BOOL * pfAllowFeedPosts ); STDMETHODIMP put_AllowFeedPosts ( BOOL fAllowFeedPosts );
STDMETHODIMP get_ClientPostHardLimit ( long * plClientPostHardLimit ); STDMETHODIMP put_ClientPostHardLimit ( long lClientPostHardLimit );
STDMETHODIMP get_ClientPostSoftLimit ( long * plClientPostSoftLimit ); STDMETHODIMP put_ClientPostSoftLimit ( long lClientPostSoftLimit );
STDMETHODIMP get_FeedPostHardLimit ( long * plFeedPostHardLimit ); STDMETHODIMP put_FeedPostHardLimit ( long lFeedPostHardLimit );
STDMETHODIMP get_FeedPostSoftLimit ( long * plFeedPostSoftLimit ); STDMETHODIMP put_FeedPostSoftLimit ( long lFeedPostSoftLimit );
STDMETHODIMP get_AllowControlMsgs ( BOOL * pfAllowControlMsgs ); STDMETHODIMP put_AllowControlMsgs ( BOOL fAllowControlMsgs );
STDMETHODIMP get_DefaultModeratorDomain ( BSTR * pstrDefaultModeratorDomain ); STDMETHODIMP put_DefaultModeratorDomain ( BSTR strDefaultModeratorDomain );
STDMETHODIMP get_CommandLogMask ( long * plCommandLogMask ); STDMETHODIMP put_CommandLogMask ( long lCommandLogMask );
STDMETHODIMP get_DisableNewnews ( BOOL * pfDisableNewnews ); STDMETHODIMP put_DisableNewnews ( BOOL fDisableNewnews );
STDMETHODIMP get_ExpireRunFrequency ( long * plExpireRunFrequency ); STDMETHODIMP put_ExpireRunFrequency ( long lExpireRunFrequency );
STDMETHODIMP get_ShutdownLatency ( long * plShutdownLatency ); STDMETHODIMP put_ShutdownLatency ( long lShutdownLatency );
STDMETHODIMP get_EnableLogging ( BOOL * pfEnableLogging ); STDMETHODIMP put_EnableLogging ( BOOL fEnableLogging ); // Service Properties:
STDMETHODIMP get_Organization ( BSTR * pstrOrganization ); STDMETHODIMP put_Organization ( BSTR strOrganization );
STDMETHODIMP get_UucpName ( BSTR * pstrUucpName ); STDMETHODIMP put_UucpName ( BSTR strUucpName );
STDMETHODIMP get_GroupHelpFile ( BSTR * pstrGroupHelpFile ); STDMETHODIMP put_GroupHelpFile ( BSTR strGroupHelpFile );
STDMETHODIMP get_GroupListFile ( BSTR * pstrGroupListFile ); STDMETHODIMP put_GroupListFile ( BSTR strGroupListFile );
STDMETHODIMP get_GroupVarListFile ( BSTR *pstrGroupVarListFile ); STDMETHODIMP put_GroupVarListFile ( BSTR strGroupVarListFile );
STDMETHODIMP get_ArticleTableFile ( BSTR * pstrArticleTableFile ); STDMETHODIMP put_ArticleTableFile ( BSTR strArticleTableFile );
STDMETHODIMP get_HistoryTableFile ( BSTR * pstrHistoryTableFile ); STDMETHODIMP put_HistoryTableFile ( BSTR strHistoryTableFile );
STDMETHODIMP get_ModeratorFile ( BSTR * pstrModeratorFile ); STDMETHODIMP put_ModeratorFile ( BSTR strModeratorFile );
STDMETHODIMP get_XOverTableFile ( BSTR * pstrXOverTableFile ); STDMETHODIMP put_XOverTableFile ( BSTR strXOverTableFile );
STDMETHODIMP get_AutoStart ( BOOL * pfAutoStart ); STDMETHODIMP put_AutoStart ( BOOL fAutoStart );
STDMETHODIMP get_Comment ( BSTR * pstrComment ); STDMETHODIMP put_Comment ( BSTR strComment );
STDMETHODIMP get_Bindings ( INntpServerBindings ** ppBindings ); STDMETHODIMP get_BindingsDispatch ( IDispatch ** ppDispatch );
STDMETHODIMP get_SecurePort ( long * pdwSecurePort ); STDMETHODIMP put_SecurePort ( long dwSecurePort );
STDMETHODIMP get_MaxConnections ( long * pdwMaxConnections ); STDMETHODIMP put_MaxConnections ( long dwMaxConnections );
STDMETHODIMP get_ConnectionTimeout ( long * pdwConnectionTimeout ); STDMETHODIMP put_ConnectionTimeout ( long dwConnectionTimeout );
STDMETHODIMP get_AnonymousUserName ( BSTR * pstrAnonymousUserName ); STDMETHODIMP put_AnonymousUserName ( BSTR strAnonymousUserName );
STDMETHODIMP get_AnonymousUserPass ( BSTR * pstrAnonymousUserPass ); STDMETHODIMP put_AnonymousUserPass ( BSTR strAnonymousUserPass );
STDMETHODIMP get_AutoSyncPassword ( BOOL * pfAutoSyncPassword ); STDMETHODIMP put_AutoSyncPassword ( BOOL fAutoSyncPassword );
STDMETHODIMP get_PickupDirectory ( BSTR * pstrPickupDirectory ); STDMETHODIMP put_PickupDirectory ( BSTR strPickupDirectory );
STDMETHODIMP get_FailedPickupDirectory ( BSTR * pstrFailedPickupDirectory ); STDMETHODIMP put_FailedPickupDirectory ( BSTR strFailedPickupDirectory );
STDMETHODIMP get_AuthAnonymous ( BOOL * pfAuthAnonymous ); STDMETHODIMP put_AuthAnonymous ( BOOL fAuthAnonymous );
STDMETHODIMP get_AuthBasic ( BOOL * pfAuthBasic ); STDMETHODIMP put_AuthBasic ( BOOL fAuthBasic );
STDMETHODIMP get_AuthMCISBasic ( BOOL * pfAuthMCISBasic ); STDMETHODIMP put_AuthMCISBasic ( BOOL fAuthMCISBasic );
STDMETHODIMP get_AuthNT ( BOOL * pfAuthNT ); STDMETHODIMP put_AuthNT ( BOOL fAuthNT );
STDMETHODIMP get_SSLNegotiateCert ( BOOL * pfSSLNegotiateCert ); STDMETHODIMP put_SSLNegotiateCert ( BOOL fSSLNegotiateCert );
STDMETHODIMP get_SSLRequireCert ( BOOL * pfSSLRequireCert ); STDMETHODIMP put_SSLRequireCert ( BOOL fSSLRequireCert );
STDMETHODIMP get_SSLMapCert ( BOOL * pfSSLMapCert ); STDMETHODIMP put_SSLMapCert ( BOOL fSSLMapCert );
/*
STDMETHODIMP get_AuthenticationProviders ( SAFEARRAY ** ppsastrProviders ); STDMETHODIMP put_AuthenticationProviders ( SAFEARRAY * psastrProviders );
STDMETHODIMP get_AuthenticationProvidersVariant ( SAFEARRAY ** ppsastrProviders ); STDMETHODIMP put_AuthenticationProvidersVariant ( SAFEARRAY * psastrProviders ); */
/*
STDMETHODIMP get_NewsgroupsVariant ( SAFEARRAY ** ppsastrNewsgroups ); STDMETHODIMP put_NewsgroupsVariant ( SAFEARRAY * psastrNewsgroups ); */
STDMETHODIMP get_Administrators ( SAFEARRAY ** ppsastrAdmins ); STDMETHODIMP put_Administrators ( SAFEARRAY * psastrAdmins );
STDMETHODIMP get_AdministratorsVariant ( SAFEARRAY ** ppsastrAdmins ); STDMETHODIMP put_AdministratorsVariant ( SAFEARRAY * psastrAdmins );
STDMETHODIMP get_ClusterEnabled ( BOOL *pfClusterEnabled ); STDMETHODIMP put_ClusterEnabled ( BOOL fClusterEnabled );
//
// Service State Properties:
//
STDMETHODIMP get_State ( NNTP_SERVER_STATE * pState ); STDMETHODIMP get_Win32ErrorCode ( long * plWin32ErrorCode );
/*
STDMETHODIMP get_EncryptionCapabilitiesMask ( long * plEncryptionCapabilitiesMask ); STDMETHODIMP put_EncryptionCapabilitiesMask ( long lEncryptionCapabilitiesMask );
STDMETHODIMP get_DisplayName ( BSTR * pstrDisplayName ); STDMETHODIMP put_DisplayName ( BSTR strDisplayName );
STDMETHODIMP get_ErrorControl ( BOOL * pfErrorControl ); STDMETHODIMP put_ErrorControl ( BOOL fErrorControl );
STDMETHODIMP get_CleanBoot ( BOOL * pfCleanBoot ); STDMETHODIMP put_CleanBoot ( BOOL fCleanBoot ); */
//////////////////////////////////////////////////////////////////////
// Methods:
//////////////////////////////////////////////////////////////////////
STDMETHODIMP Get ( ); STDMETHODIMP Set ( BOOL fFailIfChanged);
STDMETHODIMP Start ( ); STDMETHODIMP Pause ( ); STDMETHODIMP Continue ( ); STDMETHODIMP Stop ( );
//////////////////////////////////////////////////////////////////////
// Data:
//////////////////////////////////////////////////////////////////////
private:
// Properties:
CComBSTR m_strServer; DWORD m_dwServiceInstance;
DWORD m_dwArticleTimeLimit; DWORD m_dwHistoryExpiration; BOOL m_fHonorClientMsgIDs; CComBSTR m_strSmtpServer; CComBSTR m_strAdminEmail; BOOL m_fAllowClientPosts; BOOL m_fAllowFeedPosts; BOOL m_fAllowControlMsgs; CComBSTR m_strDefaultModeratorDomain; DWORD m_dwCommandLogMask; BOOL m_fDisableNewnews; DWORD m_dwExpireRunFrequency; DWORD m_dwShutdownLatency;
DWORD m_dwClientPostHardLimit; DWORD m_dwClientPostSoftLimit; DWORD m_dwFeedPostHardLimit; DWORD m_dwFeedPostSoftLimit;
BOOL m_fEnableLogging; CComBSTR m_strGroupHelpFile; CComBSTR m_strGroupListFile; CComBSTR m_strGroupVarListFile; CComBSTR m_strArticleTableFile; CComBSTR m_strHistoryTableFile; CComBSTR m_strModeratorFile; CComBSTR m_strXOverTableFile; CComBSTR m_strUucpName; CComBSTR m_strOrganization; BOOL m_fAutoStart; CComBSTR m_strComment; DWORD m_dwSecurePort; DWORD m_dwMaxConnections; DWORD m_dwConnectionTimeout; CComBSTR m_strAnonymousUserName; CComBSTR m_strAnonymousUserPass; BOOL m_fAutoSyncPassword; CComBSTR m_strPickupDirectory; CComBSTR m_strFailedPickupDirectory; DWORD m_bvAuthorization; DWORD m_bvSslAccess; BOOL m_fClusterEnabled; // CMultiSz m_mszProviders;
SAFEARRAY * m_psaAdmins;
// Service State:
NNTP_SERVER_STATE m_State; DWORD m_dwWin32ErrorCode;
// Tcp restrictions:
CComPtr<ITcpAccess> m_pIpAccess; CTcpAccess * m_pPrivateIpAccess;
// Bindings:
CComPtr<INntpServerBindings> m_pBindings; CNntpServerBindings * m_pPrivateBindings; /*
CComPtr<INntpVirtualRoot> m_pHomeDirectory; CNntpVirtualRoot * m_pPrivateHomeDirectory; */
// Unused so far:
DWORD m_dwEncryptionCapabilities; CComBSTR m_strDisplayName; BOOL m_fErrorControl; BOOL m_fCleanBoot;
// Status:
BOOL m_fGotProperties; DWORD m_bvChangedFields; DWORD m_bvChangedFields2; FILETIME m_ftLastChanged;
// Metabase:
CMetabaseFactory m_mbFactory;
HRESULT GetPropertiesFromMetabase ( IMSAdminBase * pMetabase); HRESULT SendPropertiesToMetabase ( BOOL fFailIfChanged, IMSAdminBase * pMetabase);
// State:
HRESULT ControlService ( IMSAdminBase * pMetabase, DWORD ControlCode, DWORD dwDesiredState, DWORD dwPendingState ); HRESULT WriteStateCommand ( IMSAdminBase * pMetabase, DWORD dwCommand ); HRESULT CheckServiceState ( IMSAdminBase * pMetabase, DWORD * pdwState ); NNTP_SERVER_STATE TranslateServerState ( DWORD dwState );
// Validation:
BOOL ValidateStrings ( ) const; BOOL ValidateProperties ( ) const; void CorrectProperties ( ); };
|