如何将.NET 4 WinForm应用程序分配给Delphi 7表单的所有者属性?

我需要指定一个.NET 4 Winform应用程序作为Delphi 7表单的所有者。

我在Delphi中创建了一个包含表单的.dll。 Delphi .dll导出用于创建和显示表单的方法。

我已经在我的.NET应用程序中成功加载了Delphi .dll,并显示了表单。

现在我需要能够将.NET应用程序(或.NET应用程序的主要forms)指定为Delphi表单的所有者。

我之前创建了一个Delphi应用程序,它通过COM与.NET交互,并使用以下类将Delphi应用程序指定为.NET表单的所有者:

public class WindowHandleWrapper : IWin32Window { public HandleRef m_Handle; public IntPtr Handle { get { return m_Handle.Handle; } } public WindowHandleWrapper(IntPtr handle) { m_Handle = new HandleRef(this, handle); } } 

Delphi应用程序句柄作为整数传递给WindowHandleWrapper构造函数。

我怀疑解决方案是类似的,例如将句柄传递给Delphi作为整数。 但是,表单的Owner属性的Delphi类型是TComponent。 我只是不确定如何将.NET句柄指定为Delphi表单的所有者。

有任何想法吗?

将WinForm句柄作为参数传递给DLL,并在创建并以模态方式显示表单之前将其分配给Application.Handle