首页
社区
课程
招聘
[求助]关于BHO插件的问题
发表于: 2012-2-12 08:54 3804

[求助]关于BHO插件的问题

2012-2-12 08:54
3804
一个简单的mfc对话框程序,界面上放一个web控件,现在有一个现成的BHO插件,请问在这个程序里,如何实现web控件跟BHO插件的连接。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 276
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
BOOL CShellBrowser2::_LoadBrowserHelperObjects(void)
{
    BOOL bRet = FALSE;
    HKEY hkey;
    if (_pbbd->_pautoWB2 &&
        RegOpenKey(HKEY_LOCAL_MACHINE, REGSTR_PATH_EXPLORER TEXT("\\Browser Helper Objects"), &hkey) == ERROR_SUCCESS)
    {
        TCHAR szGUID[64];
        DWORD cb = ARRAYSIZE(szGUID);
        for (int i = 0;
             RegEnumKeyEx(hkey, i, szGUID, &cb, NULL, NULL, NULL, NULL) == ERROR_SUCCESS;
             i++)
        {
            CLSID clsid;
            IObjectWithSite *pows;
            if (GUIDFromString(szGUID, &clsid) &&
                SUCCEEDED(CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER, IID_IObjectWithSite, (void **)&pows)))
            {
                pows->SetSite(_pbbd->_pautoWB2);    // give the poinetr to IWebBrowser2

                SA_BSTRGUID strClsid;
                // now register this object so that it can be found through automation.
                SHTCharToUnicode(szGUID, strClsid.wsz, ARRAYSIZE(strClsid.wsz));
                strClsid.cb = lstrlenW(strClsid.wsz) * SIZEOF(WCHAR);

                VARIANT varUnknown = {0};
                varUnknown.vt = VT_UNKNOWN;
                varUnknown.punkVal = pows;
                _pbbd->_pautoWB2->PutProperty(strClsid.wsz, varUnknown);

                pows->Release(); // Instead of calling variantClear()

                bRet = TRUE;
            }
            cb = ARRAYSIZE(szGUID);
        }
        RegCloseKey(hkey);
    }
    return bRet;
}
2012-2-13 10:32
0
游客
登录 | 注册 方可回帖
返回
//