void CallScript()
{
HRESULT hr;
IWebBrowser2 * pparent=NULL;
pparent = (IWebBrowser2*) GetIWebPointer();
LPDISPATCH lpDispatch = NULL;
hr = pparent->get_Document(&lpDispatch);
if (!SUCCEEDED(hr))
{
AfxMessageBox("error get document");
lpDispatch->Release();
return;
}
IHTMLDocument2 *m_pDoc2;
hr = lpDispatch->QueryInterface(IID_IHTMLDocument2, (void**) &m_pDoc2);
if (!SUCCEEDED(hr))
{
AfxMessageBox("error get document interface");
m_pDoc2->Release();
return;
}
CComQIPtr< IHTMLDocument > pDoc( m_pDoc2 );
//
// 스크립트 엔진의 디스패치 를 얻는다.
//
CComPtr< IDispatch > pDisp;
hr = pDoc->get_Script( &pDisp );
//
// 스크립트 엔진디스패치에서 주어진 함수를 찾는다. 즉 dispid를 세트.
//
OLECHAR FAR* szFunctionName = L"EndUpload"; // 호출할 Javascript 명
DISPID dispid;
hr = pDisp->GetIDsOfNames( IID_NULL, &szFunctionName, 1,
LOCALE_SYSTEM_DEFAULT, &dispid);
//
// Invoke하기 위한 파라미터 세트.
//
DISPPARAMS dispParams;
dispParams.rgvarg = NULL;
dispParams.rgdispidNamedArgs = NULL;
dispParams.cArgs = 0;
dispParams.cNamedArgs = 0;
hr = pDisp->Invoke(dispid, IID_NULL, LOCALE_SYSTEM_DEFAULT,
DISPATCH_METHOD, &dispParams, NULL, NULL, NULL);
}
{
HRESULT hr;
IWebBrowser2 * pparent=NULL;
pparent = (IWebBrowser2*) GetIWebPointer();
LPDISPATCH lpDispatch = NULL;
hr = pparent->get_Document(&lpDispatch);
if (!SUCCEEDED(hr))
{
AfxMessageBox("error get document");
lpDispatch->Release();
return;
}
IHTMLDocument2 *m_pDoc2;
hr = lpDispatch->QueryInterface(IID_IHTMLDocument2, (void**) &m_pDoc2);
if (!SUCCEEDED(hr))
{
AfxMessageBox("error get document interface");
m_pDoc2->Release();
return;
}
CComQIPtr< IHTMLDocument > pDoc( m_pDoc2 );
//
// 스크립트 엔진의 디스패치 를 얻는다.
//
CComPtr< IDispatch > pDisp;
hr = pDoc->get_Script( &pDisp );
//
// 스크립트 엔진디스패치에서 주어진 함수를 찾는다. 즉 dispid를 세트.
//
OLECHAR FAR* szFunctionName = L"EndUpload"; // 호출할 Javascript 명
DISPID dispid;
hr = pDisp->GetIDsOfNames( IID_NULL, &szFunctionName, 1,
LOCALE_SYSTEM_DEFAULT, &dispid);
//
// Invoke하기 위한 파라미터 세트.
//
DISPPARAMS dispParams;
dispParams.rgvarg = NULL;
dispParams.rgdispidNamedArgs = NULL;
dispParams.cArgs = 0;
dispParams.cNamedArgs = 0;
hr = pDisp->Invoke(dispid, IID_NULL, LOCALE_SYSTEM_DEFAULT,
DISPATCH_METHOD, &dispParams, NULL, NULL, NULL);
}
반응형