描述
由WebBrowser控件调用以检索覆盖默认Microsoft Internet Explorer注册表设置的注册表子项路径。
C++ 语法
HRESULT GetOptionKeyPath( LPOLESTR *pchKey, DWORD dw ); |
PowerBASIC 语法
HRESULT GetOptionKeyPath ( _ BYREF pchKey AS DWORD, _ BYVAL dw AS DWORD _ ) AS LONG |
参数
pchKey |
[out]指向一个LPOLESTR的指针,用于接收主机存储其注册表设置的注册表子项字符串。 |
dw |
[in]保留。必须设置为NULL。 |
OBRESULT
如果成功返回S_OK,否则返回错误值。
备注
初始化时,WebBrowser控件实例会在主机上调用GetOptionKeyPath,以便主机可以指定包含覆盖默认Internet Explorer注册表设置的设置的注册表位置。如果主机为此方法返回S_FALSE,或者返回到pchKey中的WebBrowser Control的注册表项路径为空或为空,则WebBrowser控件将还原到默认的Internet Explorer注册表设置。
GetOptionKeyPath和GetOverrideKeyPath为WebBrowser控件主机提供了两个替代机制,以便在WebBrowser控件的注册表设置中进行更改。使用GetOptionKeyPath,WebBrowser控件实例默认为其原始设置,然后从方法指定的注册表路径应用注册表更改。使用GetOptionKeyPath,WebBrowser控件实例保留当前用户的注册表设置。位于由此方法指定的注册表路径的任何注册表更改将覆盖位于HKEY_CURRENT_USER / Software / Microsoft / Internet Explorer中的注册表更改。
例如,假设用户将Internet Explorer的默认文字大小更改为最大字体。实施{98979606}保留更改—,除非在由GetOptionKeyPath实现指定的注册表路径中的注册表设置中特别覆盖该大小。实施GetOptionKeyPath不会保留用户的文字大小更改。相反,在GetOptionKeyPath实现指定的注册表路径应用注册表设置之前,WebBrowser控件将默认为其原始中型字体。
GetOptionKeyPath的实现必须使用CoTaskMemAlloc为pchKey分配内存。(WebBrowser控件负责使用CoTaskMemFree释放此内存)。即使此方法未实现,参数也应设置为NULL。
此方法指定的密钥必须是HKEY_CURRENT_USER密钥的子项。
例
此示例将WebBrowser控件指向位于HKEY_CURRENT_USER / Software / YourCompany / YourApp的Internet Explorer注册表覆盖的注册表项。当然,您需要在注册表中的这个位置设置注册表项,以便WebBrowser控件使用它们。
HRESULT CBrowserHost :: GetOptionKeyPath(LPOLESTR * pchKey,DWORD dwReserved)en
{
HRESULT小时;
WCHAR * szKey = L“Software \\\\ MyCompany \\\\ MyApp”;
// cbLength是以字节为单位的szKey的长度。
size_t cbLength;
hr = StringCbLengthW(szKey,1280,&cbLength);
// TODO:在这里添加错误处理代码。
if(PchKey)
{
*pchKey = (LPOLESTR)CoTaskMemAlloc(cbLength +的sizeof(WCHAR));
if(* PchKey)
hr = StringCbCopyW(* pchKey,cbLength +的sizeof(WCHAR),szKey);
}
其他
hr = E_INVALIDARG;
返回hr;
}


