2015-10-04 39 views
-1

我已經向Delphi導入了一個OCX控件,它顯示了TLB和OCX類。它工作正常,但我只能訪問默認界面。如何從COM控件中獲取Delphi中的非默認接口?

如何訪問其他界面?

+0

顯然你沒有迴應。 Delphi的COM包裝使用默認的接口,我問如何使用其他接口。問題很明顯,COM對象是無關緊要的。在這種情況下,它是從.Net創建的COM。當然,在我問這裏之前,我一直在Google上搜索幾個小時。 – kokokok

回答

1

您可以使用as操作上的實例引用,如:

(SomeOcxObject as IPersistStreamInit).InitNew; 

或走遠路,並呼籲QueryInterface自己:

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

(我只是用IPersistStreamInit這裏作爲一個例子,你沒有指定你將使用哪個接口。)

+0

謝謝。我試圖使用包裝類,但QueryInterface是一個受保護的功能。現在,我按照你的建議使用帶有QueryInterface的coClassCreator,它的功能就像一個魅力。 – kokokok

相關問題