有个网页上用的activex控件,叫做ctrl吧
它有个submit方法,参数是网页中的一个form
现在想用vc写一个程序,不通过ie,直接调用
它的这些接口,达到执行sumit(formname)的目的。
网页中的代码是这样写的:
document.all.ctrl.submit(logonform);
submit接口为:
HRESULT submit(
[in] IUnknown* pForm,
[out, retval] long* pRet);
现在在vc中,可以通过dll得到ctrl的信息,可以调用它的submit接口,
只是不知道这个form该怎么样能在vc里生成一个,给它设置一些
表单元素,action的值,等等。
试了试直接:
IHTMLFormElement*form;
hr=CoCreateInstance(CLSID_IHTMLFormElement,NULL,CLSCTX_INPROC_SERVER,IID_IHTMLFormElement,&form);
不过好像没找到对应的clsid,上面这行里的CLSID_IHTMLFormElement不行。
不知道应该怎么弄。请指点一下。谢谢
它有个submit方法,参数是网页中的一个form
现在想用vc写一个程序,不通过ie,直接调用
它的这些接口,达到执行sumit(formname)的目的。
网页中的代码是这样写的:
document.all.ctrl.submit(logonform);
submit接口为:
HRESULT submit(
[in] IUnknown* pForm,
[out, retval] long* pRet);
现在在vc中,可以通过dll得到ctrl的信息,可以调用它的submit接口,
只是不知道这个form该怎么样能在vc里生成一个,给它设置一些
表单元素,action的值,等等。
试了试直接:
IHTMLFormElement*form;
hr=CoCreateInstance(CLSID_IHTMLFormElement,NULL,CLSCTX_INPROC_SERVER,IID_IHTMLFormElement,&form);
不过好像没找到对应的clsid,上面这行里的CLSID_IHTMLFormElement不行。
不知道应该怎么弄。请指点一下。谢谢
解决方案 »
- MFC无模式对话框接受输入
- 一个程序编译后,对于栈内存空间的大小,是如何定的呢?由谁来决定为栈留多大的空间?
- COM语句执行时,atlbase.h报访问异常,但是同样的用法在另一个工程中却没有问题?
- 新建一个ATL项目,直接运行就出错了??
- 在2003编译环境下如何添加右键菜单
- C++讨论群成立 QQ群号:2069254 爱好C++的都来
- 怎样使辅助线程中的程序平稳运行?(就是匀速)
- 现在学vc6有没有过时
- 关于VC调用VB的activex dll com 组件产生类型不匹配的问题
- wnd->GetWindowRect(&Rect);为什么会出问题?
- 为什么有的时间用DWORD表示?如何转换为HH:MM:SS的格式?
- 动态的显示工具条上相应的按钮的灰显状态
IHTMLElementCollecion::get_item
IHTMLFormElement::Submit
对应的clsid是什么呢
不过还是有点不太清楚。
它这个方法传进去的是个form,
我不想用程序访问这个页面再通过IE的接口连接上去
分析里面的html,form,把一个真实的接口传进去因为里面的action和一些element通过查看代码是可以知道的。
所以我就想生成一个一样的form给它传过去就应该可以的
步骤为IHTMLDocument2
IHTMLDocument2::createElement
IHTMLDOMNode::setAttribute
pBodyNode->appendChild没试呢,不知道这样是否可行?
创建IHTMLDocument2怎么弄?
hr=CoCreateInstance(CLSID_MHTMLDocument,NULL,CLSCTX_INPROC_SERVER,IID_IHTMLDocument2,(void**)&doc);
试了一下hr==S_OK,就是不知道对不对。估计应该也是可以的吧