15,979
社区成员
发帖
与我相关
我的任务
分享
#pragma once
#include "stdafx.h"
class WebBrowserOwn :
public CWebBrowserUI
{
public:
WebBrowserOwn(void);
~WebBrowserOwn(void);
virtual STDMETHODIMP GetExternal( IDispatch** ppDispatch );
virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames( __RPC__in REFIID riid, __RPC__in_ecount_full(cNames ) LPOLESTR *rgszNames, UINT cNames, LCID lcid, __RPC__out_ecount_full(cNames) DISPID *rgDispId );
virtual STDMETHODIMP Invoke( DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr );
void MyMethod();
};
#include "WebBrowserOwn.h"
WebBrowserOwn::WebBrowserOwn(void)
{
}
WebBrowserOwn::~WebBrowserOwn(void)
{
}
STDMETHODIMP WebBrowserOwn::GetExternal( IDispatch** ppDispatch )
{
*ppDispatch = this;
return S_OK;
}
HRESULT STDMETHODCALLTYPE WebBrowserOwn::GetIDsOfNames( __RPC__in REFIID riid, __RPC__in_ecount_full(cNames ) LPOLESTR *rgszNames, UINT cNames, LCID lcid, __RPC__out_ecount_full(cNames) DISPID *rgDispId )
{
//DISP ID 从200开始
if(_tcscmp(rgszNames[0],_T("MyMethod")) == 0){
*rgDispId = 200;
return S_OK;
}
return __super::GetIDsOfNames(riid,rgszNames,cNames,lcid,rgDispId);
}
STDMETHODIMP WebBrowserOwn::Invoke( DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr )
{
if ((riid != IID_NULL))
return E_INVALIDARG;
switch(dispIdMember)
{
case 200:
MyMethod();
break;
}
return __super::Invoke(dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
}
void WebBrowserOwn::MyMethod()
{
}
调用函数:
WebBrowserOwn * pWebBrowserUI = static_cast<WebBrowserOwn *>(m_pm.FindControl(_T("ie_doc")));
if( pWebBrowserUI != NULL ) {
pWebBrowserUI ->Navigate2(_T("http://localhost:21625/index.aspx"));
}
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="AutoSend.index" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function setaa() {
// alert("11111");
window.external.MyMethod();
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<input id="Button1" type="button" onclick="setaa()" value="button" />
</div>
</form>
</body>
</html>