IE BHO:如何从IOleCommandTarget :: Exec正确初始化?

时间:2011-03-30 13:15:49

标签: windows internet-explorer mfc dialog bho

STDMETHODIMP CTestAddIn::Exec(
    const GUID *pguidCmdGroup, DWORD nCmdID,
    DWORD nCmdExecOpt, VARIANTARG *pvaIn, VARIANTARG *pvaOut)
{
  AFX_MANAGE_STATE(AfxGetStaticModuleState());
  CProfileEdit dlg;
  dlg.DoModal();
  return S_OK;
}

CTestAddIn是IOleCommandTarget的子类,还有一些其他方法需要让我的插件工作。单击添加到IE工具栏的按钮时,将执行此代码。对DoModal的调用给了我一条断言信息,引用了第40行的objcore.cpp:

BOOL CObject::IsKindOf(const CRuntimeClass* pClass) const
{
    ENSURE(this != NULL);

我认为问题是MFC正在尝试从IE而不是我的DLL加载资源(每次我在调试时检查它都找不到对话框模板字符串)。据说对AFX_MANAGE_STATE的调用根据MSDN论坛上的帖子解决了这个问题,还是我把它放在了错误的地方?

我最好将MFC代码放在另一个DLL中以完全加载或避免使用MFC吗?

0 个答案:

没有答案