В неуправляемом коде
IConnectionPointContainer::FindConnectionPoint возвращает 0x80020400
Подскажите, пожалуйста, что я не так сделал.
Код на с#
namespace FormWithEvents
{
public delegate void Method1();
public delegate void Method2();
[ComVisible(true)]
[Guid("21A22A50-E1D6-4e5f-A617-5A9C5AEE4B71")]
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface IFormWithEvents
{
void ShowForm();
}
[ComVisible(true)]
[Guid("200B4AC8-06B7-4c4f-B3A9-7EF491FFED6E")]
[InterfaceType(1)]
// [InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface ITestEvents
{
void Method1();
void Method2();
}
[ComVisible(true)]
[Guid("DD4BF8FB-98CF-40ad-9F5F-51D31725CF03")]
[ComSourceInterfaces(typeof(ITestEvents))]
[ClassInterface(ClassInterfaceType.None)]
public class Class1 : IFormWithEvents
{
private event Method1 hMethod1;
private event Method2 hMethod2;
private Form1 m_form;
[ComVisible(true)]
public void ShowForm()
{
m_form = new Form1();
m_form.m_class = this;
m_form.ShowDialog();
}
[ComVisible(false)]
public void EventFireClick() // Вызывается из формы
{
if (hMethod1 != null)
{
hMethod1();
}
}
public void EventFireClick2() // Вызывается из формы
{
if (hMethod2 != null)
{
hMethod2();
}
}
}
}