如何从COM控件获得Delphi中的非默认接口



我已经导入了一个OCX控件到Delphi,它显示了TLB和OCX类。它工作得很好,但我只能访问默认接口。

如何访问其他接口?

您可以在实例引用上使用as操作符,例如:

(SomeOcxObject as IPersistStreamInit).InitNew;

或者直接调用QueryInterface:

var
  x:IPersistStreamInit;
begin
  if SomeOcxObject.QueryInterface(IPersistStreamInit,x)<>S_OK then
    RaiseLastOSError;
  x.InitNew;

(我只是使用IPersistStreamInit在这里作为一个例子,你没有指定你将使用哪个接口)

最新更新