C# - writing a COM server - events not firing on client
I have implemented a COM server in C#, that has a vb6 client.

When going to fire my events, the handlers are always null--it appears that the vb6 app never subscribes to my events.

The vb6 application is an existing 3rd party app, and appears to give no error messages.

Normal methods work just fine from COM client -> server.

Is there anything I can do to debug what is going on?  Or why my events are not working?

Here is a quick example snippet of my code:

        [ComVisible(true),
            Guid(Constants.CLASS_IID),
            ProgId(Constants.PROG_ID),
            ClassInterface(ClassInterfaceType.None),
            ComSourceInterfaces(typeof(IMyServiceEvents))]
        public class MyClass : Control, IMyService, IMyServiceEvents
        {
           [DispId(1)]
           public event MyEventHandler MyEvent;
    
           //... also implements IMyService, which is working
        }
    
        [ComVisible(true),
            InterfaceType(ComInterfaceType.InterfaceIsIDispatch),
            Guid(Constants.EVENTS_IID)]
        public interface IMyServiceEvents
        {
            [PreserveSig, DispId(1)]
            void MyEvent([In]int Status);
        }

If I try the existing ocx file that I'm trying to replace/implement with my C# com server, the events work as usual.  It is written in vb6 as well, so something in my C# server must be wrong.

I also want to add that I tried all 3 settings for ClassInterfaceType, and got the same results--although I had to re-register my COM server for each try.
C# - writing a COM server - events not firing on client
===

I have implemented a COM server in C#, that has a vb6 client.

When going to fire my events, the handlers are always null--it appears that the vb6 app never subscribes to my events.

The vb6 application is an existing 3rd party app, and appears to give no error messages.

Normal methods work just fine from COM client -> server.

Is there anything I can do to debug what is going on?  Or why my events are not working?

Here is a quick example snippet of my code:

        [ComVisible(true),
            Guid(Constants.CLASS_IID),
            ProgId(Constants.PROG_ID),
            ClassInterface(ClassInterfaceType.None),
            ComSourceInterfaces(typeof(IMyServiceEvents))]
        public class MyClass : Control, IMyService, IMyServiceEvents
        {
           [DispId(1)]
           public event MyEventHandler MyEvent;
    
           //... also implements IMyService, which is working
        }
    
        [ComVisible(true),
            InterfaceType(ComInterfaceType.InterfaceIsIDispatch),
            Guid(Constants.EVENTS_IID)]
        public interface IMyServiceEvents
        {
            [PreserveSig, DispId(1)]
            void MyEvent([In]int Status);
        }

If I try the existing ocx file that I'm trying to replace/implement with my C# com server, the events work as usual.  It is written in vb6 as well, so something in my C# server must be wrong.

I also want to add that I tried all 3 settings for ClassInterfaceType, and got the same results--although I had to re-register my COM server for each try.