和我感觉不一样的Interface
我本来打算把一个对象支持的Interface的GUID输出来看看,结果发现支持的个数超过了460万,
怎么会支持这么多接口呢?我暂时还没有想明白,希望可以和大家聊一下
procedure TForm1.SupportIntf(AObject: TObject);
var
ClassPtr: TClass;
IntfTable: PInterfaceTable;
pEntry: PInterfaceEntry;
I: Integer;
begin
ClassPtr := TClass(Pointer(AObject));
while ClassPtr <> nil do
begin
IntfTable := ClassPtr.GetInterfaceTable;
if IntfTable <> nil then
for I := 0 to IntfTable.EntryCount-1 do //EntryCount >4600000
begin
pEntry := @IntfTable.Entries[I];
memMain.Lines.Add(GUIDToString(pEntry^.IID))
end;
ClassPtr := ClassPtr.ClassParent;
end;
end