delphi中IDispath接口的实现类,由OleAuto单元的TAutoObject类进行了主要实现(实际是进行了一个转接实现TAutoObject并没继承IDispatch接口,而是里面的一个成员变量继承了一个IDispatch接口)。对象的 vmtAutoTable = -68;位置保存了Auto表的地址,具体存储如下:
{ Automation table entry }
PAutoEntry = ^TAutoEntry;
TAutoEntry = record
DispID: Integer;
Name: PShortString;
Flags: Integer;
Params: PParamList;
Address: Pointer;
end;
{ Automation table layout }
PAutoTable = ^TAutoTable;
TAutoTable = record
EntryCount: Integer;
Entries: array[0..4095] of TAutoEntry;
end;
需要有RTTI功能的编译器实现
OleAuto单元已经被borland弃用,建议comobj 和 comserv单元