Class1.cs
上传用户:lxycoco
上传日期:2022-07-21
资源大小:38457k
文件大小:1k
- using System;
- using System.Runtime.InteropServices;
- namespace Wrox.ProCSharp.COMInterop.Server
- {
- [InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
- public interface IMathEvents
- {
- [DispId(46200)] void CalculationCompleted();
- }
- [InterfaceType(ComInterfaceType.InterfaceIsDual)]
- public interface IWelcome
- {
- [DispId(60040)] string Greeting(string name);
- }
- [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
- public interface IMath
- {
- int Add(int val1, int val2);
- int Sub(int val1, int val2);
- }
- [ComVisible(false)]
- public delegate void CalculationCompletedDelegate();
- [ClassInterface(ClassInterfaceType.None)]
- [ProgId("Wrox.DotnetComponent")]
- [Guid("77839717-40DD-4876-8297-35B98A8402C7")]
- [ComSourceInterfaces(typeof(IMathEvents))]
- public class DotnetComponent : IWelcome, IMath
- {
- public DotnetComponent()
- {
- }
- public event CalculationCompletedDelegate CalculationCompleted;
- #region IWelcome Members
- public string Greeting(string name)
- {
- return "Hello " + name;
- }
- #endregion
- #region IMath Members
- 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;
- }
- #endregion
- }
- }