У меня есть объект-помощник браузера, написанный на C ++, но у меня возникла проблема при получении OnHelp HtmlEvent.
Когда я пытаюсь получить доступ к атрибуту, браузер падает.
VARIANT_BOOL STDMETHODCALLTYPE OnHelp(IHTMLEventObj2 *pEvtObj)
{
std::cout << "OnHelp Event" << std::endl;
if(pEvtObj != NULL) {
VARIANT var;
pEvtObj->getAttribute(L"formID", 0, &var);
std::cout << (char*)var.bstrVal << std::endl;
}
else {
std::cout << "PELEM = NULL" << std::endl;
}
return VARIANT_TRUE;
}
Этопо какой-то причине происходит сбой строки getAttribute?При этом в C # все работает отлично.Я надеюсь, что кто-то может помочь мне исправить это.
Редактировать:
Реальная проблема была с параметром, который мне нужен, чтобы использовать IHTMLEventObj, а затем запросить IHTMLEventObj2.
VARIANT_BOOL STDMETHODCALLTYPE OnHelp(IHTMLEventObj *pEvtObj)
{
IHTMLEventObj2 *pEvtObj2;
pEvtObj->QueryInterface(IID_IHTMLEventObj2, (void**)&pEvtObj2);
if(pEvtObj2 != NULL) {
VARIANT var;
pEvtObj2->getAttribute(CComBSTR(L"url"), 0, &var);
std::cout << _bstr_t(var.bstrVal) << std::endl;
}
else {
std::cout << "PELEM = NULL" << std::endl;
}
return VARIANT_TRUE;
}