如何讓c++調用網頁中的jsp函數

c++調用jsp一般通過在窗口中內嵌一個CAxWindow來實現的

在CAxWindow中通過調用CreateControlEx來初始化話IWebBrowser2接口

如:

CComPtr<IUnknown> punknown;
HRESULT hr = CreateControlEx(L"Shell.Explorer", NULL, NULL, &punknown);

CComQIPtr<IWebBrowser2> spWebBrowser2 = punknown;

或者通過AttachControl來實現

CComPtr<IAxWinHostWindow> spWinHost;
QueryHost(&spWinHost);
spWinHost->AttachControl(m_spWebBrowser2,m_hWnd);

c++和jsp交互的情況越來越多,可以通過IWebBrowser2接口調用jsp函數,基本步驟如下:

(1)

CComPtr<IDispatch> spDocDisp;

CComQIPtr<IWebBrowser2> spWebBrowser2

spWebBrowser2->get_Document(&spDocDisp);

(2)

CComPtr<IHTMLDocument2> spDoc2;

spDocDisp->QueryInterface(IID_IHTMLDocument2, (void**)&spDoc2);

(3)

CComPtr<IDispatch> spScript;

spDoc2->get_Script(&spDisp);

(4)

DISPID dispid = NULL;

CComBSTR bstrFun(“dosomething”);

spScript->GetIDsOfNames(IID_NULL, &bstrFun, 1, LOCALE_SYSTEM_DEFAULT, &dispid);

(5)

DISPPARAMS params;

spScript->Invoke(dispid,IID_NULL,0,DISPATCH_METHOD,&params,&Result,&excepInfo,&ArgErr);

發佈了15 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章