Re: .Net Exodus plugins
Daniel Chandran <[email protected]> Fri, 16 Dec 2005 12:55:45 -0500
| Newsgroups | gmane.network.jabber.exodus.user |
|---|---|
| Message-ID | <[email protected]> |
I downloaded http://exodus.jabberstudio.org/exodus-src.zip, and the .Net plugin now appears in the Exodus -> Options -> Plugins section. In the new version, I don't see any dependancy on components\zipmaster\vcl, was this removed in the new version? Thanks, daniel On 12/16/05, Daniel Chandran <[email protected]> wrote: > > 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