windows-nt/Source/XPSP1/NT/inetsrv/iis/svcs/nntp/adminsso/expinfo.h
2020-09-26 16:20:57 +08:00

108 lines
2.3 KiB
C++

/*++
Copyright (c) 1996 Microsoft Corporation
Module Name:
expinfo.h
Abstract:
Defines the CExpirationPolicy class that maintains all properties about an
expiration policy.
Author:
Magnus Hedlund (MagnusH) --
Revision History:
--*/
#ifndef _EXPINFO_INCLUDED_
#define _EXPINFO_INCLUDED_
// Dependencies:
#include "cmultisz.h"
typedef struct _NNTP_EXPIRE_INFO NNTP_EXPIRE_INFO, * LPNNTP_EXPIRE_INFO;
//
// Changed flags:
//
#define CHNG_EXPIRE_SIZE 0x00000001
#define CHNG_EXPIRE_TIME 0x00000002
#define CHNG_EXPIRE_NEWSGROUPS 0x00000004
#define CHNG_EXPIRE_ID 0x00000008
#define CHNG_EXPIRE_POLICY_NAME 0x00000010
/////////////////////////////////////////////////////////////////////////////
// Defaults:
#define DEFAULT_EXPIRE_SIZE ( 500 ) // 500 megabytes
#define DEFAULT_EXPIRE_TIME ( 24 * 7 ) // One week
#define DEFAULT_EXPIRE_NEWSGROUPS ( _T ("\0") ) // Empty list
#define DEFAULT_EXPIRE_POLICY_NAME ( _T ("") ) // No name
DWORD GetExpireId ( const LPWSTR wszKey );
BOOL IsKeyValidExpire ( const LPWSTR wszKey );
//$-------------------------------------------------------------------
//
// Class:
//
// CExpirationPolicy
//
// Description:
//
// Maintains properties about a expire & communicates with the metabase.
//
// Interface:
//
//
//
//--------------------------------------------------------------------
class CExpirationPolicy
{
public:
CExpirationPolicy ( );
~CExpirationPolicy ( );
void Destroy ();
const CExpirationPolicy & operator= ( const CExpirationPolicy & Expire );
inline const CExpirationPolicy & operator= ( const NNTP_EXPIRE_INFO & Expire ) {
FromExpireInfo ( &Expire );
return *this;
}
BOOL CheckValid ();
HRESULT ToExpireInfo ( LPNNTP_EXPIRE_INFO pExpireInfo );
void FromExpireInfo ( const NNTP_EXPIRE_INFO * pExpireInfo );
HRESULT Add ( LPCWSTR strServer, DWORD dwInstance);
HRESULT Set ( LPCWSTR strServer, DWORD dwInstance);
// HRESULT Get ( LPCWSTR strServer, DWORD dwInstance);
HRESULT Remove ( LPCWSTR strServer, DWORD dwInstance);
// expire Properties:
public:
DWORD m_dwExpireId;
CComBSTR m_strPolicyName;
DWORD m_dwSize;
DWORD m_dwTime;
CMultiSz m_mszNewsgroups;
private:
// Don't call the copy constructor:
CExpirationPolicy ( const CExpirationPolicy & );
};
#endif // _EXPINFO_INCLUDED_