ÎÒдÁËÒ»¸ö¿Ø¼þ,ÀûÓÃwininetÄ£Äâhttp client,ÓÉÓÚЧÂÊÎÊÌâ,´òËãÀûÓöàÏß³ÌÀ´Ìá¸ßЧÂÊ,ÓÉÓÚÊÇͨ¹ýjavascriptÀ´µ÷ÓÃactivex½Ó¿ÚµÄËùÒÔÒªµÈÏß³ÌÍê³É»Øµ÷js·½·¨À´½²http response·µ»Ø¸øjs,µ«Invoke·½·¨Ö´ÐÐÁ˵«´ÓÒ³ÃæÉÏ¿´È´Ã»ÓÐÖ´ÐÐjsµÄ·½·¨,ÎÒºóÀ´ÊÔ×ŰÑInvoke·½·¨ÒƵ½ÁËÖØÐ´µÄSetSite½Ó¿ÚÀï,js·½·¨¾ÍÖ´ÐÐÁË,ÇëÎʸßÊÖÕâÊÇΪʲô,ÄѵÀÖ»ÄÜÔÚ¸²Ð´µÄcom½Ó¿ÚÀï²ÅÄܵ÷ÓÃjavascript·½·¨?
´úÂëµÄ´óÖ¿ò¼ÜÈçÏÂ:
STDMETHODIMP AXClass::SetSite(IUnknown *pUnkSite)
{
CComPtr <IServiceProvider> pSP;
HRESULT hr = pUnkSite-> QueryInterface(&pSP);
CComPtr <IWebBrowser2> pBro;
pSP-> QueryService(IID_IWebBrowserApp, IID_IWebBrowser2, (LPVOID*)&pBro);
pBro-> get_Document((IDispatch**)&m_spDoc);//m_spDocÊǿؼþµÄ³ÉÔ±±äÁ¿
}
STDMETHODIMP AXClass::SendRequest(name,...)//nameÓÉjs´«Èë,ÊÇÇëÇóÍê±ÏºóÒªµ÷ÓõÄjs·½·¨
{
...
_beginthread(ThreadStart, ...); //ÕâÀïн¨Ò»¸öÏß³Ì,ThreadStartÊÇÏß³ÌÈë¿Úº¯Êý
...
}
void ThreadStart(name, ...)
{
//·¢ËÍÇëÇ󲢵õ½·µ»ØÊý¾ÝresponseData
...
CComPtr <IDispatch> spDisp;
m_spDoc-> get_Script(&spDisp);
CComBSTR bstrMember(name);
DISPID dispid;
spDisp-> GetIDsOfNames(IID_NULL,&bstrMember,1,LOCA
ÎÒÊÖ±ßÓÐcsdnÂÛ̳µ¯³öÐÅÏ¢´°¿ÚµÄ´úÂë(¿ÉÒÔ´Óhttp://www.codefans.netÏÂÔØ)£¬µ«ËüÏÔʾµÄÖ»Êǹ̶¨µÄÐÅÏ¢£¬ÏÖÔÚÏë¸ÄÔìÒ»ÏÂÒÔ±ãÄÜͨ¹ýºǫ́µ÷ÓÃSql Server 2000Êý¾Ý¿â×Ô¶¯½«Êý¾Ý±íÖеÄÐÅÏ¢×÷Ϊµ¯³ö´°¿ÚÏÔʾµÄÐÅÏ¢¡£csdnÂÛ ......
·¿´ÒÔǰµÄÌû×Ó£¬ÓÃstruts1¿ò¼Ü£¬¿ÉÒÔд³Éalert£¨<bean:message key="name.required"/>£©£»
struts2ÀïûÓÐBean±êÇ©ÁË£¬ÓÚÊdz¢ÊÔÓÃalert(<s:text name="name.required">);
½Å±¾±¨´ ......