dotnetcomponent.cs

来自「C#高级编程第6版随书源代码 值得下载」· CS 代码 · 共 70 行

CS
70
字号
using System;
using System.Runtime.InteropServices;

namespace Wrox.ProCSharp.COMInterop.Server
{
   [InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
   [ComVisible(true)]
   public interface IMathEvents
   {
      [DispId(1)]
      void CalculationCompleted();
   }

   [ComVisible(false)]
   public delegate void CalculationCompletedEventHandler();



   [InterfaceType(ComInterfaceType.InterfaceIsDual)]
   [ComVisible(true)]
   public interface IWelcome
   {
      [DispId(60040)] string Greeting(string name);
   }

   [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
   [ComVisible(true)]
   public interface IMath
   {
      int Add(int val1, int val2);
      int Sub(int val1, int val2);
   }

   [ClassInterface(ClassInterfaceType.None)]
   [ProgId("Wrox.DotnetComponent")]
   [Guid("77839717-40DD-4876-8297-35B98A8402C7")]
   [ComSourceInterfaces(typeof(IMathEvents))]
   [ComVisible(true)]
   public class DotnetComponent : IWelcome, IMath
   {
      public DotnetComponent()
      {
      }

      public event CalculationCompletedEventHandler CalculationCompleted;

      public string Greeting(string name)
      {
         return "Hello " + name;
      }

      public int Add(int val1, int val2)
      {
         int result = val1 + val2;
         if (CalculationCompleted != null)
            CalculationCompleted();
         return result;
      }

      public int Sub(int val1, int val2)
      {
         int result = val1 - val2;
         if (CalculationCompleted != null)
            CalculationCompleted();
         return result;
      }
   }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?