在C#中,要使用ActiveX控件,需要先在項目中添加對應的COM組件的引用。接著,通過COM互操作技術來調用ActiveX控件的接口。
接口定義:
[ComImport]
和[Guid]
特性來聲明COM接口,并通過[DispId]
特性來標記需要公開給外部調用的方法。下面是一個示例接口定義的代碼:
using System;
using System.Runtime.InteropServices;
[ComImport, Guid("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")]
public interface IMyActiveXControl
{
[DispId(1)]
void Method1();
[DispId(2)]
void Method2();
}
接口實現:
下面是一個示例接口實現的代碼:
public class MyActiveXControl : IMyActiveXControl
{
private object activeXControl;
public MyActiveXControl()
{
activeXControl = Activator.CreateInstance(Type.GetTypeFromCLSID(new Guid("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")));
}
public void Method1()
{
activeXControl.GetType().InvokeMember("Method1", BindingFlags.InvokeMethod, null, activeXControl, null);
}
public void Method2()
{
activeXControl.GetType().InvokeMember("Method2", BindingFlags.InvokeMethod, null, activeXControl, null);
}
}
在使用時,只需要創建MyActiveXControl
的實例,并調用其方法即可:
IMyActiveXControl myControl = new MyActiveXControl();
myControl.Method1();
myControl.Method2();
通過上面的方法,就可以在C#中定義和實現ActiveX控件的接口,并調用其方法。