【ATL】注册插件成功后自动设置浏览器允许弹出窗口注册表
STDAPI DllInstall(BOOL bInstall, LPCWSTR pszCmdLine) { HRESULT hr = E_FAIL; static const wchar_t szUserSwitch[] = L"user"; if(pszCmdLine != NULL) { if(_wcsnicmp(pszCmdLine,szUserSwitch,_countof(szUserSwitch)) == 0) ATL::AtlSetPerUserRegistration(true); } if(bInstall) { hr = DllRegisterServer(); if(FAILED(hr)) DllUnregisterServer(); // 操作注册表(允许阻止的浏览器弹出窗口) HKEY hKEY; LPBYTE path_Get = new BYTE[256]; DWORD type = REG_BINARY; DWORD dwBytes = 254; LPSTR data_set = "Software\\Microsoft\\Internet Explorer\\New Windows\\Allow"; if(::RegOpenKeyExA(HKEY_CURRENT_USER,data_set,NULL,KEY_READ,&hKEY) == ERROR_SUCCESS) { if(::RegQueryValueExA(hKEY,"要设置的域名",NULL,&type,path_Get,&dwBytes) != ERROR_SUCCESS) { LPBYTE mContent = new BYTE[2]; mContent[0] = 0x00; mContent[1] = 0x00; CRegKey key; key.Create(L"Software\\Microsoft\\Internet Explorer\\New Windows\\Allow"); key.SetBinaryValue(L"要设置的域名",mContent,2); key.Close(); } } ::RegCloseKey(hKEY); ::MessageBoxA(NULL,"您可以正常使用ActiveX插件功能","插件安装成功",MB_OK | MB_ICONINFORMATION); } else hr = DllUnregisterServer(); return hr; }