Re: .Net Exodus plugins
Daniel Chandran <[email protected]> Fri, 16 Dec 2005 09:03:04 -0500
| Newsgroups | gmane.network.jabber.exodus.user |
|---|---|
| Message-ID | <[email protected]> |
That's probably correct. Has there been changes to the tree since May 2005? Due to firewall restrictions at my company, I cannot work with SVN. Is http://exodus.jabberstudio.org/exodus-src.zip updated daily? Thanks, daniel On 12/15/05, Peter Millard <me-STcBuFROdrv2eFz/[email protected]> wrote: > > This is a message for Joe, I'm just relaying it to the list for him: > > ---------------------------------------------------------------------------- > It sounds like you don't have the head of SVN. > > You shouldn't have to modify your exodus.xml file by hand any more; > instead the registry entries that get added should be sufficient. > That would also cause the plugin not to show up in the plugin list. > > On Dec 15, 2005, at 8:27 AM, Daniel Chandran wrote: > > > Thanks for the example Joe. I tested it out and works fine. > > > > Here are the steps I went through, it's a revised list originally sent > by > > Prasad. > > > > 1. I use Visual Studio .NET 2003, so things like regasm happen > automatically > > with the correct project settings. > > 2. Create a project of type ClassLibrary. In your Project -> > <yourproject> > > Properties -> Configuration Properties, set "Register for Com Interop" > to > > true. > > 3. Add Exodus.cs base class to your project. > > 4. In Project -> Add Reference Dialog box, add Exodus.exe as library in > the > > COM components. > > 5. Implement your class derived from Exodus.BasePlugin, and add your > > override methods. > > 6. Build, and put you plugin.dll and Interop.ExodusCOM.dll in whatever > > location you prefer. As Joe. H suggestion for now don't put in the > Exodus > > plugins directory(??). > > 7. Manually modify your exodus.xml file and your progid to > plugin_selected > > section, and the path to your plugin dll in the plugin_files > section. If > > you are try Joe's example the progid will ClassLibrary2.Class. > > 8 Start Exodus, if you start a new chat you will see the IP addr put by > the > > plugin in your chat window. > > > > Some questions. > > 1. The example plugin works fine, but it does not show up in the > Options > > -> Plugins section in Exodus. > > 2. What's the correct way to implment the IExodusChatPlugin? > > > > Thanks, > > Daniel G. Chandran > > > > On 12/15/05, Joe Hildebrand <joe-bvCY4hpNeH/[email protected]> wrote: > >> > >> Sorry this took so long. > >> Class1 is an example, and Exodus.cs has the base class. > >> > >> > >> > >> > >> Again, don't put the .dll in the plugins directory for now. > >> > >> On Dec 9, 2005, at 11:15 AM, Daniel Chandran wrote: > >> > >>> Could Joe H. or somebody who is an expert an COM - .Net Interop > >>> outline the exact steps to follow for Exodus to recognize the > >>> plugins written in .NET? > >>> > >>> I am using Visual Studio, so it automatically does the regasm, and > >>> I see the plugin listed in the registry under HKEY_CLASSES_ROOT\CLSID. > >>> > >>> VS generates two assemblies Interop.ExodusCOM.dll and MyPlugin.dll. > >>> I put both of them in C:\Program Files\Exodus\Plugins. Exodus does > >>> not recognize my plugin. I did a TlbExp on MyPlugin.dll. After > >>> that Exodus recogizes the MyPlugin, but on attempting to load, > >>> complains that it's not a valid Windows Image!! > >>> > >>> Any help is greatly appreciated. > >>> > >>> Thanks, > >>> Daniel Chandran > >>> > >>> On 12/9/05, Durga Prasad <dprasad_114-/[email protected] > wrote: > >>> hi, > >>> > >>> Thanks your very much for your reply. Your information helps a lot > >>> to develops plugins accurately for Windows environment. I still > >>> have doubts on custom plugin interaction of Exodus. I ll post it > >>> in the near time. > >>> > >>> Would you send your .NET base class that will register > >>> automatically to windows registry? > >>> > >>> thanks, > >>> Durga Prasad T > >>> > >>> > >>> [email protected] wrote: Send Exodus mailing list > >>> submissions to > >>> [email protected] > >>> > >>> To subscribe or unsubscribe via the World Wide Web, visit > >>> http://mail.jabber.org/mailman/listinfo/exodus > >>> or, via email, send a message with subject or body 'help' to > >>> [email protected] > >>> > >>> You can reach the person managing the list at > >>> [email protected] > >>> > >>> When replying, please edit your Subject line so it is more specific > >>> than "Re: Contents of Exodus digest..." > >>> Today's Topics: > >>> > >>> 1. Re: Help in Exodus Plugin creation in C# (Joe Hildebrand) > >>> From: Joe Hildebrand < joe-bvCY4hpNeH/[email protected]> > >>> To: Discussion list for all things <[email protected]> > >>> Date: Sun, 27 Nov 2005 17:13:07 -0700 > >>> Subject: Re: [Exodus] Help in Exodus Plugin creation in C# > >>> > >>> If you use the head of subversion, you'll find this a *lot* easier. > >>> Here is the procedure: > >>> > >>> - Put your .dll anywhere. Eventually, if you put it in Exodus/ > >>> plugins/net or something, this will get more automated, but for the > >>> moment it doesn't matter > >>> - Make sure to call regasm on the .dll > >>> - Put a registry value at HKCU\Software\Jabber\Exodus\Plugins whose > >>> name is the progid of your control, and whose value is a string that > >>> describes the plugin. > >>> - If you don't have the head of SVN, edit your preference file, and > >>> add your progid to the plugin_selected preference. It's a > >>> stringList, so each item has an around it. > >>> - If you *do* have the head of SVN, your plugin will just show up in > >>> the list and can be selected. > >>> > >>> You'll no longer have to try to get the .TLB into the .dll, which is > >>> nice. The downside is that you'll have to figure out (for the > >>> moment) how to get your users to call regasm on your .dll to install > >>> it. Eventually I'll figure out how to determine which CLR version > >>> you compiled with, find the correct version of regasm, and run it > >>> automatically. > >>> > >>> I've also got a .Net base class that does all of the registry stuff > >>> automatically. I'll try to remember to post it when I'm back in the > >>> office on Monday. > >>> > >>> On Nov 22, 2005, at 8:19 PM, Durga Prasad wrote: > >>> > >>>> hi All, > >>>> > >>>> I want to write a Plugin for Exodus Client using C#. For testing > >>>> purpose, I wrote main class which implements IExodusPlugin > >>>> interface that will add a Menu Item if the user clicks on a Roster > >>>> name. > >>>> > >>>> The following is the structure of the Main Class :: > >>>> > >>>> using System; > >>>> using System.Runtime.InteropServices; > >>>> > >>>> namespace ExodusPluginTesting > >>>> { > >>>> /// > >>>> /// Summary description for Class1. > >>>> /// > >>>> > >>>> [ Guid("E10C6CDE-8D8B-46c2-AE85-0185039E9958") ] > >>>> [ClassInterface( ClassInterfaceType.AutoDual)] > >>>> public class ExodusPluginTesting : Exodus.IExodusPlugin > >>>> { > >>>> public string ID = ""; > >>>> Exodus.ExodusController exodusController; > >>>> > >>>> public void Startup(Exodus.ExodusController exController) > >>>> { > >>>> string s = "This is my Plugin"; > >>>> exodusController = > >>>> ( Exodus.ExodusController) exController; > >>>> ID = exodusController.addContactMenu(s); > >>>> } > >>>> > >>>> public void Shutdown() > >>>> { > >>>> exodusController.removeContactMenu(ID); > >>>> exodusController = null; > >>>> } > >>>> > >>>> public void Process(string xpath, string eventRaised, > >>>> string xmlObject) > >>>> { > >>>> } > >>>> > >>>> public void NewChat(string jID, Exodus.ExodusChat exodusChat) > >>>> { > >>>> } > >>>> > >>>> public void NewRoom(string jID, Exodus.ExodusChat Room) > >>>> { > >>>> } > >>>> > >>>> public string NewIM(string jID, ref string body, ref > >>>> string subject, string xTags) > >>>> { > >>>> string k = " " ; > >>>> return (k); > >>>> } > >>>> > >>>> public void Configure() > >>>> { > >>>> } > >>>> > >>>> public void MenuClick(string ID) > >>>> { > >>>> } > >>>> > >>>> public void MsgMenuClick(string ID,string jID, ref string > >>>> body,ref string subject) > >>>> { > >>>> } > >>>> > >>>> public void NewOutgoingIM(string jID, Exodus.ExodusChat > >>>> instantMSG) > >>>> { > >>>> } > >>>> } > >>>> } > >>>> > >>>> > >>>> I converted "Exodus.tlb" to "Exodus.dll" using "tlbImp.exe" tool. > >>>> And I included this 'Exodus.dll' in my code to import the > >>>> "IExodusPlugin" interface structure into the Main Class > >>>> (ExodusPluginTesting()). > >>>> I built the solution (with Component Registry). THE OUTPUT files I > >>>> got is "ExodusPluginTesting.dll" and "ExodusPluginTesting.tlb". > >>>> > >>>> > >>>> Then I placed the 'ExodusPluginTesting.dll' file in "C:\Program > >>>> Files\Exodus\Plugins" directory. I started Exodus client. But I > >>>> didn't view the PLUGIN in the LIST. I tried several builds and > >>>> placed it in PLUGINS directory, still, I didn't find it in the list. > >>>> > >>>> > >>>> Is my Interface implementation correct or shall I need to declare > >>>> the interface structure also (without using Exodus.dll). > >>>> > >>>> Can anybody help me in this aspect what procedure to follow to > >>>> create .DLL Plugin for EXODUS. > >>>> > >>>> > >>>> > >>>> Thanks, > >>>> Durga Prsad T > >>>> > >>>> Win a Yahoo! Vespa NEW - Yahoo! Cars has 3 Vespa LX125s to be won > >>>> Enter Now! > >>>> _______________________________________________ > >>>> Exodus mailing list > >>>> [email protected] > >>>> http://mail.jabber.org/mailman/listinfo/exodus > >>> > >>> _______________________________________________ > >>> Exodus mailing list > >>> [email protected] > >>> http://mail.jabber.org/mailman/listinfo/exodus > >>> > >>> > >>> Yahoo! Messenger NEW - crystal clear PC to PC calling worldwide > >>> with voicemail > >>> > >>> > >>> _______________________________________________ > >>> Exodus mailing list > >>> [email protected] > >>> http://mail.jabber.org/mailman/listinfo/exodus > >>> > >>> > >>> > >>> _______________________________________________ > >>> Exodus mailing list > >>> [email protected] > >>> http://mail.jabber.org/mailman/listinfo/exodus > >> > >> > >> > >> _______________________________________________ > >> Exodus mailing list > >> [email protected] > >> http://mail.jabber.org/mailman/listinfo/exodus > >> > >> > >> > >> > > > > > > > > > >> _______________________________________________ > >> Exodus mailing list > >> [email protected] > >> http://mail.jabber.org/mailman/listinfo/exodus > > _______________________________________________ > Exodus mailing list > [email protected] > http://mail.jabber.org/mailman/listinfo/exodus > _______________________________________________ Exodus mailing list [email protected] http://mail.jabber.org/mailman/listinfo/exodus