110 lines
3.4 KiB
C++
110 lines
3.4 KiB
C++
// admin.h : Declaration of the CNntpAdmin
|
|
|
|
// Dependencies:
|
|
|
|
#include "metafact.h"
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// nntpadm
|
|
|
|
class CNntpAdmin :
|
|
public CComDualImpl<INntpAdmin, &IID_INntpAdmin, &LIBID_NNTPADMLib>,
|
|
public ISupportErrorInfo,
|
|
public CComObjectRoot,
|
|
public CComCoClass<CNntpAdmin,&CLSID_CNntpAdmin>
|
|
{
|
|
public:
|
|
CNntpAdmin();
|
|
virtual ~CNntpAdmin ();
|
|
|
|
BEGIN_COM_MAP(CNntpAdmin)
|
|
COM_INTERFACE_ENTRY(IDispatch)
|
|
COM_INTERFACE_ENTRY(INntpAdmin)
|
|
COM_INTERFACE_ENTRY(ISupportErrorInfo)
|
|
END_COM_MAP()
|
|
//DECLARE_NOT_AGGREGATABLE(CNntpAdmin)
|
|
// 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(CNntpAdmin, _T("Nntpadm.Admin.1"), _T("Nntpadm.Admin"), IDS_NNTPADMIN_DESC, THREADFLAGS_BOTH)
|
|
// ISupportsErrorInfo
|
|
STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);
|
|
|
|
// INntpAdmin
|
|
public:
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Properties:
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
// Pointers to other INntpAdmin interfaces:
|
|
|
|
STDMETHODIMP get_ServerAdmin ( IDispatch ** ppIDispatch );
|
|
// STDMETHODIMP get_ServiceAdmin ( IDispatch ** ppIDispatch );
|
|
|
|
// Which service to configure:
|
|
|
|
STDMETHODIMP get_Server ( BSTR * pstrServer );
|
|
STDMETHODIMP put_Server ( BSTR strServer );
|
|
|
|
STDMETHODIMP get_ServiceInstance ( long * plServiceInstance );
|
|
STDMETHODIMP put_ServiceInstance ( long lServiceInstance );
|
|
|
|
// Versioning:
|
|
|
|
STDMETHODIMP get_HighVersion ( long * plHighVersion );
|
|
STDMETHODIMP get_LowVersion ( long * plLowVersion );
|
|
STDMETHODIMP get_BuildNum ( long * plBuildNumber );
|
|
STDMETHODIMP get_ServiceVersion ( long * plServiceVersion );
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Methods:
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
STDMETHODIMP EnumerateInstances ( SAFEARRAY ** ppsaInstances );
|
|
STDMETHODIMP EnumerateInstancesVariant ( SAFEARRAY ** ppsaInstances );
|
|
STDMETHODIMP CreateInstance (
|
|
BSTR strNntpFileDirectory,
|
|
BSTR strHomeDirectory,
|
|
BSTR strProgId,
|
|
BSTR strMdbGuid,
|
|
long * plInstanceId
|
|
);
|
|
STDMETHODIMP DestroyInstance ( long lInstanceId );
|
|
STDMETHODIMP ErrorToString ( long lErrorCode, BSTR * pstrError );
|
|
STDMETHODIMP Tokenize ( BSTR strIn, BSTR * pstrOut );
|
|
STDMETHODIMP Truncate ( BSTR strIn, long cMaxChars, BSTR * pstrOut );
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Data:
|
|
//////////////////////////////////////////////////////////////////////
|
|
private:
|
|
|
|
CComBSTR m_strServer;
|
|
DWORD m_dwServiceInstance;
|
|
|
|
DWORD m_dwServiceVersion;
|
|
|
|
// Metabase:
|
|
CMetabaseFactory m_mbFactory;
|
|
|
|
HRESULT QueryMetabaseInstances ( IMSAdminBase * pMetabase, SAFEARRAY ** ppsaInstances );
|
|
HRESULT CreateNewInstance (
|
|
IMSAdminBase * pMetabase,
|
|
BSTR strNntpFileDirectory,
|
|
BSTR strHomeDirectory,
|
|
BSTR strProgId,
|
|
BSTR strMdbGuid,
|
|
long * plInstanceId
|
|
);
|
|
HRESULT DeleteInstance ( IMSAdminBase * pMetabase, long lInstanceId );
|
|
HRESULT CreateVRoot(
|
|
CMetabaseKey &mkeyNntp,
|
|
BSTR strVPath,
|
|
BSTR strProgId,
|
|
BSTR strMdbGuid,
|
|
LPWSTR wszKeyPath
|
|
);
|
|
};
|
|
|