property ControlDefault[Index: Integer]: OleVariant dispid 0; default;
function Count: Integer; dispid 1;
property Item[Index: Integer]: OleVariant dispid 2;
procedure Remove(Index: Integer); dispid 3;
procedure Clear; dispid 4;
function Add(Item: OleVariant): Integer; dispid 5;
function _NewEnum: IUnknown; dispid -4;
end;
派遣接口的方法
派遣接口的方法是一种函数原型,由IDispatch接口的 Invoke方法使用。(Methods of a dispatch intece are prototypes for calls to the Invoke method of the underlying IDispatch implementation)要给一个方法指定派遣号码(ID),声明方法时包含dispid指示字,并在它的后面跟一个整数常量。如果指定的整数已经用过了,则产生错误。
除了dispid,在派遣接口中声明的方法不能使用其它指示字,它的参数以及返回值必须属于自动化类型,也就是说,必须是Byte、Currency、Real、Double、Longint、Integer、Single、Smallint、AnsiString、WideString、
派遣接口的属性
派遣接口的属性不能包含访问说明符,它们可以声明为readonly或writeonly。要给一个属性指定派遣
- 149 -
Object inteces
号码,声明时包含dispid指示字,并在它的后面跟一个整数常量。如果指定的整数已经用过了,则产生错误。数组属性能被声明为default,其它指示字在声明派遣接口的属性时是不允许的。
Accessing automation objects (访问自动化对象)
使用变体类型来访问自动化对象。当一个Variant变量引用一个自动化对象时,可以通过它调用对象的方法以及读或写它的属性。要做到这些,你必须在单元、程序或库的uses子句中包含ComObj(单元)。 调用自动化对象的方法是在运行时绑定的,不需要事先声明这些方法,但调用的有效性在编译时不进行检查。
下面的例子演示了调用自动化方法。CreateOleObject函数(在ComObj定义)返回一个自动化对象的IDispatch引用,它和Variant变量Word是赋值兼容的。
var
Word: Variant;
begin
Word := CreateOleObject('Word.Basic');
Word.FileNew('Normal');
Word.Insert('This is the first line'#13);
Word.Insert('This is the second line'#13);
Word.FileSaveAs('c:\temp\test.txt', 3);
end;
你可以给自动化方法传递接口类型的参数。(?)
使用元素类型为varByte的Variant数组,是自动化控制器和服务器之间交换二进制数据的首选方法。使用这样的数组不需要转换它们的数据,并且能使用VarArrayLock和VarArrayUnlock例程进行有效的操作。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23665-112.html
一会儿说伊拉克“可能”有杀伤性武器要入侵伊拉克
易烊千玺
美国只是虚张声势