|
|
|
public string UpperCase(string s)
{
string s1 = s.ToUpper();
return s1;
}
[assembly: ApplicationAccessControl(true)]
[assembly: ApplicationName("MySuperApplication")]
[assembly: ApplicationID("392587A7-5AEC-42e8-AF01-F6BCACA3ED1E")]
D:\PW\exercises\complus\MySuperComponent\bin\Debug>regsvcs.exe /fc MySuperComponent.dll
Microsoft (R) .NET Framework Services Installation Utility Version 2.0.50727.42
Copyright (c) Microsoft Corporation. All rights reserved.
Installed Assembly:
Assembly: D:\PW\exercises\complus\MySuperComponent\bin\Debug\MySuperComponent.dll
Application: MySuperApplication
TypeLib: D:\PW\exercises\complus\MySuperComponent\bin\Debug\MySuperComponent.tlb
public interface IMySuperInterface
{
string UpperCase(string s);
}
[Description("This is my super class")]
public class MySuperClass : ServicedComponent, IMySuperInterface
{
[Description("Very useful method")]
public string UpperCase(string s)
{
string s1 = s.ToUpper();
return s1;
}
}

MySuperComponent.MySuperClass c = new MySuperComponent.MySuperClass(); string s = Console.ReadLine(); Console.WriteLine(c.UpperCase(s));
[assembly: ApplicationAccessControl(true)]
[assembly: ApplicationName("MySuperApplication")]
[assembly: ApplicationID("392587A7-5AEC-42e8-AF01-F6BCACA3ED1E")]

using System.EnterpriseServices;
using System.Runtime.InteropServices;
namespace MySuperEvent
{
[Guid("BD40FDD7-42A3-44A4-8A17-8748123E3E5D")]
public interface IMyEvent
{
void TheEvent(string s);
}
[EventClass]
[Guid("203AF033-C4ED-403D-8E6B-12C7F2310916")]
public class MyEventClass : ServicedComponent, IMyEvent
{
public static string FiringInterfaceID = "{BD40FDD7-42A3-44A4-8A17-8748123E3E5D}";
public static string EventClassCLSID = "{203AF033-C4ED-403D-8E6B-12C7F2310916}";
public void TheEvent(string s)
{
}
}
}
MySuperComponent.MySuperClass component = new MySuperComponent.MySuperClass();
MySuperEvent.IMyEvent ev = new MySuperEvent.MyEventClass() as MySuperEvent.IMyEvent;
string s;
do {
s = Console.ReadLine();
ev.TheEvent(s);
Console.WriteLine(component.UpperCase(s));
} while (s != "END");
public partial class Form1 : Form, MySuperEvent.IMyEvent
private Guid subscriptionID;
private void subscribeButton_Click(object sender, EventArgs e)
{
subscriptionID = Guid.NewGuid();
MySuperEvent.IMyEvent subscriberInterface = this as MySuperEvent.IMyEvent;
COMAdmin.ICOMAdminCatalog pICat = new COMAdmin.COMAdminCatalogClass() as COMAdmin.ICOMAdminCatalog;
COMAdminWrapper.Subscriptions.AddTransientSubscription(
pICat, //ICOMAdminCatalog
subscriptionID.ToString(), // Subscription name
MySuperEvent.MyEventClass.EventClassCLSID, // EventClass to subscribe to
null, // PublisherID
MySuperEvent.MyEventClass.FiringInterfaceID,// FiringInterfaceID
subscriberInterface, // the transient interface pointer on this form
null, // methodName
null, // FilterCriteria
null, // Publisher property name
null); // publisher property value
}
private void unsubscribeButton_Click(object sender, EventArgs e)
{
COMAdmin.ICOMAdminCatalog pICat = new COMAdmin.COMAdminCatalogClass() as COMAdmin.ICOMAdminCatalog;
COMAdminWrapper.Subscriptions.RemoveTransientSubscription(pICat, subscriptionID.ToString());
}
public void TheEvent(string s)
{
MessageBox.Show("TheEvent with: " + s);
}