На вашем контроле сделайте правый клик и кликните на Inspect Element. Если вы не отключили меню IE, оно должно открыть окно разработчика справа или снизу. Выберите там вкладку «Отладка», нажмите на шестиугольник и отметьте «Не останавливаться на исключении» или «Остановить необработанное исключение». Я полагаю, что это глобальная настройка для браузера, поэтому вы можете сделать это, просто набрав IE.
Обновление 1 Сначала реализуйте IDocHostUIHandler и оберните вызовы внешнего обработчика. Он объявлен в Mshtmhst.h, так что вы, вероятно, должны включить его. Не забывайте про членов IUnknown, также должны быть завернуты. Мастера ATL могут использоваться для реализации интерфейсов, но в любом случае вам нужно будет точно понять, что вы делаете:
class MyDocHostUIHandler: public IDocHostUIHandler
{
public:
IDocHostUIHandler* externalHandler;
HRESULT EnableModeless( BOOL fEnable)
{
return externalHandler->EnableModeless(fEnable);
}
HRESULT FilterDataObject(IDataObject* pDO, IDataObject** ppDORet)
{
return externalHandler->FilterDataObject(pDO, ppDORet)ș
}
.... Wrap all the functions from External Handler like above
};
Создайте экземпляр вашего класса:
MyDocHostUIHandler* myHandler = new MyDocHostUIHandler();
Затем в своем коде Звоните как указано в MSDN. Сначала вы получаете объект MS HTML
CComPtr<IHTMLDocument2> m_spDocument;
hr = m_WebBrowser->get_Document(&m_spDocument);// Get the MSHTML object
Затем вы получаете существующий обработчик по умолчанию
ComPtr<IOleObject> spOleObject;
hr = m_spDocument.As(&spOleObject);
ComPtr<IOleClientSite> spClientSite;//<--this will be the default handler
hr = spOleObject->GetClientSite(&spClientSite);
Сохраните существующий обработчик в своем классе, чтобы вы могли обернуть его functions
//see myHandler is the instance of interface you implemented in first step
myHandler->externalHandler = spClientSite;
Получить пользовательский do c:
ComPtr<ICustomDoc> spCustomDoc;
hr = m_spDocument.As(&spCustomDoc);//m_spDocument it is the pointer to your MSHTML
Теперь замените обработчик из HSMTML:
//myHandler is the instance of class you implemented above
spCustomDoc->SetUIHandler(myHandler);
После этого шага MS HTML не должен ничего замечать, но вы сможете добавить точки останова в свой класс MyDocHostUIHandler и посмотреть, какая функция вызывается вашим MS HTML и когда.