这个
系统实用程序
单元至少有五个重载
Supports
,他们都接受
TGUID
第二个参数的值。
您确实可以将接口类型作为参数传递,但它们实际上只是guid。也就是说,当一个函数需要
塔吉德
参数,可以将接口类型标识符传递给它,例如
IMBNode
或
IUnknown
. 但是,要使其工作,接口类型需要在其声明中包含一个guid,如下所示:
type
IMBNode = interface
['{GUID-goes-here}']
// methods and properties
end;
当第一个参数
支架
是一个接口引用,函数调用
QueryInterface
方法。如果它回来了
S_OK
然后
支架
返回true;否则返回false。当第一个参数是对象引用时,它首先调用对象的
GetInterface
获取ITS的方法
不知道
接口和调用
支架
就像以前一样。如果它不能以这种方式工作,那么它就返回到直接从
获取接口
. 如果你已经实现了
查询接口
在您的对象上正确,或者如果您使用了
TInterfacedObject
,那么一切都应该正常。
如果
支架
永远不要为你返回真,那么你应该重新考虑一些假设。你是吗
当然
你的节点真的支持你请求的接口?确保类声明包含该接口。确保
查询接口
执行正确。确保
SomeNode
实际上是指您希望它指向的节点。