关于IHTMLImgElement接口的声明

bigangela 2009-03-24 02:34:59
我自己用C#写IHTMLImgElement的接口,但为什么总是取不到src的值呢?哪里写的有问题?
代码如下:
[ComImport, ComVisible(true), Guid("3050F240-98B5-11CF-BB82-00AA00BDCE0B"),
InterfaceTypeAttribute(ComInterfaceType.InterfaceIsDual),
TypeLibType(TypeLibTypeFlags.FDual | TypeLibTypeFlags.FDispatchable)]
public interface IHTMLImgElement
{
[DispId(dispids.DISPID_IHTMLIMGELEMENT_SRC)]
string src { set; get; }
}
...全文
229 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bigangela 2009-03-25
  • 打赏
  • 举报
回复
我遇到过mshtml的强命名问题,所以才自己写接口的
有没有高手啊,这个IHTMLImgElement很怪异啊,src属性一直搞不定。
cppfaq 2009-03-24
  • 打赏
  • 举报
回复
不用自己写这个接口

可以通过引入 mshtml 中的一些类可以实现操作页面中的元素。
项目引用“C:\WINDOWS\system32\mshtml.tlb”。

mshtml.IHTMLDocument2 iHTMLDocument2 = (mshtml.IHTMLDocument2)webBrowser1.Document.DomDocument;
mshtml.IHTMLWindow2 iHTMLWindow2 = (mshtml.IHTMLWindow2)iHTMLDocument2.parentWindow;

// 根据 name 查找页面中的元素。根据类型不同,转成相应的类型。
// 找页面中的 Frame 元素。
mshtml.IHTMLFrameBase2 iFrame = (mshtml.IHTMLFrameBase2)iHTMLDocument2.all.item("FrameName", 0);
mshtml.IHTMLDocument2 iHTMLDocument2 = iFrame.contentWindow.document;



// 找页面中的 Input 元素。
mshtml.IHTMLInputElement input = (mshtml.IHTMLInputElement)iHTMLDocument2.all.item("InputName", 0);

// 找页面中的 Img 元素。
mshtml.IHTMLImgElement img1 = (mshtml.IHTMLImgElement)iHTMLDocument2.all.item("img1", 0);
操作如:img1.src、img1.alt、img1.height + img1.align

mshtml名字空间里对 Html 的每一个元素都有对应的一个类。这个类就可以设置或读取元素的属性。
HTMLDivElement、HTMLSpanElement、HTMLAnchorElement 等等。

// 实现单击按钮
mshtml.IHTMLElement iHTMLElement = (mshtml.IHTMLElement)iHTMLDocument2.all.item(name, 0);
iHTMLElement.click();// 单击

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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