2010-06-10 34 views

回答

0

我不認爲VB6讓你添加環境屬性。嘗試在另一個容器中託管ActiveX(例如,您自己編寫的ActiveX主機 - 但我不知道您有多少時間想要聲明VB友好的OLE接口並實現它們 - 或者使用另一個類似http://www.codeproject.com/KB/atl/vbmhwb.aspx的ActiveX。

0

你沒有在VB6訪問的IDispatch ::調用,你只寫你的方法和IDispatch是自動實現的。

Public Function DlControl() As Long 
    DlControl = DLCTL_NO_DLACTIVEXCTLS Or ... 
End FUnction 

然後,只需打開工具 - >過程屬性和DlControl功能開放高級和分配過程ID爲-5512(DISPID_AMBIENT_DLCONTROL)。這是第一部分。

第二部分是將客戶端站點設置爲您自定義的IOleClientSite實現。您需要一個自定義typelib,請嘗試Edanmo's OLELIB來聲明這些接口。 Here是一個delphi示例如何掛鉤IOleClientSite的實現。顯然,你將不得不在某個時刻調用OnAmbientPropertyChange。