二进制组件,是在计算电子或机械设备中组装在一起形成一个功能单元的一组元件所广泛采用的一种数字。
利用·Net开发IE二进制行为组件概述了IE二进制行为组件的工作原理,根据其COM接口原始语义,针对·Net平台的特点进行了重新定义,在此基础上阐述了利用·Net开发IE二进制行为组件的一般方法,并介绍了在Html页面文件中使用IE二进制行为组件的方法。1
使用·Net开发IE二进制行为组件的方法二进制行为组件是COM技术实现的,若采用C++或ATL技术来开发,需要处理很多COM技术细节问题,难度相对较大。但是·Net的出现,使二进制行为组件的开发变得简单。 由于·Net平台上的COMinterop机制可透 明地处理COM对象和·Net对象之间的交互,使得在·Net上开发IE二进制行为组件更加容易,因为COMinterop机制减轻了开发者处理COM技术细节的负担,特别是事件的处理变得非常地直观,这个优势使得在·Net上开发IE二进制行为组件更加简单和快速。
IE在有事件发生时会调用二进制行为组件的Notify( )方法,同时传递一个事件ID,表明发生了什么事件,Documentready事件是在Html文档已经加载完毕时发生的,这个时候很多对象比如document、 element等已经创建完毕,组件可以缓存这些对象以备今后使用,同时也可以做一些初始化的工作,但是最主要的工作是完成事件处理函数的绑定工作,一个定制的Html元素对象如果需要在IE中对鼠标事件或其它的事件作出响应,那么就必须在这里为需要响应的事件指定事件处理函数。 在这个例子中只为propertychange事件指定了事件处理函数。 由于。Net的COM-callable wrapper(CCW)自动实现了IDispatch和IEventSink接口,事件处理函数的指定变得非常简单,这对于提高开发效率是很有帮助的。
mshtml2·IHtmlPainter·Draw( )方法是这个二进制行为组件中另一个比较重要的方法,这个方法由IE来调用,主要作用是在IE传递进来的设备上绘制位图对象bitmap,可以采用所有的API来完成和绘图有关的工作,因而可以实现较好的图像效果。 由于位图对象中只有一个线段,等效于在IE中画了一个线段。每当Line行为组件更新了位图对象成员bitmap后,就可调用InvalidateRegion( )方法通知IE调用mshtml2·IHtmlPainter·Draw( )方法来重新绘制线段,这个方法实际上完成的是Html元素标记的呈现工作。1
二进制行为组件在Html页面中的使用可以利用Line行为组件来实现一个‘’销售业绩表‘’的Html页面,这里的销售业绩用柱形图来表示,每个季度用一根粗线段表示销售业绩,不同季度的线段颜色不同。当鼠标移到某个年份上时,表示年份的字会变成红色,同时柱形图显示当年的销售业绩。
要在Html页面中使用二进制行为组件,首先要用元素实例化相关类工厂组件,这个类工厂组件是由它的IID来指定的,然后用