C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
JavaScript Error в CppWebBrowser
zergnm
Отправлено: 23.12.2006, 08:04


Ученик-кочегар

Группа: Участник
Сообщений: 1



Есть такая проблема. В cppwebbrowser время от времени появляются ошибки javascrip'ов, потому что отображаемый сайт это чат и он имеет много ошибок. Как сделать чтобы это окно ни разу не появлялось.
Я нашел код на Visual C++, помогите сделать его под билдер
CODE

BEGIN_INTERFACE_PART(OleCommandTarget, IOleCommandTarget)
 STDMETHOD(QueryStatus)(const GUID*, ULONG, OLECMD*, OLECMDTEXT*);
 STDMETHOD(Exec)(const GUID*, DWORD, DWORD, VARIANTARG*, VARIANTARG*);
END_INTERFACE_PART(OleCommandTarget)


STDMETHODIMP CSupremeControlSite::XOleCommandTarget::Exec(const GUID*
pguidCmdGroup,
         DWORD nCmdID,
         DWORD nCmdexecopt,
         VARIANTARG* pvaIn,
         VARIANTARG* pvaOut )
{
METHOD_PROLOGUE_EX_(CSupremeControlSite, OleCommandTarget)


HRESULT hr = S_OK;
if (pguidCmdGroup && IsEqualGUID(*pguidCmdGroup,
CGID_DocHostCommandHandler))
   {
       switch (nCmdID)
       {
  case OLECMDID_SHOWSCRIPTERROR:
  {
   IHTMLDocument2*             pDoc = NULL;
   IHTMLWindow2*               pWindow = NULL;
   IHTMLEventObj*              pEventObj = NULL;
   BSTR                        rgwszNames[5] =
          {
           SysAllocString(L"errorLine"),
           SysAllocString(L"errorCharacter"),
           SysAllocString(L"errorCode"),
           SysAllocString(L"errorMessage"),
           SysAllocString(L"errorUrl")
          };
   DISPID                      rgDispIDs[5];
   VARIANT                     rgvaEventInfo[5];
   DISPPARAMS                  params;
   BOOL                        fContinueRunningScripts = true;
   int                         i;
   params.cArgs = 0;
   params.cNamedArgs = 0;



   hr = pvaIn->punkVal->QueryInterface(IID_IHTMLDocument2, (void **)
&pDoc);



   hr = pDoc->get_parentWindow(&pWindow);
   pDoc->Release();


   hr = pWindow->get_event(&pEventObj);



   for (i = 0; i < 5; i++)
   {

    hr = pEventObj->GetIDsOfNames(IID_NULL, &rgwszNames[i], 1,
      LOCALE_SYSTEM_DEFAULT, &rgDispIDs[i]);



    hr = pEventObj->Invoke(rgDispIDs[i], IID_NULL,LOCALE_SYSTEM_DEFAULT,
      DISPATCH_PROPERTYGET, ¶ms, &rgvaEventInfo[i],NULL, NULL);


    SysFreeString(rgwszNames[i]);
   }


   (*pvaOut).vt = VT_BOOL;
    (*pvaOut).boolVal = VARIANT_TRUE;
 
   break;
  }
  case OLECMDID_SHOWMESSAGE:
   //(*pvaOut).boolVal = VARIANT_TRUE;
   break;


  default:
   hr = OLECMDERR_E_NOTSUPPORTED;
   break;
       }
   }
   else
   {
       hr = OLECMDERR_E_UNKNOWNGROUP;
   }
   return (hr);


}

Вернуться в Вопросы программирования в C++Builder