描述
由WebBrowser Control调用以检索注册表子键路径修改微软Internet Explorer用户偏好.
语法
FUNCTION GetOverrideKeyPath ( _ BYVAL hwndContainer AS HWND, _ BYVAL pchKey AS LPOLESTR PTR, _ BYVAL dw AS DWORD _ ) AS HRESULT |
参数
hwndContainer |
[in]处理的OLE容器窗口. |
pchKey |
[out]类型的指针LPOLESTR接收注册表子项的字符串存储的主机的注册表设置一个变量. |
dw |
[in]保留.必须设置NULL. |
返回值
返回S_OK如果成功,或错误值,否则.
备注
一个WebBrowser Control实例调用主机上的GetOverrideKeyPath初始化时使宿主可以指定一个包含设置,修改IE的注册表设置为当前用户的注册表位置.如果主机返回S_FALSE这方法,或如果注册表项路径回到WebBrowser Control在pchkey是NULL或空的WebBrowser Control还原为当前用户的注册表设置.
GetOverrideKeyPath提供GetOptionKeyPath一WebBrowser Control主机注册表中的设置更改为WebBrowser Control替代机制.与GetOverrideKeyPath,你WebBrowser Control实例保存当前用户的注册表设置.注册表修改位于注册表路径指定该方法重写那些位于hkey_current_user /软件/微软/ Internet Explorer.这是比较GetOptionKeyPath,造成WebBrowser Control实例默认其原设置在注册表更改的方法中指定的注册表路径的应用.
例如,假设用户已将Internet Explorer默认文本大小更改为最大字体.实施GetOverrideKeyPath将保持变化与# 8212;除非大?恢匦?位于由GetOverrideKeyPath执行指定的注册表路径的注册表设置.实施GetOptionKeyPath不会保存用户的文本大小的变化.相反,该WebBrowser Control默认回到原来的字体在应用中的GetOptionKeyPath执行指定的注册表路径的注册表设置.
GetOverrideKeyPath的实现必须以CoTaskMemAlloc pchkey分配内存.(这WebBrowser Control负责释放内存使用CoTaskMemFree).即使这种方法是未实现的,此参数应设置为NULL.
关键的方法必须指定子项的HKEY_CURRENT_USER关键.
示例
这个例子点WebBrowser Control到注册表项位于hkey_current_user /软件/公司/应用的用户偏好的重写.当然,你需要设置注册表键在这个位置在注册表中的WebBrowser Control使用它们.
HRESULT CBrowserHost::GetOverrideKeyPath(LPOLESTR *pchKey, DWORD dwReserved)
{
HRESULT hr;
WCHAR* szKey = L"Software\\MyCompany\\MyApp";
// cbLength is the length of szKey in bytes.
size_t cbLength;
hr = StringCbLengthW(szKey, 1280, &cbLength);
// TODO: Add error handling code here.
if (pchKey)
{
*pchKey = (LPOLESTR)CoTaskMemAlloc(cbLength + sizeof(WCHAR));
if (*pchKey)
hr = StringCbCopyW(*pchKey, cbLength + sizeof(WCHAR), szKey);
}
else
hr = E_INVALIDARG;
return hr;
}
引用文件
CDocHostUIHandlerImpl.inc