Написал такой незамысловатый компонент C# COM:
namespace COMTest
{
[ComVisible(false)]
public delegate void OnTestEvent();
public interface If1 {
string Name2 { get; set; }
void Test();
}
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)]
public interface _If1Events {
void OnTest();
}
/// <summary>
/// Summary description for Class1.
/// </summary>
[ClassInterface(ClassInterfaceType.None)
,ComSourceInterfacesAttribute(typeof(_If1Events))]
public class Class1 : If1
{
public event OnTestEvent OnTest;
public Class1()
{
}
public string Name2 {
get { return "Vasia"; }
set { }
}
public void Test() {
OnTest();
}
}
}
Тестирую в VB — событие OnTest замечательно запускается. Пытаюсь прикрутить к Delphi.
Делаю Import TypeLib, затем правлю немного mscorlib (типы). Компонент замечательно создается, Name2 работает. Ставлю обработчик на событие. При вызове Test возникает OleException с сообщением "not implemented". А кто не реализован — непонятно совсем. Может кто сталкивался с такими граблями, вроде все путем делаю.