解决方法
Supports
(要确定一个类是否符合特定接口)需要您定义一个GUID才能使用它们.
This page确认了以下信息:
Note: The SysUtils unit provides an
overloaded function called Supports
that returns true or false when class
types and instances support a
particular interface represented by a
GUID. The Supports function is used in
the manner of the Delphi is and as
operators. The significant difference
is that the Supports function can take
as the right operand either a GUID or
an interface type associated with a
GUID,whereas is and as take the name
of a type. For more information about
is and as,see Class References.
这里有一些interesting information about interfaces,其中指出:
Why does an interface need to be
uniquely identifiable? The answer is
simple: because Delphi classes can
implement multiple interfaces. When an
application is running,there has to
be a mechanism that will get pointer
to an appropriate interface from an
implementation. The only way to find
out if an object implements an
interface and to get a pointer to
implementation of that interface is
through GUIDs.
重点加在两个引号.
阅读整篇文章也让您意识到QueryInterface
(需要GUID)在后台使用,原因如引用计数.