|
#include <stdio.h>
#include <Afxdisp.h>
#import "C:\WINDOWS\system32\SHDOCVW.DLL"
#import "C:\WINDOWS\system32\mshtml.tlb"
SHDocVw::IWebBrowserAppPtr pIE;
int main()
{
CoInitialize( NULL ) ;
try {
pIE.CreateInstance("InternetExplorer.Application");
pIE->Visible = false;
pIE->Navigate("c:\\temp\\test.htm");
MSHTML::IHTMLDocument2Ptr pDoc(pIE->GetDocument());
if (pDoc) {
IDispatchPtr pDisp(pDoc->GetScript());
if (pDisp) {
OLECHAR FAR* szMember = L"MyFunc1";
DISPID dispid;
HRESULT hr = pDisp->GetIDsOfNames(
IID_NULL,
&szMember,
1,
LOCALE_SYSTEM_DEFAULT,
&dispid
);
if (SUCCEEDED(hr)) {
COleVariant vtResult;
static BYTE parms[] =
VTS_BSTR VTS_BSTR VTS_BSTR;
COleDispatchDriver dispDriver(pDisp, true);
dispDriver.InvokeHelper(
dispid,
DISPATCH_METHOD,
VT_VARIANT,
(void*)&vtResult,
parms,
"ABCDEFGHI","DEF", "XXX"
);
_bstr_t bstrRet;
bstrRet = (LPVARIANT)vtResult;
printf( "%s\n", (LPTSTR)bstrRet );
}
}
}
pIE->Quit();
pIE.Release();
}
catch (_com_error &e)
{
printf( "%s\n", e.ErrorMessage() );
}
CoUninitialize( );
return 0;
}
| |