windows-nt/Source/XPSP1/NT/enduser/netmeeting/ui/conf/confpolicies.h
2020-09-26 16:20:57 +08:00

351 lines
9.8 KiB
C++

#ifndef __ConfPolicies_h__
#define __ConfPolicies_h__
#include "resource.h"
#include "ConfUtil.h"
#include "ConfReg.h"
extern bool g_bAutoAccept;
namespace ConfPolicies
{
#if USE_GAL
inline bool IsGetMyInfoFromGALEnabled( void )
{
RegEntry rePol( POLICIES_KEY, HKEY_CURRENT_USER );
return rePol.GetNumber( REGVAL_POL_GAL_USE, DEFAULT_POL_GAL_USE ) ? true : false ;
}
inline bool GetMyInfoFromGALSucceeded( void )
{
RegEntry reIsapi( ISAPI_KEY, HKEY_CURRENT_USER );
if( NULL == reIsapi.GetString( REGVAL_ULS_FIRST_NAME ) ||
NULL == reIsapi.GetString( REGVAL_ULS_LAST_NAME ) ||
NULL == reIsapi.GetString( REGVAL_ULS_EMAIL_NAME ) )
{
return false;
}
else
{
return true;
}
}
inline DWORD GetGALName()
{
RegEntry rePol( POLICIES_KEY, HKEY_CURRENT_USER );
return (DWORD)rePol.GetNumber( REGVAL_POL_GAL_NAME, DEFAULT_POL_GAL_NAME );
}
inline DWORD GetGALSurName()
{
RegEntry rePol( POLICIES_KEY, HKEY_CURRENT_USER );
return (DWORD)rePol.GetNumber( REGVAL_POL_GAL_SURNAME, DEFAULT_POL_GAL_SURNAME );
}
inline DWORD GetGALEmail()
{
RegEntry rePol( POLICIES_KEY, HKEY_CURRENT_USER );
return (DWORD)rePol.GetNumber( REGVAL_POL_GAL_EMAIL, DEFAULT_POL_GAL_EMAIL );
}
inline DWORD GetGALLocation()
{
RegEntry rePol( POLICIES_KEY, HKEY_CURRENT_USER );
return (DWORD)rePol.GetNumber( REGVAL_POL_GAL_LOCATION, DEFAULT_POL_GAL_LOCATION );
}
inline DWORD GetGALPhoneNum()
{
RegEntry rePol( POLICIES_KEY, HKEY_CURRENT_USER );
return (DWORD)rePol.GetNumber( REGVAL_POL_GAL_PHONENUM, DEFAULT_POL_GAL_PHONENUM );
}
inline DWORD GetGALComment()
{
RegEntry rePol( POLICIES_KEY, HKEY_CURRENT_USER );
return (DWORD)rePol.GetNumber( REGVAL_POL_GAL_COMMENTS, DEFAULT_POL_GAL_COMMENTS );
}
#endif // USE_GAL
inline bool IsShowFirstTimeUrlEnabled( void )
{
RegEntry rePol( POLICIES_KEY, HKEY_CURRENT_USER );
return rePol.GetNumber( REGVAL_POL_SHOW_FIRST_TIME_URL, DEFAULT_POL_SHOW_FIRST_TIME_URL ) ? true : false;
}
inline bool IsChatEnabled( void )
{
RegEntry rePol(POLICIES_KEY, HKEY_CURRENT_USER);
return !rePol.GetNumber( REGVAL_POL_NO_CHAT, DEFAULT_POL_NO_CHAT );
}
inline bool IsFileTransferEnabled( void )
{
RegEntry rePol(POLICIES_KEY, HKEY_CURRENT_USER);
return(!rePol.GetNumber( REGVAL_POL_NO_FILETRANSFER_SEND, DEFAULT_POL_NO_FILETRANSFER_SEND)
|| !rePol.GetNumber( REGVAL_POL_NO_FILETRANSFER_RECEIVE, DEFAULT_POL_NO_FILETRANSFER_RECEIVE));
}
inline UINT GetMaxSendFileSize( void )
{
RegEntry rePol(POLICIES_KEY, HKEY_CURRENT_USER);
return(rePol.GetNumber(REGVAL_POL_MAX_SENDFILESIZE, DEFAULT_POL_MAX_FILE_SIZE));
}
inline bool IsOldWhiteboardEnabled( void )
{
RegEntry rePol(POLICIES_KEY, HKEY_CURRENT_USER);
return !rePol.GetNumber( REGVAL_POL_NO_OLDWHITEBOARD, DEFAULT_POL_NO_OLDWHITEBOARD );
}
inline bool IsNewWhiteboardEnabled( void )
{
RegEntry rePol(POLICIES_KEY, HKEY_CURRENT_USER);
return !rePol.GetNumber( REGVAL_POL_NO_NEWWHITEBOARD, DEFAULT_POL_NO_NEWWHITEBOARD );
}
// Returns true if need to add LCID stuff
inline bool GetIntranetSupportURL( TCHAR *sz, int cchmax )
{
bool bRet = false;
// if the string params are messed up, just return false
ASSERT( sz && ( cchmax > 0 ) );
// Try to get the registry value
RegEntry rePol(POLICIES_KEY, HKEY_CURRENT_USER);
LPCTSTR szTemp = rePol.GetString( REGVAL_POL_INTRANET_SUPPORT_URL );
if( szTemp[0] )
{
// This means that the registry value is there and the query succeeded
lstrcpyn( sz, szTemp, cchmax );
}
else
{ // There is no reg key, we use the default
Res2THelper( IDS_WEB_PAGE_FORMAT_SUPPORT, sz, cchmax );
bRet = true;
}
return(bRet);
}
// Returns non-empty strings if there is a web dir set by policy
bool GetWebDirInfo(
LPTSTR szURL=NULL, int cchmaxURL=0,
LPTSTR szServer=NULL, int cchmaxServer=0,
LPTSTR szName=NULL, int cchmaxName=0
);
bool IsAutoAcceptCallsOptionEnabled(void);
bool IsAutoAcceptCallsPersisted(void);
bool IsAutoAcceptCallsEnabled(void);
void SetAutoAcceptCallsEnabled(bool bAutoAccept);
inline int GetSecurityLevel(void)
{
RegEntry reConf(POLICIES_KEY, HKEY_CURRENT_USER);
return reConf.GetNumber( REGVAL_POL_SECURITY, DEFAULT_POL_SECURITY);
}
//
// These two are ONLY the end-user setting. They are not meaningful
// if the security level is required or disabled, only standard.
//
inline bool IncomingSecurityRequired(void)
{
RegEntry reIncoming(CONFERENCING_KEY, HKEY_CURRENT_USER);
return(reIncoming.GetNumber(REGVAL_SECURITY_INCOMING_REQUIRED, DEFAULT_SECURITY_INCOMING_REQUIRED) != 0);
}
inline bool OutgoingSecurityPreferred(void)
{
RegEntry reOutgoing(CONFERENCING_KEY, HKEY_CURRENT_USER);
return(reOutgoing.GetNumber(REGVAL_SECURITY_OUTGOING_PREFERRED, DEFAULT_SECURITY_OUTGOING_PREFERRED) != 0);
}
inline bool IsFullDuplexAllowed(void)
{
RegEntry rePol(POLICIES_KEY, HKEY_CURRENT_USER);
return !rePol.GetNumber( REGVAL_POL_NO_FULLDUPLEX, DEFAULT_POL_NO_FULLDUPLEX );
}
inline bool IsAdvancedAudioEnabled(void)
{
RegEntry rePol(POLICIES_KEY, HKEY_CURRENT_USER);
return !rePol.GetNumber( REGVAL_POL_NO_ADVAUDIO, DEFAULT_POL_NO_ADVAUDIO);
}
inline bool GetLocalConferenceParticipantName( TCHAR *sz, int cchmax )
{
// if the string params are messed up, just return false
if( sz && ( cchmax > 0 ) )
{
// Try to get the registry value
RegEntry reULS(ISAPI_CLIENT_KEY, HKEY_CURRENT_USER);
LPCTSTR szTemp = reULS.GetString( REGVAL_ULS_EMAIL_NAME );
if( szTemp[0] )
{
// This means that the registry value is there and the query succeeded
lstrcpyn( sz, szTemp, cchmax );
}
else
{ // There is no reg key, we use the default
lstrcpy( sz, _T("Error, no local user") );
}
}
else
{
return false;
}
return true;
}
enum eCallingMode { CallingMode_Direct, CallingMode_GateKeeper, CallingMode_Invalid };
inline eCallingMode GetCallingMode(void)
{
eCallingMode eRet = CallingMode_Invalid;
RegEntry reConf(CONFERENCING_KEY, HKEY_CURRENT_USER);
switch( reConf.GetNumber( REGVAL_CALLING_MODE, CALLING_MODE_DIRECT) )
{
case CALLING_MODE_DIRECT:
eRet = CallingMode_Direct;
break;
case CALLING_MODE_GATEKEEPER:
eRet = CallingMode_GateKeeper;
break;
}
return eRet;
}
inline void GetGKServerName(TCHAR* psz, int cch )
{
if( psz )
{
RegEntry reConf(CONFERENCING_KEY, HKEY_CURRENT_USER);
lstrcpyn( psz, reConf.GetString(REGVAL_GK_SERVER), cch );
}
}
inline void GetGKAccountName(TCHAR* psz, int cch )
{
if( psz )
{
RegEntry reULS( ISAPI_CLIENT_KEY, HKEY_CURRENT_USER );
lstrcpyn( psz, reULS.GetString( REGVAL_ULS_GK_ACCOUNT), cch );
}
}
inline BOOL UserCanChangeCallMode(void)
{
RegEntry reConf(POLICIES_KEY, HKEY_CURRENT_USER);
return !reConf.GetNumber(REGVAL_POL_NOCHANGECALLMODE, DEFAULT_POL_NOCHANGECALLMODE);
}
inline void GetGatewayServerName(TCHAR* psz, int cch )
{
if( psz )
{
RegEntry reConf(CONFERENCING_KEY, HKEY_CURRENT_USER);
lstrcpyn( psz, reConf.GetString(REGVAL_GK_SERVER), cch );
}
}
enum eGKAddressingMode { GKAddressing_Invalid = 0, GKAddressing_PhoneNum, GKAddressing_Account, GKAddressing_Both };
inline eGKAddressingMode GetGKAddressingMode(void)
{
RegEntry reConf( CONFERENCING_KEY, HKEY_CURRENT_USER );
eGKAddressingMode mode = GKAddressing_Invalid;
switch( reConf.GetNumber( REGVAL_GK_METHOD, GKAddressing_Invalid ) )
{
case GK_LOGON_USING_PHONENUM:
mode = GKAddressing_PhoneNum;
break;
case GK_LOGON_USING_ACCOUNT:
mode = GKAddressing_Account;
break;
case GK_LOGON_USING_BOTH:
mode = GKAddressing_Both;
break;
}
return( mode );
}
inline bool LogOntoIlsWhenNetMeetingStartsIfInDirectCallingMode(void)
{
RegEntry reConf(CONFERENCING_KEY, HKEY_CURRENT_USER);
return !reConf.GetNumber( REGVAL_DONT_LOGON_ULS, DONT_LOGON_ULS_DEFAULT);
}
inline bool LogOntoIlsWhenNetMeetingStarts(void)
{
return ((ConfPolicies::GetCallingMode() == ConfPolicies::CallingMode_Direct) &&
(LogOntoIlsWhenNetMeetingStartsIfInDirectCallingMode()));
}
inline bool RunWhenWindowsStarts(void)
{
RegEntry reConf(CONFERENCING_KEY, HKEY_CURRENT_USER);
return (0 != reConf.GetNumber(REGVAL_CONF_ALWAYS_RUNNING, ALWAYS_RUNNING_DEFAULT));
}
inline bool InvalidMyInfo()
{
RegEntry reIsapi(ISAPI_KEY, HKEY_CURRENT_USER);
return (
( NULL == reIsapi.GetString( REGVAL_ULS_FIRST_NAME ) ) ||
( NULL == reIsapi.GetString( REGVAL_ULS_LAST_NAME ) ) ||
( NULL == reIsapi.GetString( REGVAL_ULS_EMAIL_NAME ) )
);
}
inline bool IsRDSDisabled()
{
RegEntry rePol( POLICIES_KEY, HKEY_LOCAL_MACHINE );
return(rePol.GetNumber( REGVAL_POL_NO_RDS, DEFAULT_POL_NO_RDS ) != FALSE);
}
inline bool IsRDSDisabledOnWin9x()
{
RegEntry rePol( POLICIES_KEY, HKEY_LOCAL_MACHINE );
return(rePol.GetNumber ( REGVAL_POL_NO_RDS_WIN9X, DEFAULT_POL_NO_RDS_WIN9X ) != FALSE);
}
inline bool isWebDirectoryDisabled(void)
{
RegEntry rePol( POLICIES_KEY, HKEY_CURRENT_USER );
return( rePol.GetNumber( REGVAL_POL_NO_WEBDIR, DEFAULT_POL_NO_WEBDIR ) != FALSE );
}
inline bool IsAdvancedCallingAllowed(void)
{
RegEntry rePol( POLICIES_KEY, HKEY_CURRENT_USER );
return(!rePol.GetNumber( REGVAL_POL_NO_ADVANCEDCALLING, DEFAULT_POL_NO_ADVANCEDCALLING ));
}
};
#endif // __ConfPolicies_h__