Re: Re: Exodus Digest, Vol 25, Issue 4
Daniel Chandran <[email protected]> Fri, 9 Dec 2005 13:15:09 -0500
| Newsgroups | gmane.network.jabber.exodus.user |
|---|---|
| Message-ID | <[email protected]> |
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<http://us.rd.yahoo.com/mail/uk/taglines/default/messenger/*http://uk.messenger.yahoo.com+%0A> > NEW - crystal clear PC to PC calling worldwide with voicemail > <http://us.rd.yahoo.com/mail/uk/taglines/default/messenger/*http://uk.messenger.yahoo.com+%0A> > > > _______________________________________________ > Exodus mailing list > [email protected] > http://mail.jabber.org/mailman/listinfo/exodus > > > _______________________________________________ Exodus mailing list [email protected] http://mail.jabber.org/mailman/listinfo/exodus