get_script c ++ 6.0的异常

时间:2014-07-03 15:54:20

标签: javascript c++

我在使用C ++ 6.0中的get_script方法并在带有IE 8的Windoxs XP中运行应用程序时遇到问题。编译没有问题。在运行时我总是遇到异常。

get_allget_Scriptsget_tagname等其他方法可以正常使用。问题只出在这种方法上,但我必须用它来运行C ++的javascript代码。

我的问题是我的代码出了什么问题:

try{
  lpDispatch = GetHtmlDocument();
  if(lpDispatch==NULL) 
  {
    log.LogError("Actions::lpDispatch a NULL");
    return;
  }
  ASSERT(lpDispatch);

  hr=lpDispatch->QueryInterface(IID_IHTMLDocument2, (void**)&lpHtmlDocument2);
  log.LogDebug("QueryInterface() result ", hr);

  if((hr!=S_OK) || (lpHtmlDocument==NULL)) 
  {
    log.LogError("Actions::lpHtmlDocument a NULL"); 
    return;
  }
  ASSERT(lpHtmlDocument);
  log.LogDebug("----------------------- TESTE JSCRIPT BEGIN --------------------------------");

  OLECHAR * bstrMember =L"LocalSubmit()";

  log.LogDebug("----------------------- X --------------------------"); 

  CComPtr<IHTMLElement> spElement;
  BSTR bstr;
  log.LogDebug("----------------------- X -- 0");
  hr = lpHtmlDocument2->get_activeElement(&spElement);
  log.LogDebug("----------------------- X -- 01");
  spElement->get_tagName(&bstr);
  log.LogDebug("----------------------- X -- 02");
  log.LogDebug(bstr);

  IDispatch* pDisp = NULL;

  if(lpHtmlDocument2 == NULL)
  {
    log.LogDebug("----------------------- X -- ERRO");
  }

  log.LogDebug("----------------------- X -- 04");
  hr = lpHtmlDocument2->get_Script(&pDisp);
  log.LogDebug("----------------------- X -- 05");
  if(FAILED(hr))
  {
    log.LogDebug("GetIDsOfNames(2) Invoke", hr);
  }
  else
    log.LogDebug("GetIDsOfNames(2) Sucess");

  log.LogDebug("----------------------- X -- 1", hr);
  ATLASSERT(SUCCEEDED(hr));
  DISPID dispid = NULL;
  hr = spScript->GetIDsOfNames(IID_NULL,&bstrMember,1,LOCALE_SYSTEM_DEFAULT,&dispid);
  if(FAILED(hr))
  {
    log.LogDebug("GetIDsOfNames(2) Invoke", hr);
  }
  else
    log.LogDebug("GetIDsOfNames(2) Sucess");
}
catch (...)
{
  log.LogError("Actions:: EXCEPTION ");
}

我们得到以下输出:

DEBUG: ----------------------- TESTE JSCRIPT BEGIN --------------------------------
DEBUG: ----------------------- X --------------------------
DEBUG: ----------------------- X -- 0
DEBUG: ----------------------- X -- 01
DEBUG: ----------------------- X -- 02
DEBUG: BODY
DEBUG: ----------------------- X -- 04
ERROR: Actions:: EXCEPTION 

祝你好运, 米格尔

0 个答案:

没有答案