//
// Toggle Active-Script ON/OFF on the Internet Zone Settings
// Coded by 長野 隆 [Nagano Yutaka] on Feb.4,2002
//
#define WINVER 0x0400
#define _WIN32_WINDOWS 0x0400
#define _WIN32_IE 0x0400
#include <windows.h>
static LPCTSTR const lpszAppName = TEXT("ToggleScript");
HRESULT ToggleSetting(void)
{
IInternetZoneManager *pZoneMgr = NULL;
const static DWORD dwZone = URLZONE_INTERNET;
HRESULT hr;
hr = CoCreateInstance(CLSID_InternetZoneManager, NULL, CLSCTX_INPROC_SERVER,
IID_IInternetZoneManager, (void**)&pZoneMgr);
if(hr != S_OK) return hr;
ZONEATTRIBUTES za;
za.cbSize = sizeof(za);
hr = pZoneMgr->GetZoneAttributes(dwZone, &za);
while( hr == S_OK )
{
za.dwTemplateCurrentLevel = URLTEMPLATE_CUSTOM;
hr = pZoneMgr->SetZoneAttributes(dwZone, &za);
if( hr != S_OK ) break;
DWORD dwPolicy;
hr = pZoneMgr->GetZoneActionPolicy(dwZone, URLACTION_SCRIPT_RUN,
(BYTE*)&dwPolicy, sizeof(DWORD), URLZONEREG_DEFAULT);
if( hr != S_OK ) break;
dwPolicy = ( dwPolicy ? 0 : 3 );
hr = pZoneMgr->SetZoneActionPolicy(dwZone, URLACTION_SCRIPT_RUN,
(BYTE*)&dwPolicy, sizeof(DWORD), URLZONEREG_DEFAULT);
if( hr != S_OK ) break;
MessageBox(NULL,
( dwPolicy ? TEXT("スクリプトを無効にしました") : TEXT("スクリプトを実行可能にしました") ),
lpszAppName, MB_OK);
break;
}
pZoneMgr->Release();
return hr;
}
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR pCmd, int nShow)
{
HRESULT hr;
hr = CoInitialize(NULL);
if( hr == S_OK )
{
hr = ToggleSetting();
CoUninitialize();
}
if( hr != S_OK )
{
MessageBox(NULL, TEXT("設定の切替に失敗しました。"), lpszAppName, MB_ICONSTOP | MB_OK);
}
return 0;
} |