351 lines
9.8 KiB
C++
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__
|