⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 moniesetting.cpp

📁 是其中之三,监督IE配置
💻 CPP
字号:
#include "stdafx.h"
#include "moniesetting.h"


CMonIESetting::CMonIESetting()
:m_bPlaySound(false),
 m_bPlayVideo(false),
 m_bShowPictures(false),
 m_ActiveScriptsPolicy(FAIL),
 m_ActiveScriptingofJavaApplets(FAIL)
{
}


void CMonIESetting::GetInitialMultiMediaSettings()
{	

	std::string tsPlaySoundvalue;

	if ( QueryStringValue( ADVANCED_SETTINGS_PATH, HKEY_CURRENT_USER, tsPlaySoundvalue, PLAY_SOUND_KEY ) && !( tsPlaySoundvalue.empty()) )
	{
		std::transform( tsPlaySoundvalue.begin(), tsPlaySoundvalue.end(), tsPlaySoundvalue.begin(), std::ptr_fun(tolower) );

		if( tsPlaySoundvalue == std::string("yes") )
			m_bPlaySound = true;
		else
			m_bPlaySound = false;
	
	}
	else
	{
		// LOG
	}


	////////////////////////////////////////////////////////////////
	// Play Video
	
	std::string tsPlayVideovalue;

	if ( QueryStringValue( ADVANCED_SETTINGS_PATH, HKEY_CURRENT_USER, tsPlayVideovalue, PLAY_VIDEO_KEY ) && !( tsPlayVideovalue.empty()) )
	{
		std::transform( tsPlayVideovalue.begin(), tsPlayVideovalue.end(), tsPlayVideovalue.begin(), std::ptr_fun(tolower) );

		if( tsPlayVideovalue == std::string("yes") )
			m_bPlayVideo = true;
		else
			m_bPlayVideo = false;
	
	}
	else
	{
		// LOG
	}


	///////////////////////////////////////////////////////////////////////

	std::string tsShowPictures;

	if ( QueryStringValue( ADVANCED_SETTINGS_PATH, HKEY_CURRENT_USER, tsShowPictures, SHOW_PICTURES_KEY ) && !( tsShowPictures.empty()) )
	{
		std::transform( tsShowPictures.begin(), tsShowPictures.end(), tsShowPictures.begin(), std::ptr_fun(tolower) );

		if( tsShowPictures == std::string("yes") )
			m_bShowPictures = true;
		else
			m_bShowPictures = false;		
	}
	else
	{
		// LOG
	}
	

	m_ActiveScriptsPolicy = GetSecurityPolicy( URLACTION_SCRIPT_RUN );
	m_ActiveScriptingofJavaApplets = GetSecurityPolicy( URLACTION_SCRIPT_JAVA_USE );

}

bool CMonIESetting::QueryStringValue( const char* lpSubKey,
						   HKEY hKey,
						   std::string& buf,
						   const char* lpszValue, 
						   LPDWORD lpType  )
{
	HKEY hRegKey;

	if (RegOpenKey(	hKey, lpSubKey, &hRegKey ) != ERROR_SUCCESS)
		hRegKey = NULL;

	if (hRegKey == NULL)
		return false;


	DWORD len;

	if (RegQueryValueEx( hRegKey, lpszValue, NULL, lpType, NULL, &len )
				!= ERROR_SUCCESS)
		return false;

	LPTSTR szData = new TCHAR[len+1] ;

	if (RegQueryValueEx( hRegKey, lpszValue, NULL, lpType, (LPBYTE)szData, &len )
				!= ERROR_SUCCESS)
	{
		delete [] szData ;
		szData = NULL;
		return false;
	}

	buf = szData;
	delete [] szData ;
	szData = 0;

	return true;

	return true;

}


