修改方法参数类型,多是变体型的,这在脚本语言是当通用类型用的
类型修改后,只要是支持库内部支持转换的,都能正常调用。
[易语言源码]说明:
虽然未必是你需要的,但是肯定有用又有趣。
本支持库是封装OCX组件用的。
与官方的NPK封装相比,一可以静态编译,二没有NPK封装OCX组件的底板窗口。
许多年前,老吴说OCX组件必须需要一个CWnd类型的窗口做为底板,才可以收到事件。但是前些天,我突然感悟,易所有的窗口组件都是CWnd类型的,何必再多一个底板窗口?!
于是,我做了这个支持库,不用底板窗口,将OCX组件直接创建在易窗口上。没有了底板窗口,就像不戴套一样,与OCX组件之间少了一层隔膜,多了一份亲密的接触。
一、封装了FLASH组件,才知道多年以前QQ会员专用的魔法表情的透明镂空窗体是怎么做出来的,但是知道得太迟了,当年正火的FLASH组件现在已经被禁用了,如果你能打开例程就可以看到是不是被禁用了,物饰人非。
二、封装IE浏览器组件,所有的按键事件都接上了。还可以挂接指定事件接口,方便用网页做界面的易友,网页就是UNICODE多国语界面的,也是直绘界面,何必他求?!意义和用处自悟,不必多说。
三、封装了丰富文本框RichTextBox组件。TAB键输入,自己用代码补上了。易核心库也卡不住这个键了。
四、封装了MSWinsock组件。是比易的服务器、客户和数据报组件好用一些。
五、封装了ADODB对象。测试可以正常调用。
这次把支持库的方法具体用法说明一下,方便易友做二次修改。虽然有自动生成代码的工具,但是生成代码也有不尽如人意的地方。
首先是类型的常量值要知道一下。
调用的参数表里的类型和取置属性的类型常量:
短整数型 = 2
整数型 = 3
小数型 = 4
双精度小数型 = 5
货币型(易语言没有) = 6
日期时间型 = 7
OLE宽文本(易语言没有的UNICODE字符串) = 8
对象 = 9
错误代码(易语言没有) = 10
逻辑型 = 11
变体型 = 12
未知接口(易语言没有) = 13
文本型 = 14
字节型 = 15
这里注意一下,文本类型,在取置属性用8,表示是原型BSTR宽文本。如果是方法调用的参数表里,表示这个参数是文本的,用14,表示传入的ASCII编码的文本,内部会自动转成所需求BSTR
参数是参考(传址)的需要在类型常量值上加64做为参考的标志,比如:
短整数型指针 = 2 +64=66
整数型指针 = 3 +64=67
小数型指针 = 4 +64=68
双精度小数型指针 = 5 +64=69
货币型指针(易语言没有) = 6 +64=70
日期时间型指针 = 7 +64=71
OLE宽文本指针(易语言没有的UNICODE字符串) = 8 +64=72
对象指针 = 9 +64=73
错误代码指针(易语言没有) = 10 +64=74
逻辑型指针 = 11 +64=75
变体型指针 = 12 +64=76
未知接口指针(易语言没有) = 13 +64=77
字节型指针 = 15 +64=79
这里注意一下,文本类型,没有传址的文本类型,14+64,只有BSTR宽文本指针 8+64。
参数是可空的,同理加上128做为标志,可以和参考标志叠加。
做为修改调用参数表里参数说明,参数表(字节集)从第一个字节开始,与参数排序和类型相对应,每个字节表示对应参数的类型(就是以上的表示方法)。最后参数表以{0,0}做为结束。调用方法内部就可以知道有多少个参数传进来。
修改的范例:
这个取粗体,肯定是返回逻辑值,这里却用变体型返回,这里要改一下才好用
[易语言源码]下载:
|
|
|
|
|
|