ActiveX调用js问题

zoudanye 2011-01-17 11:48:06
在ActiveX里面调用javascript方法,使用GetIDsOfNames时返回值总为 0X20080006 未知名称..求助
Ocx初始化

void CMyOcxCtrl::OnSetClientSite()
{
// TODO: 在此添加专用代码和/或调用基类
if (m_pClientSite)
VERIFY (CreateControlWindow (::GetDesktopWindow(), CRect(0,0,0,0),
CRect(0,0,0,0)));
//COleControl::OnSetClientSite();

HRESULT hr ;
m_pScript=NULL;

CComPtr<IOleContainer> spContainer;
hr = m_pClientSite-> GetContainer(&spContainer);

ATLASSERT(spContainer);
m_pHTMLDocument = spContainer;
hr = m_pHTMLDocument->get_scripts(&m_pScript);
ATLASSERT(m_pScript);
}

调用js函数

CComBSTR bstrMember("Show");
DISPID dispid;
HRESULT hr = m_pScript->GetIDsOfNames(IID_NULL,&bstrMember,1,LOCALE_SYSTEM_DEFAULT,&dispid);
//此时hr返回 0X80020006 未知名称


js中

function Show()
{
//显示界面
var bgObj = document.getElementById("Container");
bgObj.style.display = "none";
var bgObj = document.getElementById("ocx");
bgObj.style.display = "block";
}


...全文
277 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zoudanye 2011-01-17
  • 打赏
  • 举报
回复
leechiyang 那个连接的方法也过不去。。有没有更好的方法啊,不需要做大手术的那种
zoudanye 2011-01-17
  • 打赏
  • 举报
回复
有没有简单点的方法。。。。。
leechiyang 2011-01-17
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/en-us/library/sky96ah7(VS.85).aspx
zoudanye 2011-01-17
  • 打赏
  • 举报
回复
在线等。。。
  • 打赏
  • 举报
回复
是事件好点吧。。。
wshcdr 2011-01-17
  • 打赏
  • 举报
回复
USES_CONVERSION;  

IOleContainer* pContainer = NULL;
IHTMLDocument* pDoc = NULL;
m_pClientSite->GetContainer( &pContainer );
if ( pContainer != NULL )
pContainer->QueryInterface( IID_IHTMLDocument, (void**)&pDoc );

HRESULT hresult;
OLECHAR FAR* szMember = T2W(func);

DISPID dispid;
DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};

IDispatch * pdisp = NULL;
pDoc->get_Script(&pdisp);
hresult = pdisp->GetIDsOfNames(IID_NULL,&szMember,1, LOCALE_SYSTEM_DEFAULT,&dispid);
hresult = pdisp->Invoke(dispid,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsNoArgs, NULL, NULL, NULL);
pContainer->Release();
zoudanye 2011-01-17
  • 打赏
  • 举报
回复
高手。。求助啊。。。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