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