void CMonIESetting::GetNewMultiMediaSettings()
{


	std::string tsPlaySoundvalue;
	bool		bPlaySound;

	if ( QueryStringValue( ADVANCED_SETTINGS_PATH, HKEY_CURRENT_USER, tsPlaySoundvalue, PLAY_SOUND_KEY ) && !( tsPlaySoundvalue.empty()) )
	{
		std::transform( tsPlaySoundvalue.begin(), tsPlaySoundvalue.end(), tsPlaySoundvalue.begin(), std::ptr_fun(tolower) );

		if( tsPlaySoundvalue == std::string("yes") )
			bPlaySound = true;
		else
			bPlaySound = false;
	}
	


	////////////////////////////////////////////////////////////////
	// Play Video
	
	std::string tsPlayVideovalue;
	bool		bPlayVideo;

	if ( QueryStringValue( ADVANCED_SETTINGS_PATH, HKEY_CURRENT_USER, tsPlayVideovalue, PLAY_VIDEO_KEY ) && !( tsPlayVideovalue.empty()) )
	{
		std::transform( tsPlayVideovalue.begin(), tsPlayVideovalue.end(), tsPlayVideovalue.begin(), std::ptr_fun(tolower) );

		if( tsPlayVideovalue == std::string("yes") )
			bPlayVideo = true;
		else
			bPlayVideo = false;

	}
	


	///////////////////////////////////////////////////////////////////////

	std::string tsShowPictures;
	bool		bShowPictures;

	if ( QueryStringValue( ADVANCED_SETTINGS_PATH, HKEY_CURRENT_USER, tsShowPictures, SHOW_PICTURES_KEY ) && !( tsShowPictures.empty()) )
	{
		std::transform( tsShowPictures.begin(), tsShowPictures.end(), tsShowPictures.begin(), std::ptr_fun(tolower) );

		if( tsShowPictures == std::string("yes") )
			bShowPictures = true;
		else
			bShowPictures = false;

	}
	
	Policy ActiveScriptsPolicy          = GetSecurityPolicy( URLACTION_SCRIPT_RUN );
	Policy ActiveScriptingofJavaApplets = GetSecurityPolicy( URLACTION_SCRIPT_JAVA_USE );

	if( m_bPlaySound  != bPlaySound )
		MessageBox(0, bPlaySound ? "Play" : "Don't Play", "PlaySound Changed to", MB_OK );

	if( m_bPlayVideo  != bPlayVideo )
		MessageBox(0,  bPlayVideo ? "Play" : "Don't Play", "PlayVideo Changed to",MB_OK );
	
	if( m_bShowPictures != bShowPictures )
		MessageBox(0,  bShowPictures ? "Show" : "Don't Show", "ShowPictures Changed to", MB_OK );

    if( m_ActiveScriptsPolicy != ActiveScriptsPolicy )
		MessageBox(0,  (ActiveScriptsPolicy==ALLOW) ? "Allowed" : (ActiveScriptsPolicy==DISALLOW) ? "Disallowed" : "Prompt", "ActiveScripts Changed to", MB_OK );

    if( m_ActiveScriptingofJavaApplets != ActiveScriptingofJavaApplets )
		MessageBox(0, (ActiveScriptingofJavaApplets==ALLOW) ? "Allowed" : (ActiveScriptingofJavaApplets==DISALLOW) ? "Disallowed" : "Prompt", "Scripting of Java Applets Changed to", MB_OK );


	m_bPlaySound  = bPlaySound;

	m_bPlayVideo  = bPlayVideo;
	
	m_bShowPictures = bShowPictures;
		

    m_ActiveScriptsPolicy = ActiveScriptsPolicy;
		

    m_ActiveScriptingofJavaApplets = ActiveScriptingofJavaApplets;		

}

Policy CMonIESetting::GetSecurityPolicy( DWORD dwAction )
{
	HRESULT hr;

    hr = CoInitialize(NULL);

	IInternetZoneManager* pZoneMgr = NULL;
    const DWORD dwZone             = URLZONE_INTERNET;

 
    hr = CoCreateInstance(CLSID_InternetZoneManager, NULL, CLSCTX_INPROC_SERVER,
                          IID_IInternetZoneManager, (void**)&pZoneMgr);

    if(FAILED(hr)) 
	{
		CoUninitialize();	
		return FAIL;
	}
    
    
    DWORD bytePolicy;
	size_t iSize = sizeof(bytePolicy);
	if( pZoneMgr)
	{
		hr = pZoneMgr->GetZoneActionPolicy( dwZone, dwAction,
			                                (BYTE*)&bytePolicy, iSize ,
										    URLZONEREG_HKCU);
	}

	
    if( !pZoneMgr || FAILED(hr) ) return FAIL;

	pZoneMgr->Release();

	CoUninitialize();

    switch(bytePolicy)
	{
		case URLPOLICY_ALLOW:
			return ALLOW;

		case URLPOLICY_DISALLOW:
			return DISALLOW;

		case URLPOLICY_QUERY:
			return PROMPT;

	}
	
	return FAIL;

}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -