This documentation is archived and is not being maintained.

Mark ComSource interfaces as IDispatch







Breaking Change


ComSourceInterfacesAttribute is used to identify the event interfaces that a class exposes to COM clients. These interfaces must be exposed as InterfaceIsIDispatch to allow Visual Basic 6 COM clients to receive event notifications. By default, if an interface is not marked with the InterfaceTypeAttribute attribute, it is exposed as a dual interface.

To fix a violation of this rule add or modify the InterfaceTypeAttribute attribute so that its value is set to InterfaceIsIDispatch for all the interfaces specified with the ComSourceInterfacesAttribute attribute.

Do not exclude a warning from this rule.

The following example shows a class where one of the interfaces violates the rule.

using System;
using System.Runtime.InteropServices;

[assembly: ComVisible(true)]
namespace InteroperabilityLibrary
   // This violates the rule for type EventSource.
   public interface IEventsInterface
      void EventOne();
      void EventTwo();

   // This satisfies the rule.
   public interface IMoreEventsInterface
      void EventThree();
      void EventFour();

      "InteroperabilityLibrary.IEventsInterface\0" + 
   public class EventSource
      // Event and method declarations.