📄 moniesetting.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 + -